Вы очень близки к решению.Небольшое изменение в function
, используемом с lapply
, приведет вас к ожидаемому результату.
lapply
пересекает каждый фрейм данных, и вашей функции нужно subset
столбцы с именами от not equal
до NA
.
all_list < lapply(all_list, function(x){
x[,colnames(x) != "NA"]
})
# Verify changed data all_list
all_list[[1]]
# col1 col2
# 1 g x
# 2 j z
# 3 n p
# 4 u o
# 5 e b
Данные:
set.seed(1)
df1 <- data.frame(sample(letters, 5), sample(letters, 5), 1:5,
stringsAsFactors = FALSE)
names(df1) <- c("col1","col2","NA")
df2 <- data.frame(sample(letters, 5), sample(letters, 5), 11:15,
stringsAsFactors = FALSE)
names(df2) <- c("col1","col2","NA")
df3 <- data.frame(sample(letters, 5), sample(letters, 5), rep(NA, 5),
stringsAsFactors = FALSE)
names(df3) <- c("col1","col2","NA")
df4 <- data.frame(sample(letters, 5), sample(letters, 5), rep(NA, 5),
stringsAsFactors = FALSE)
names(df4) <- c("col1","col2","NA")
all_list <- list(df1,df2,df3,df4)
#check data
all_list[[1]]
# col1 col2 NA
#1 g x 1
#2 j z 2
#3 n p 3
#4 u o 4
$5 e b 5
# all_list[[2]], all_list[[3]] and all_list[[4]] contains similar values