我有这个数据框列表,
[[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
Run Code Online (Sandbox Code Playgroud)
我想要一个脚本来删除所有没有“pageid”、“ns”和“title”作为列名的排名。
提前谢谢你
我们可以使用%in%和通过循环遍历元素来all创建逻辑。逻辑可用于对 进行子集化。vectorlistsapplyvectorlist
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
Run Code Online (Sandbox Code Playgroud)
或者我们可以使用Filter
Filter(function(x) all(c("pageid", "ns", "title") %in% names(x)), lst)
Run Code Online (Sandbox Code Playgroud)
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"))
Run Code Online (Sandbox Code Playgroud)