Я чувствую, что это должно быть что-то легкое, я поискал в Интернете, но продолжаю получать сообщения об ошибках. В прошлом я много занимался аналитикой, но я новичок в R и программировании.
У меня есть довольно простая функция для вычисления средних значений x столбцов данных:
columnmean <-function(y){
nc <- ncol(y)
means <- numeric(nc)
for(i in 1:nc) {
means[i] <- mean(y[,i])
}
means
}
Я в RStudio и тестирую его, используя включенный набор данных «качества воздуха». Когда я загружаю набор данных AQ и запускаю свою функцию:
data("airquality")
columnmean(airquality)
Я вернусь:
NA NA 9.957516 77.882353 6.993464 15.803922
Потому что первые две переменные в AQ содержат NA. К, круто. Я хочу подавить NA, чтобы R игнорировал их и все равно запускал функцию.
Я читаю, что могу указать это с помощью na.rm = TRUE, например:
columnmean(airquality, na.rm = TRUE)
Но когда я это делаю, я получаю сообщение об ошибке:
«Ошибка в средн. Столбце (качество воздуха, na.rm = TRUE): неиспользованный аргумент (na.rm = TRUE)»
Я повсюду читаю, что мне просто нужно включить na.rm = TRUE, и функция запустится и проигнорирует значения NA ... но я продолжаю получать эту ошибку. Я также пробовал use = "complete" и все, что смог найти.
Два предостережения:
Я знаю, что могу создать вектор с помощью is.na, а затем подмножество данных, но мне не нужен этот дополнительный шаг, я просто хочу, чтобы он запускал функцию и игнорировал недостающие данные.
Я также знаю, что могу указать IN функцию, чтобы игнорировать или не игнорировать, но я хотел бы выбрать способ игнорировать / не игнорировать на лету, на основе действия за действием, вместо того, чтобы он был частью самой функции .
Помощь приветствуется. Всем спасибо.
na.rm=TRUE
вmean
- person akrun   schedule 05.04.2017colMeans(airquality, na.rm=TRUE)
- person MrFlick   schedule 05.04.2017