从基于 R 中的名称的 data.frame 列表中删除 data.frame



我有一个数据帧列表。我想知道如何删除此列表中名称为以下任何名称的 data.frame: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[names(r)!='out'][names(r[names(r)!='out'])!='Name']

最新更新