【发布时间】:2017-08-24 18:26:50
【问题描述】:
我有一个 csv 文件
User_name M_User Total
user 1 user 2 7
user 1 user 3 19
user 1 user 7 5
user 3 user 2 1
user 2 user 7 1
我想把它转换成矩阵形式
user 1 user 2 user 3 user 7
user 1 0 7 19 5
user 3 0 1 0 0
user 2 0 0 0 1
user 7 0 0 0 0
我现在正在做的事情是这样的
require(reshape2)
m <- as.matrix(dcast(df, USER_NAME ~ M_USER, value.var = "TOTAL", fill=0))[,1:4]
但我得到的答案是
USER_NAME user 2 user 3 user 7
[1,] "user 1" "7" "19" "5"
[2,] "user 2" "0" " 0" "1"
[3,] "user 3" "1" " 0" "0"
如何修改代码以便得到这个矩阵
user 1 user 2 user 3 user 7
user 1 0 7 19 5
user 3 0 1 0 0
user 2 0 0 0 1
user 7 0 0 0 0
【问题讨论】:
-
随便
xtabs(Total ~User_name + M_User, df) -
礼貌地说,您的输出应该是矩阵的样子(如您在此处看到的 [1]:stats.idre.ucla.edu/r/library/…)。您能否告诉我们更多关于您的输出目标的信息,以便我们更好地提供一些指导?例如,是否有理由需要它成为矩阵?你实际上对输出做了什么?
-
您可以使用
read.csv将 csv 文件作为矩阵读取。阅读此package documentation。 -
@Masoud 这里的问题不仅与对象的类别有关,还与交叉制表有关。在链接的问题中,它仅与课程有关。