【发布时间】:2018-09-20 18:50:32
【问题描述】:
我有一个嵌套的命名数据框列表,如下所示:
mylist2 <- list(
list(df1.a = data.frame(replicate(2,sample(0:1,5,rep=TRUE))), df2.b = data.frame(replicate(2,sample(0:1,5,rep=TRUE)))),
list(df3.c = data.frame(replicate(2,sample(0:1,5,rep=TRUE))), df4.d = data.frame(replicate(2,sample(0:1,5,rep=TRUE)))),
list(df5.e = data.frame(replicate(2,sample(0:1,5,rep=TRUE))), df6.f = data.frame(replicate(2,sample(0:1,5,rep=TRUE)))))
我运行了一个测试(不重要的是什么类型的测试),它会生成一个字符向量,告诉我这个列表中哪些数据帧是重要的:
test
[1] "df1.a" "df5.e"
使用此字符向量从嵌套列表中提取这些数据帧的最有效方法是什么?测试只显示第二个列表的名称,所以nestedlist[test] 不起作用。
【问题讨论】:
-
或
mylist2[names(mylist2) %in% test],或mylist2[match(test, names(mylist2))]还有:“所以像 mylist2[test[1]] 这样的东西效率不高”你怎么会这么想?跨度> -
哦,拍!我把我的示例问题简化了太多。我实际上有一个数据框列表的列表。不知道如何简单地重现它,但问题是列表的元素可能被命名为
[[5]]df1.a, [[5]]df2.b, [[6]]df3.c, [[6]]df4.d,并且测试只产生嵌套列表的名称(例如df1.a)。 -
试试
lapply(mylist2, '[', test) -
能否请您检查一下您的示例,因为我不确定这是否是模仿您的原始数据的示例
-
@akrun 谢谢,现在编辑。 :)