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

时间:2017-09-05 09:10:52

标签: r matrix dataframe

我想将数据帧转换为R中的矩阵,如下例所示:

df
row.index   column.index   matrix element
1           1              A
1           2              B
2           1              C
2           2              D

matrix
A  B
C  D

是否可以对rownames进行相同的操作?例如

df
row.name   column.name   matrix element
X          P             A
X          Q             B
Y          P             C
Y          Q             D

matrix
     P  Q

X    A  B
Y    C  D

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

我们可以使用<Image x:Name="img1" Width="100" Height="100" Source="Assets/1.jpg" />

tapply

它也适用于第二个数据集

tapply(df$matrixelement, df[1:2], FUN = I)

如果我们需要res <- tapply(df1$matrixelement, df1[1:2], FUN = I) names(dimnames(res)) <- NULL res # P Q #X "A" "B" #Y "C" "D" ,则可以使用data.frame

dcast

数据

library(reshape2)
dcast(df, row.index ~column.index)