我们有一个向量列表(不同长度):
foo <- list(1:3,NULL,2:7)
我们需要的是一个包含两列的 data.frame:项目和列表编号,如下所示:
data.frame(Item=c(1:3,2:7), List=c(1,1,1,3,3,3,3,3,3))
这里Item
column 是 中项目的向量foo
,List
columns 显示foo
每个项目所属的列表。
这可以像下面这样完成:
data.frame(Item=unlist(foo),
List=unlist(lapply(seq_along(foo), function(i) rep(i, length(foo[[i]])))))
但我正在寻找更有创意和更有效的解决方案。你有更好的想法吗?