繁体   English   中英

如何获取data.frame并在R中创建一个宽矩阵

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM