/ /複雑なCSVをR - r、csvに読み込む

複雑なCSVをR - r、csvに読み込む

私は以下を読み込もうとしています。csvファイルをRに変換します。下の画像からわかるように、行2は一意の変数名を持ち、行3は上記の変数の値を持っています。したがって、2/3の行は一緒に1つの観測を表します。このプロセスは続けられ、行4は変数名の行で、行5はそれらの変数値に対応します。このプロセスは、各2行組(2/3、4/5、6/7 .... 999/1000)が1つの観測を表すように継続されます。データセットには合計1,000件の観測値があります。

私が問題を抱えているのはこれを読むことです私はもっ​​と使いやすいデータセットを持っています。私の目標は、一番上の行に変数名の標準セットを持たせ、その後の各行は一つの観察を表します。

どんなエキスパートのRコーダーにも提案がありますか?

ありがとうございました、

CSV画像

回答:

回答№1は0

ここで私が作った簡単なテストケースに取り組んだ解決策があります。データをdata.frameにインポートする必要がありますが、 x = read.csv(file="your-file.csv")

これをテストするために、私はtest data.frame、x:

x=structure(list(V1 = structure(c(2L, 1L, 4L, 3L), .Label = c("1",
"a", "ab", "h"), class = "factor"), V2 = structure(c(2L, 1L,
4L, 3L), .Label = c("2", "b", "cd", "i"), class = "factor"),
V3 = structure(c(3L, 1L, 2L, 4L), .Label = c("3", "a", "c",
"ef"), class = "factor"), V4 = structure(c(3L, 1L, 2L, 4L
), .Label = c("4", "b", "d", "gh"), class = "factor"), V5 = structure(c(3L,
1L, 2L, 4L), .Label = c("5", "c", "e", "ij"), class = "factor"),
V6 = structure(c(3L, 1L, 2L, 4L), .Label = c("6", "d", "f",
"kl"), class = "factor"), V7 = structure(c(3L, 1L, 2L, 4L
), .Label = c("7", "e", "g", "mno"), class = "factor")), .Names = c("V1",
"V2", "V3", "V4", "V5", "V6", "V7"), class = "data.frame", row.names = c(NA,
-4L))

どちらがこのテーブルになりますか(1行目と3行目はあなたのラベルです):

  V1 V2 V3 V4 V5 V6  V7
1  a  b  c  d  e  f   g
2  1  2  3  4  5  6   7
3  h  i  a  b  c  d   e
4 ab cd ef gh ij kl mno

このスクリプトを使用して最終的なdata.frameを生成する dat

library(plyr)
variables = x[seq(1,nrow(x),2),] #df of all variable rows
values = x[seq(2,nrow(x),2),] #df of all value rows
dat=data.frame() #generate blank data.frame
for(i in 1:nrow(variables)) {
dat.temp=data.frame(values[i,])#make temporary df for the row i of your values
colnames(dat.temp)=as.matrix(variables[i,]) # name the temporary df from row i of your variables
print(dat.temp) #check that they are coming out right (comment this out as necessary)
dat=rbind.fill(dat,dat.temp) #create the final data.frame
rm(dat.temp) #remove the temporary df
}

この最終テーブルに(変数は現​​在列名です):

   a  b  c  d   e    f    g    h    i
1  1  2  3  4   5    6    7 <NA> <NA>
2 ef gh ij kl mno <NA> <NA>   ab   cd

それがうまくいくことを望みます。