删除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行时,它也可以工作。

但它不适用于我的实际数据,有32000行。

我做错了什么? 这对我来说似乎没有意义。

我假设你想删除所有的NA行。 然后,您可以执行以下操作:

 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 

如果要删除至less有一个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),]