我有一个 data.frames 列表。我想知道如何删除此列表中名称为以下任一名称的 data.frames:c("out", "Name")
。
我尝试了r[names(r) != c("out", "Name")]
但没有成功。
r <- list(
data.frame(Name = rep("Jacob", 6),
X = c(2,2,1,1,NA, NA),
Y = c(1,1,1,2,1,NA),
Z = rep(3, 6),
out = rep(1, 6)),
data.frame(Name = rep("Jon", 6),
X = c(1,NA,3,1,NA,NA),
Y = c(1,1,1,2,NA,NA),
Z = rep(2, 6),
out = rep(1, 6)),
data.frame(Name = rep("Jon", 6),
X = c(1,NA,3,1,NA,NA),
Y = c(1,1,1,2,2,NA),
Z = rep(2, 6),
out = rep(2, 6)),
data.frame(Name = rep("Jim", 6),
X = c(1,NA,3,1,NA,NA),
Y = c(1,1,1,2,2,NA),
Z = rep(2, 6),
out = rep(1, 6)))
最佳答案
我们可以使用%in%
r[!names(r) %in% c("out", "Name")]
更新数据
lapply(r, function(x) x[setdiff(names(x), c("out", "Name"))])
关于r - 根据 R 中的名称从 data.frames 列表中删除 data.frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58261593/