将2列数据帧转换为R中的2维矩阵

时间:2013-11-22 21:13:20

标签: r matrix dataframe

您好我正在尝试将包含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中完成这项工作吗?

2 个答案:

答案 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.matrixxtabs

 data.matrix(DF)

 xtabs( ~ name+work, data=DF)

您无需转换为矩阵即可使xtabs正常工作,并且在R中,这些值将在控制台打印出来,但“DF”保持不变,除非您指定({{ 1}})'DF'的值。

您可能会注意到名称列是“乱序”(一,三,二)。 (为什么英语的作者没有使词汇的文本版本在词法上排序正确?)你可以操纵一个因素的水平:

<-