【发布时间】:2016-09-13 20:30:30
【问题描述】:
我有一些数据:
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 的列名与name.data.list 中的值匹配,用num.data.list 中的值填充my.matrix。
即:
A B C D E
1 1 2 1 4 5
2 NA 2 3 NA NA
3 3 NA 5 NA 2
有什么想法吗?谢谢。
【问题讨论】:
-
我会从
unlist()开始。为什么要使用嵌套列表来保存单个值? -
@RichardScriven:这是一种简化。在真实数据中,每个列表都是从大量多变量数据中提取的。
-
@mattbawn 不要以为你回答了理查德的问题。为什么
num.list.1是list而不是标准的数字向量?它的每个元素的长度为 1;list结构不适合这种对象。 -
@nicola 是的,您可能是对的,但在我的真实数据中,每个列表都包含不同长度的数字数据。谢谢。