有没有一种简单的方法可以将此数据框转换为下面的表单?我以为我可以得到所需的列并将其转换为矩阵,但这不起作用。
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
答案 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))