您好我正在尝试将包含2个字符列的R数据帧转换为矩阵。这是我想要做的一个例子:
假设我有这个数据框:
name work
one test1
one test2
two test1
two test3
three test3
我想把它变成这个矩阵
name test1 test2 test3
one 1 1 0
two 1 0 1
three 0 0 1
我知道如何在R中完成这项工作吗?
答案 0 :(得分:3)
DF <- read.table(text="name work
one test1
one test2
two test1
two test3
three test3", header=TRUE)
table(DF)
work
name test1 test2 test3
one 1 1 0
three 0 0 1
two 1 0 1
答案 1 :(得分:2)
我有两个R字:data.matrix
和xtabs
。
data.matrix(DF)
xtabs( ~ name+work, data=DF)
您无需转换为矩阵即可使xtabs
正常工作,并且在R中,这些值将在控制台打印出来,但“DF”保持不变,除非您指定({{ 1}})'DF'的值。
您可能会注意到名称列是“乱序”(一,三,二)。 (为什么英语的作者没有使词汇的文本版本在词法上排序正确?)你可以操纵一个因素的水平:
<-