Как оценить несколько имен столбцов в функции?
Я работаю с очень широким фреймом данных, который состоит из 100+ имен столбцов. Я ищу структурировать поиск данных в каждом из этих столбцов, используя следующий код:
funfilter <- function(col) {
print(col)
output <- d$col[d$col != ""]
print(output)
}
for(i in 23:length(colnames(d))){
funfilter(colnames(d)[i])
}
Этот код создает выходную переменную NULL. Есть ли лучший способ сделать это? Я бы предпочел использовать R-base, если это возможно.
1 ответ
Решение
Вы можете использовать базу lapply
/sapply
добиться вашего результата
lapply(d[23:ncol(d)], function(x) x[x != ""])
Это даст вам список векторов, где значение в столбце не пустое (""
).
Используя воспроизводимый пример
d <- data.frame(a = 1:5, b = c(1, 2, 3, "", 4), c = c("", 1, "", 3, ""),
stringsAsFactors = FALSE)
lapply(d[2:ncol(d)], function(x) x[x != ""])
#$b
#[1] "1" "2" "3" "4"
#$c
#[1] "1" "3"