Удаление пустых строк файла данных в R



у меня есть набор данных с пустыми строками. Я хотел бы удалить их:



myData<-myData[-which(apply(myData,1,function(x)all(is.na(x)))),]


Он работает нормально. Но теперь я хотел бы добавить столбец в мои данные и инициализировать первое значение:



myData$newCol[1] <- -999

Error in `$<-.data.frame`(`*tmp*`, "newCol", value = -999) :
replacement has 1 rows, data has 0


к сожалению, это не работает, и я действительно не понимаю, почему, и я не могу решить эту проблему.
Это сработало, когда я удалил одну строку за раз, используя:



TgData = TgData[2:nrow(TgData),]


или что-нибудь подобное.



Он также работает, когда я использовал только первый 13.000 строки.



но он не работает с моими фактическими данными, с 32.000 строк.



что я сделал не так? Мне кажется, это не имеет никакого смысла.

889   2  
r

2 ответов:

Я предполагаю, что вы хотите удалить строки, которые все NAs. Затем, вы можете сделать следующее :

data <- rbind(c(1,2,3), c(1, NA, 4), c(4,6,7), c(NA, NA, NA), c(4, 8, NA)) # sample data
data
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1   NA    4
[3,]    4    6    7
[4,]   NA   NA   NA
[5,]    4    8   NA

data[rowSums(is.na(data)) != ncol(data),]
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    1   NA    4
[3,]    4    6    7
[4,]    4    8   NA

Если вы хотите удалить строки, которые имеют хотя бы один NA, просто измените условие :

data[rowSums(is.na(data)) == 0,]
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    6    7

Если у вас есть пустые строки, а не NAS, вы можете сделать:

data[!apply(data == "", 1, all),]

чтобы удалить оба (NAs и пустой):

data <- data[!apply(is.na(data) | data == "", 1, all),]

Comments

    Ничего не найдено.