2016-07-10 4 views
0

私はCONDITIONALAPPROVALと呼ばれる列を持っていて、多くの文字、Nが入っています。これらのすべてをN0にコードしたいと思います。以下は私が使用しているコードですが、<NA>が存在するだけで列を印刷したときです。Rを使用して既存の列にデータを再コードする

attach(my_data) 
my_data$CONDITIONALAPPROVAL[my_data$CONDITIONALAPPROVAL=='N'] <- 0 
my_data$CONDITIONALAPPROVAL 

それは簡単なようだが、それは作業とするとき、それは0のがあるはずですただ<NA>のだ列I出力ではないです。その後

my_data$CONDITIONALAPPROVAL <- as.character(my_data$CONDITIONALAPPROVAL) 

my_data$CONDITIONALAPPROVAL[my_data$CONDITIONALAPPROVAL=='N'] <- 0 

+1

警告メッセージはありますか?あなたの 'my_data $ CONDITIONALAPPROVAL'は'要因 'ですか?もしそうなら、それを文字に変換したいかもしれません: 'my_data $ CONDITIONALAPPROVAL < - as.character(my_data $ CONDITIONALAPPROVAL) ' – thelatemail

+0

文字クラスの列ですか? – rosscova

+1

各コールでdata.frameの名前を使用する場合は、データを「添付」する必要はありません。 – Noah

答えて

0

を使用することができます必要/関連性がある場合は、数値に変換:

my_data$CONDITIONALAPPROVAL <- as.numeric(my_data$CONDITIONALAPPROVAL) 
0

我々は(それがあるとして、要因であると思わ)最初の文字列変数を作成しdata.table

library(data.table) 
setDT(my_data, key = "CONDITIONALAPPROVAL")[ 
    , CONDITIONALAPPROVAL := as.character(CONDITIONALAPPROVAL) 
     ][("N"), CONDITIONALAPPROVAL := "0"] 
+0

最後のステップで指定するのではなく、キーとして列を設定する利点はありますか? – rosscova

+1

@rosscova繰り返されるサブセット/結合操作を行わない限り、後続の実行 – akrun

+1

@ roscovaで少し速くなります。 – Arun

関連する問題