Tôi gặp lỗi [ít nhất đối với tôi ít nhất] không mong muốn khi tính toán độ lệch chuẩn. Ý tưởng [*] là chuyển đổi tất cả các giá trị còn thiếu thành 1 và 0 nếu không. Sau đó trích xuất các biến có một số giá trị bị thiếu [nhưng không phải tất cả], trước khi thực hiện tương quan. Bước khai thác đó đã được thử với một chức năng sd, nhưng nó không thành công [tại sao?].độ lệch chuẩn trên dataframe không hoạt động
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 trong hành động, Robert Kabacoff
Cảm ơn Joshua. Đây là những chức năng khá quan trọng và nó phá vỡ một số mã mà tôi có. :-( – Henk
@Henk: vâng, nó gây ra vấn đề cho một vài gói CRAN vào lúc đó –
@Henk Bạn có thể định nghĩa các hàm 'mean.data.frame' và' sd.data.frame' của riêng mình một cách dễ dàng nếu bạn không muốn đi qua mã di sản của bạn và thay đổi nó – Roland