将列表格式的数据帧转换为R中的矩阵格式

将列表格式的数据帧转换为R中的矩阵格式,r,dataframe,matrix,R,Dataframe,Matrix,我在R中有下面的data.frame (df1 <- data.frame(col1=rep(c('a','b','c'),each=3), col2=rep(c('d','e','f'),3), col3=1:9)) col1 col2 col3 1 a d 1 2 a e 2 3 a f 3 4 b d 4 5 b e

我在R中有下面的data.frame

(df1 <- data.frame(col1=rep(c('a','b','c'),each=3),
                   col2=rep(c('d','e','f'),3),
                   col3=1:9))

  col1 col2 col3
1    a    d    1
2    a    e    2
3    a    f    3
4    b    d    4
5    b    e    5
6    b    f    6
7    c    d    7
8    c    e    8
9    c    f    9

最简单的方法是什么?

一个选项是
xtabs

xtabs(col3~ col1 + col2, df1)

或使用
acast

reshape2::acast(df1, col1 ~ col2)

一个选项是
xtabs

xtabs(col3~ col1 + col2, df1)

或使用
acast

reshape2::acast(df1, col1 ~ col2)

谢谢,但是如何将其从xtabs转换为data.frame或matrix类?@Rodrigo,如果您希望使用
as.data.frame.matrix
进行data.frame包装,并且
acast
输出是
矩阵
xtabs
也是一个带有
xtabs
属性的
matrix
,如果需要,我们可以删除它。如果<代码>出来,太棒了!谢谢你的另一课。谢谢,但我如何将它从xtabs转换为data.frame或matrix类?@Rodrigo,如果你想使用
as.data.frame.matrix
进行data.frame包装,并且
acast
输出是
matrix
xtabs
也是一个带有
xtabs
属性的
matrix
,如果需要,我们可以删除它。如果<代码>出来,太棒了!谢谢你再上一课。