Вам нужно преобразовать ваши данные в число c, чтобы иметь возможность выполнять любые вычисления на них. Когда вы запустите as.numeric
, ваш .
будет преобразован в NA
, который R использует для пропущенных значений. Затем все функции, о которых вы упоминаете, принимают аргумент na.rm
, который может быть установлен в TRUE
для удаления (rm) пропущенных значений (na).
Если ваши данные factor
, вам нужно сначала преобразовать их в character
, чтобы избежать потери информации , как описано в этом FAQ .
В целом, чтобы быть в безопасности, попробуйте следующее:
longdata$CAL <- as.numeric(as.character(longdata$CAL))
xCAL <- mean(longdata$CAL, na.rm = TRUE)
sdCAL <- sd(longdata$CAL, na.rm = TRUE)
# etc
Обратите внимание, что na.rm
является свойством функции - это не маги c, которая работает везде. Если вы посмотрите на страницы справки для ?mean
?sd
, ?min
, et c., Вы увидите документированный аргумент na.rm
. Если вы хотите удалить пропущенные значения в целом, функция na.omit()
работает хорошо.