Удалите data.frame из списка data.frames на основе имен в R - PullRequest
1 голос
/ 07 октября 2019

У меня есть список 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)))

Ответы [ 2 ]

2 голосов
/ 07 октября 2019

Мы можем использовать %in%

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

С обновленными данными

lapply(r, function(x) x[setdiff(names(x), c("out", "Name"))])
0 голосов
/ 07 октября 2019

Попробуйте это:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...