任务:复制一列,将“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(矩阵的列)的上述矩阵
答案 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)