Я пишу функцию, которой необходимо проверить, имеет ли (и в каком!) Столбец (переменная) все отсутствующие значения (NA
, <NA>
). Ниже приведен фрагмент функции:
test1 <- data.frame (matrix(c(1,2,3,NA,2,3,NA,NA,2), 3,3))
test2 <- data.frame (matrix(c(1,2,3,NA,NA,NA,NA,NA,2), 3,3))
na.test <- function (data) {
if (colSums(!is.na(data) == 0)){
stop ("The some variable in the dataset has all missing value,
remove the column to proceed")
}
}
na.test (test1)
Warning message:
In if (colSums(!is.na(data) == 0)) { :
the condition has length > 1 and only the first element will be used
Q1: Почему указанная выше ошибка и какие-либо исправления?
Q2: Есть ли способ узнать, в каких столбцах есть все NA
, например вывести список (имя переменной или номер столбца)?
names(data)[lapply(data,function(x) all(is.na(x)))]
- person Ben Bolker   schedule 04.07.2012colSums(!is.na(data)) == 0
вместоcolSums(!is.na(data) == 0)
. - person sgibb   schedule 04.07.2012