NA値の置き換えに関する投稿はたくさんあります。次のテーブル/フレームのNAを次のように置き換えることができることを認識しています。
x[is.na(x)]<-0
しかし、特定の列のみに制限したい場合はどうなりますか?例を示しましょう。
まず、データセットから始めましょう。
set.seed(1234)
x <- data.frame(a=sample(c(1,2,NA), 10, replace=T),
b=sample(c(1,2,NA), 10, replace=T),
c=sample(c(1:5,NA), 10, replace=T))
それは与える:
a b c
1 1 NA 2
2 2 2 2
3 2 1 1
4 2 NA 1
5 NA 1 2
6 2 NA 5
7 1 1 4
8 1 1 NA
9 2 1 5
10 2 1 1
わかりました。置換を列「a」と「b」に限定したいと思います。私の試みは:
x[is.na(x), 1:2]<-0
そして:
x[is.na(x[1:2])]<-0
これは機能しません。
私のdata.tableの試みはy<-data.table(x)
、明らかに機能しませんでした。
y[is.na(y[,list(a,b)]), ]
is.na引数内に列を渡したいのですが、それは明らかに機能しません。
data.frameとdata.tableでこれを実行したいと思います。私の最終目標は、論理変数ではないため、「c」をそのままにして、「a」と「b」の1:2を0:1に再コーディングすることです。列がたくさんあるので、1つずつやりたくありません。そして、私はこれを行う方法を知りたいだけです。
何か提案はありますか?