複数の被験者からのデータを含むRデータフレームがあり、それぞれが数回テストされています。セットの統計を実行するために、サブジェクト (「id」) の係数と各観測の行 (係数「セッション」によって指定) があります。いえ
print(allData)
id session measure
1 1 7.6
2 1 4.5
3 1 5.5
1 2 7.1
2 2 NA
3 2 4.9
上記の例で、「メジャー」列の id==2 の行の 1 つに NA が含まれている場合、id==2 のすべての行を削除する簡単な方法はありますか?
より一般的には、実際には各被験者に多くのメジャー (列) と 4 つのセッション (行) があるため、(少なくとも) 与えられたレベルの「id」要素を持つすべての行を削除するエレガントな方法はありますか?この「id」レベルの行の 1 つは列に NA を含んでいますか?
現在のソリューションよりもエレガントにこの問題を解決できる組み込み関数が存在する可能性があるという直感があります。
# Which columns to check for NA's in
probeColumns = c('measure1','measure4') # Etc...
# A vector which contains all levels of "id" that are present in rows with NA's in the probeColumns
idsWithNAs = allData[complete.cases(allData[probeColumns])==FALSE,"id"]
# All rows that isn't in idsWithNAs
cleanedData = allData[!allData$id %in% idsWithNAs,]
ありがとう、ジョナス