107

CSV ファイルからのデータ フレームがあります。データ フレームDFには、観測値を含む列とVaR2、測定が行われた日付を含む列 ( ) があります。日付が記録されていない場合、CSV ファイルにはNA欠落データの値が含まれます。

Var1  Var2 
10   2010/01/01
20   NA
30   2010/03/01

列 ( ) の値new_DFを持つ行のみが含まれるように、subset コマンドを使用して新しいデータ フレームを定義したいと考えています。この例では、Row 2 のみが new に含まれます。NA'VaR2DF

コマンド

new_DF<-subset(DF,DF$Var2=="NA") 

結果のデータ フレームには行エントリがありません。

元の CSV ファイルで値NAが と交換されている NULL場合、同じコマンドで目的の結果が得られます: new_DF<-subset(DF,DF$Var2=="NULL").

NA文字列の値が元の CSV ファイルで提供されている場合、このメソッドを機能させるにはどうすればよいですか?

4

6 に答える 6

40

NA は R の特別な値です。NA 値と「NA」文字列を混同しないでください。データがインポートされた方法に応じて、"NA" および "NULL" セルはさまざまなタイプになる可能性があります (デフォルトの動作は、"NA" 文字列を NA 値に変換し、"NULL" 文字列をそのままにすることです)。

read.table() または read.csv() を使用する場合は、"na.strings" 引数を考慮してクリーンなデータ インポートを行い、常に実際の R NA 値を使用する必要があります。

「NULL」セルと「NA」セルの両方で機能する例:

DF <- read.csv("file.csv", na.strings=c("NA", "NULL"))
new_DF <- subset(DF, is.na(DF$Var2))
于 2011-11-02T13:32:52.453 に答える
4

これを変更してみてください:

new_DF<-dplyr::filter(DF,is.na(Var2)) 
于 2017-11-21T23:57:28.780 に答える
-1

NA データを含むすべての行を出力します。

tmp <- data.frame(c(1,2,3),c(4,NA,5));
tmp[round(which(is.na(tmp))/ncol(tmp)),]
于 2016-05-29T06:28:36.233 に答える