[英]How to take a data.frame and make a wide matrix in R
特定
classifications.factor <- factor(c('x','x','x','y','y','y','z','z','z')) ;
questions.factor <- factor(c('a','b','c','a','b','c','a','b','c')) ;
answers.vector <- c(1,2,3,4,2,3,1,2,3) ;
result.data.frame = data.frame( classifications.factor, questions.factor, answers.vector ) ;
colnames(result.data.frame) <- c('c','q','a') ;
result.data.frame ;
返回
c q a
1 x a 1
2 x b 2
3 x c 3
4 y a 4
5 y b 2
6 y c 3
7 z a 1
8 z b 2
9 z c 3
什么命令可以将结果变成类似的结果
c.x q.x a.x c.y q.y a.y c.z q.z a.z
1 x a 1 y a 4 z a 1
2 x b 2 y b 2 z b 2
3 x c 3 y c 3 z c 3
?
这可以用base R
来完成
do.call(cbind,split(result.data.frame, result.data.frame$c))
# x.c x.q x.a y.c y.q y.a z.c z.q z.a
#1 x a 1 y a 4 z a 1
#2 x b 2 y b 2 z b 2
#3 x c 3 y c 3 z c 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.