Я пытаюсь пролистать список фреймов данных, отбрасывая столбцы, которые не соответствуют некоторым условиям. Я хочу изменить фреймы данных так, чтобы они по существу пропустили 1 столбец. После выполнения функции я могу изменить СПИСОК фреймов данных, но не самих исходных фреймов данных.
df1 <- data.frame(
a = c("John","Peter","Dylan"),
b = c(1, 2, 3),
c = c("yipee", "ki", "yay"))
df2 <- data.frame(
a = c("Ray","Bob","Derek"),
b = c(4, 5, 6),
c = c("yum", "yummy", "donuts"))
df3 <- data.frame(
a = c("Bill","Sam","Nate"),
b = c(7, 8, 9),
c = c("I", "eat", "cake"))
l <- list(df1, df2, df3)
drop_col <- function(x) {
x <- x[, !names(x) %in% c("e", "b", "f")]
return(x)
}
l <- lapply(l, drop_col)
Когда я вызываю список l, я получаю список фреймов данных с изменения я хочу. Когда я вызываю элемент в списке, df1 или df2 или df3, у них нет пропущенного столбца.
Я смотрел на это решение и многие другие, я явно что-то упускаю.