根据数据帧的列将数据帧复制到矩阵

时间:2015-11-12 17:15:11

标签: r matrix

任务:复制一列,将“column3”从数据框说成矩阵。

我有一个包含4列的数据框,这是无序的 - 它看起来如下

column1 column2 column3 column4
  2       1       3       55555555 
  4       4       4       55555555
  1       3       5       55555555
  3       2       2       55555555

现在,我有一个大小为4X4的矩阵 - 称为“uI”矩阵

我想要实现的是,将column3作为我的数据填充到基于column1(矩阵的行)和column2(矩阵的列)的上述矩阵

1 个答案:

答案 0 :(得分:0)

我们可以使用cbind' column1'的行/列索引。和' column2'数据集(' df1')或转换前两列' data.frame' (如果是)到matrix,获取' uI'基于此并将其分配给数据集的第三列' df1'。

uI[as.matrix(df1[1:2])] <- df1[,3]
uI
#     [,1] [,2] [,3] [,4]
#[1,]    0    0    5    0
#[2,]    3    0    0    0
#[3,]    0    2    0    0
#[4,]    0    0    0    4

数据

df1 <- structure(list(column1 = c(2L, 4L, 1L, 3L), column2 = c(1L,
4L, 
3L, 2L), column3 = c(3L, 4L, 5L, 2L), column4 = c(55555555L, 
55555555L, 55555555L, 55555555L)), .Names = c("column1", "column2", 
"column3", "column4"), class = "data.frame", row.names = c(NA, -4L))
uI <- matrix(0, 4, 4)