r - 根据其他列表中的列名匹配从列表中填充矩阵

标签 r list matrix

我有一些数据:

num.list1 <- list(1,2,1,4,5)
num.list2 <- list(2,3)
num.list3 <- list(3,5,2)

num.data.list <- list(num.list1, num.list2, num.list3)

name.list1 <- list("A","B","C","D","E")
name.list2 <- list("B","C")
name.list3 <- list("A","C","E")

name.data.list <- list(name.list1, name.list2, name.list3)

all.names <- unique(unlist(name.data.list))

my.matrix <- matrix(data = NA, nrow = length(name.data.list), ncol =     length(all.names))

colnames(my.matrix) <- all.names

我想根据匹配 my.matrix 的列名,用 num.data.list 中的值填充 my.matrix > 使用 name.data.list 中的值。

即:

      A    B    C    D    E

1     1    2    1    4    5  

2     NA   2    3    NA   NA

3     3    NA   5   NA    2

有什么想法吗?谢谢。

最佳答案

使用矩阵子集:

library(reshape2)

nm = melt(name.data.list)

my.matrix[matrix(c(nm$L1, match(nm$value, all.names)), ncol = 2)] = unlist(num.data.list)
#      A  B C  D  E
#[1,]  1  2 1  4  5
#[2,] NA  2 3 NA NA
#[3,]  3 NA 5 NA  2

关于r - 根据其他列表中的列名匹配从列表中填充矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37281220/

相关文章:

python - 双向移动二维矩阵的有效方法?

python - 如何将特定链接存储为列表然后单击它们

r - 根据跨列的行值将 data.frame 拆分为列表

rvest:处理不同数量的嵌套类

r - 使用 ggplot2 在多个面板中划分长时间序列

python - 我想将元组值添加到元组,如果该元组[0 :2] is repeated as shown below:

r - 如何查找和删除数据框中的重复项?

Python:从键:值对字符串创建嵌套字典

java - 如何在 Java 中使用 List 作为键将 List 转换为 Map

C++ 矩阵组合