Tôi đang viết một hàm cần kiểm tra xem cột (và biến!) Có tất cả các giá trị bị thiếu (NA
, <NA>
) hay không. Sau đây là đoạn của hàm:Tìm các cột có tất cả các giá trị bị thiếu
test1 <- data.frame (matrix(c(1,2,3,NA,2,3,NA,NA,2), 3,3))
test2 <- data.frame (matrix(c(1,2,3,NA,NA,NA,NA,NA,2), 3,3))
na.test <- function (data) {
if (colSums(!is.na(data) == 0)){
stop ("The some variable in the dataset has all missing value,
remove the column to proceed")
}
}
na.test (test1)
Warning message:
In if (colSums(!is.na(data) == 0)) { :
the condition has length > 1 and only the first element will be used
Q1: Tại sao là lỗi ở trên và bất kỳ sửa chữa?
Q2: Có cách nào để tìm cột nào có tất cả NA
, ví dụ: xuất danh sách (tên biến hoặc số cột)?
Tôi cảm thấy điều này phải được trả lời trước: một cái gì đó như 'tên (dữ liệu) [lapply (dữ liệu, hàm (x) tất cả (is.na (x)))] ' –
Dấu ngoặc đơn của bạn sai. Viết 'colSums (! Is.na (dữ liệu)) == 0' thay cho' colSums (! Is.na (dữ liệu) == 0) '. – sgibb