web-dev-qa-db-ja.com

R NA値を変更する

私のデータは次のようになります: http://imgur.com/8KgvWvP

各列の値NAを別の値に変更したい。たとえば、NASingle、およびDualを含む列で、すべてのNA'Single'に変更します。

私はこのコードを試しました:

data_price$nbrSims <- ifelse(is.na(data_price$nbrSims), 'Single', data_price$nbrSims)

しかし、私のデータは次のようになり、Dual2およびSingle1になります。 http://imgur.com/TC1bIgw

他の値を変更せずにNA値を変更するにはどうすればよいですか?前もって感謝します!

8
GerritCalle

これを試してください(NAを確認し、"Single"に置き換えてください)。

data_price$nbrSims <- as.character(data_price$nbrSims)
data_price$nbrSims[is.na(data_price$nbrSims)] <- "Single"
7
Marta

ifelseステートメントの後に整数値1および2を取得したのは、列がfactorクラスであるためです。これをcharacterクラスに変換すると、正常に機能するはずです

 data_price$nbrSims <- as.character(data_price$nbrSims)
 data_price$nbrSims <- ifelse(is.na(data_price$nbrSims), 
             'Single', data_price$nbrSims)
5
akrun

明確にするために、マルタの答えは正しいです。

これですべてのNa値を変更することもできます

data_price[is.na(data_price)]<-"Something"
4
DanieleO