将数据帧列组合成二维矩阵

时间:2015-12-02 05:21:27

标签: r

有没有一种简单的方法可以将此数据框转换为下面的表单?我以为我可以得到所需的列并将其转换为矩阵,但这不起作用。

set.seed(1)
data1<-data.frame(dv=rep(c("low","high"),3),iv1=rep(c("A","B","C"),2),freq=runif(6))
as.matrix(data1[,3],ncol=3) #this didnt work

目标:

#     A   B  C
#high .28 .32 .39 
#low  .31 .36 .31

1 个答案:

答案 0 :(得分:1)

我们可以尝试

xtabs(freq~dv+iv1, data1)

或者

library(reshape2)
acast(data1, dv~iv1, value.var='freq')

或者

with(data1, tapply(freq, list(dv, iv1), FUN=I))