Exploratory コミュニティ

欠損値<NA>を含んでいても無視して計算する方法

#1

行単位で新たな計算列を作成する際に計算元の欠損値()を含んだ場合、その計算値もとなってしまいます。
出来れば元データの状態を保ちたく元のデータがない場合はのまま処理を進めたいのですが、何か良い計算式など有りますでしょうか?

例)合計出力 = 出力1 + 出力2 + 出力3

出力1 出力2 出力3 合計出力(Mutate)
1.0 1.0 1.0 3.0
NA 1.0 1.0 NA

#2

これ引っかかると愕然としますよねぇ~~

月並みですが計算する前に列ヘッダメニューから
「欠損値(NA)の加工」→「欠損値(NA)を特定の値で埋める」で0にしておく、
というやり方で対応してます。

#3

ご回答ありがとうございます。 そうなんです、ここ出力ないですよって報告したら一部停止しただけで出力は止まっていないからデータ確認するように言われ、出力がないため空白となったデータがNA値に変換されていてのが分かり、平謝りしておりました。 出力が0のときもあるため、空白と0値は分ける必要がありExcelのSUM関数みたいに計算してくれればと思いました。 仕方なくデータフレームの複製で対応しております。

#4

そうすると、
例えば
image
という感じのデータだったとして、
1レコードがユニークになる単位でグループ化(この場合はID列)しておいて、
sum(A,B,C,na.rm=TRUE)
というようにna.rm=TrueにしたSUMで合計する、とかでどうでしょうか?

image

※計算後のステップでグループ化は外しておくことをおすすめします