3

Rでロングデータフォームをワイドデータフォームに変換しようとしています。たとえば、次のデータフレームがあります。

a = rep(c("A","B","C","D"),4)
b = rep(c("COL1","COL2","COL3","COL4"),4)
val = 101:116
df = as.data.frame(cbind(a,b,val))
df

結果を次のように表示したいと思います。

row <- as.list(levels(df$a))
col <- as.list(levels(df$b))

test <- data.frame()

i = 1

  for (j in 1:4) {
    for(k in 1:4){
      test[j,k]  =   df$val[i]
      i = i + 1 
    }
  }

colnames(test) <- c("COL1","COL2","COL3","COL4")
rownames(test) <- c("A","B","C","D")
test

便利な関数を使用してエレガントなソリューションを提案できれば幸いです。ありがとう、カシム

4

2 に答える 2