R 基于数据帧的列将数据帧复制到矩阵

R 基于数据帧的列将数据帧复制到矩阵,r,matrix,R,Matrix,任务:将一列(例如第3列)从数据帧复制到矩阵 我有一个4列的数据框,它是无序的,如下所示 column1 column2 column3 column4 2 1 3 55555555 4 4 4 55555555 1 3 5 55555555 3 2 2 55555555 现在,我有一个大小为4X4的矩阵,称为uI矩阵 我试图实现的是

任务:将一列(例如第3列)从数据帧复制到矩阵

我有一个4列的数据框,它是无序的,如下所示

column1 column2 column3 column4
  2       1       3       55555555 
  4       4       4       55555555
  1       3       5       55555555
  3       2       2       55555555
现在,我有一个大小为4X4的矩阵,称为uI矩阵


我试图实现的是,根据矩阵的column1行和column2列,将column3作为我的数据填充到上述矩阵中

我们可以通过cbind数据集“df1”的“column1”和“column2”来使用行/列索引,或者将“data.frame”的前两列转换为矩阵,基于此获取“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
数据
如果你对你的问题有一些不是问题本身的评论,你可以把它放在下面的评论里。在这个网站上,最好不要在帖子中出现额外的聊天内容。若要查看我所做的编辑,请单击您文章下方的“编辑”链接。@prateek16最好使用dput显示示例数据,以便获得数据集的结构。无论如何,根据我用于测试的示例,它没有给出任何错误。我尝试了上面的方法,得到了如下错误,column1中的错误:column2:NA/NaN参数另外:警告消息:1:in[.data.framedf1,column1:column2:强制引入的NAs 2:In[.data.framedf1,第1列:第2列:由引入的NAscoercion@Pratheek16我用所使用的数据进行了更新。它没有显示任何错误。akrun-我尝试了与上面相同的数据,但仍然得到了前面评论中提到的错误消息。如果您可以逐步向我显示,那将非常好-我只是创建了一个数据框和一个矩阵,如上所述d合并了代码uI[as.matrixdf1[1:2]@prateek16奇怪的是,我显示的数据出现了错误。我使用的是R3.2.2。您使用的是哪个版本的R?请检查是否有因子列。akrun-我使用的是3.2.0.df1
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)