我有这个数据框列表,
[[1]]
ns title missing
1 0 another string to fail
[[2]]
pageid ns title
1 40657 0 Action
[[3]]
pageid ns title
1 8609 0 Nationalisme
我想要一个脚本来删除所有没有“pageid”,“ns”和“title”作为colnames的排名。
先谢谢你
答案 0 :(得分:3)
我们可以使用%in%
和all
通过使用vector
循环遍历list
元素来创建逻辑sapply
。逻辑vector
可用于list
。
lst[sapply(lst, function(x) all(c("pageid", "ns", "title") %in% names(x)))]
#[[1]]
# pageid ns title
#1 40657 0 Action
#[[2]]
# pageid ns title
#1 8609 0 Nationalisme
或者我们可以使用Filter
Filter(function(x) all(c("pageid", "ns", "title") %in% names(x)), lst)
lst <- list(data.frame(ns = 0, title = "another string", missing = "to fail"),
data.frame(pageid = 40657, ns =0, title = "Action"),
data.frame(pageid= 8609, ns=0, title = "Nationalisme"))