R удалить столбец df из списка - PullRequest
0 голосов
/ 04 февраля 2020

Привет У меня есть следующая структура:

list
- list
-- df
--- column

образец данных

participants <- list(list(data.frame("col1", "col2"),data.frame("col1", "col2"),data.frame("col1", "col2")),
         list(data.frame("col1", "col2"),data.frame("col1", "col2"),data.frame("col1", "col2")))

Я пытаюсь удалить col1 для каждого кадра данных каждого участника. Я могу сделать это индивидуально с participants[[1]][[2]]$col1 <- NULL, но я пытаюсь автоматизировать это с помощью Al oop. Они не возвращают ошибку, но, похоже, ничего не делают.

for( p in participants){
  for (i in p){
    i$col1 <- NULL
  }
}

drop <- c("col1")
for( p in participants){
  for (i in p){
    i[ , !(names(i) %in% drop)]
  }
}

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Нам нужен двойной l oop, что-то вроде:

lapply(myList, function(i) lapply(i, function(j) j[, !colnames(j) %in% drop ]))
0 голосов
/ 04 февраля 2020

Вот решение с использованием dplyr и purrr.

library(purrr)
library(dplyr)


p <- list(list(data.frame("col1", "col2"),data.frame("col1", "col2"),data.frame("col1", "col2")),
         list(data.frame("col1", "col2"),data.frame("col1", "col2"),data.frame("col1", "col2")))

map_depth(p, 2, ~select(.x, -X.col1.))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...