Получение "NA", когда я запускаю стандартное отклонение - PullRequest
9 голосов
/ 21 апреля 2011

Быстрый вопрос. Я прочитал мой CSV-файл в переменную data. У него есть метка столбца var, которая имеет числовые значения.

Когда я запускаю команду

sd(data$var)

Я получаю

[1] NA 

вместо моего стандартного отклонения.

Не могли бы вы помочь мне понять, что я делаю не так?

Ответы [ 3 ]

28 голосов
/ 21 апреля 2011

Попробуйте sd(data$var, na.rm=TRUE), и тогда любые NA в столбце var будут игнорироваться. Также заплатит, чтобы проверить ваши данные, чтобы убедиться, что NA должны быть NA, и что они не были прочитаны с ошибками, такие команды как head(data), tail(data) и str(data) должны помочь с этим.

5 голосов
/ 21 апреля 2011

Возможно, в var отсутствуют значения, или столбец не числовой, или имеется только одна строка.

Попробуйте удалить пропущенные значения, которые помогут в первом случае:

sd(dat$var, na.rm = TRUE)

Если это не сработает, проверьте, что

class(dat$var)

является "числовым" (второй случай), и это

nrow(dat)

больше 1 (третий случай).

Наконец, data - это функция в R, поэтому лучше использовать другое имя, что я и сделал здесь.

0 голосов
/ 02 января 2019

В данных могут быть значения Inf или -Inf.

Попробуйте

is.finite(data)

или

min(data, na.rm = TRUE)
max(data, na.rm = TRUE)

чтобы проверить, так ли это на самом деле.

...