стандартное отклонение на dataframe не работает
У меня есть неожиданный [для меня по крайней мере] ошибка при расчете стандартного отклонения. Идея [ * ] заключается в том, чтобы преобразовать все отсутствующие значения в 1 и 0 в противном случае. Затем извлеките переменные, которые имеют некоторые [но не все] отсутствующие значения, прежде чем корреляция будет выполнена. Этот шаг извлечения выполняется с помощью функции sd, но он не выполняется [почему?].
library(VIM)
data(sleep) # dataset with missing values
x = as.data.frame(abs(is.na(sleep))) # converts all NA to 1, otherwise 0
y = x[which(sd(x) > 0)] # attempt to extract variables with missing values
Error in is.data.frame(x) :
(list) object cannot be coerced to type 'double'
# convert to double
z = as.data.frame(apply(x, 2, as.numeric))
y = z[which(sd(z) > 0)]
Error in is.data.frame(x) :
(list) object cannot be coerced to type 'double'
[*] R в действии, Роберт Kabacoff
1 ответов
sd
на данных.кадры были несуществующими с R-3.0.0:
> ## Build a db of all R news entries.
> db <- news()
> ## sd
> news(grepl("sd", Text), db=db)
Changes in version 3.0.3:
PACKAGE INSTALLATION
o The new field SysDataCompression in the DESCRIPTION file allows
user control over the compression used for sysdata.rda objects in
the lazy-load database.
Changes in version 3.0.0:
DEPRECATED AND DEFUNCT
o mean() for data frames and sd() for data frames and matrices are
defunct.
использовать sapply(x, sd)
вместо.