データフレーム内の特定の列に対してNAsをゼロに置き換えるループを作成しようとして多くの時間を費やしましたが、まだ成功していません。私は検索し、同様の質問を見つけることができません。データフレーム内でNAsを0に置き換える特定の列をループする
df <- data.frame(A = c(2, 4, 6, NA, 8, 10),
B = c(NA, 10, 12, 14, NA, 16),
C = c(20, NA, 22, 24, 26, NA),
D = c(30, NA, NA, 32, 34, 36))
df
は私を与える:
A B C D
1 2 NA 20 30
2 4 10 NA NA
3 6 12 22 NA
4 NA 14 24 32
5 8 NA 26 34
6 10 16 NA 36
私は私ができる、別々のコード行を使用した列のみBとDのために0にNASに設定したい:
df$B[is.na(df$B)] <- 0
df$D[is.na(df$D)] <- 0
しかし、私が欲しいです実際のデータセットには多くの変数があるため、ループを使用することができます。
私は私が得る唯一の列BとDをループする方法を見つけることができません。
df
A B C D
1 2 0 20 30
2 4 10 NA 0
3 6 12 22 0
4 NA 14 24 32
5 8 0 26 34
6 10 16 NA 36
基本的に、私は、データフレームに変数のリストを使用してループを適用する:
varlist <- c("B", "D")
変数リストを使ってデータフレーム内の特定の列のみをループして、NSをゼロに置き換える方法はありますか?
ループは必要ないのです。 'df [varlist] < - replace(df [varlist]、is.na(df [varlist])、0)'を実行すると、 – Sotos