根据R中的名称从 Dataframe 列表中删除 Dataframe

m3eecexj  于 2023-02-27  发布在  其他
关注(0)|答案(2)|浏览(166)

我有一个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)))
aurhwmvo

aurhwmvo1#

我们可以使用%in%

r[!names(r) %in% c("out", "Name")]

使用更新的数据

lapply(r, function(x) x[setdiff(names(x), c("out", "Name"))])
5gfr0r5j

5gfr0r5j2#

试试这个:

r[names(r)!='out'][names(r[names(r)!='out'])!='Name']

相关问题