Как оценить несколько имен столбцов в функции? - PullRequest
0 голосов
/ 02 апреля 2019

Я работаю с очень широким фреймом данных, который состоит из 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 Ответ

1 голос
/ 02 апреля 2019

Вы можете использовать базу 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...