1. ホーム
  2. r

[解決済み] Rでデータファイルの空の行を削除する

2023-04-10 21:09:25

質問

空の行があるデータセットがあります。それらを削除したいのですが。

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行の私の実際のデータではうまくいきません。

私は何か間違ったことをしたのでしょうか?私には意味がないように思えます。

どうすればよいのでしょうか?

すべて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

NAが1つ以上ある行を削除したい場合は、条件を変更するだけです。

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