summarize()
の条件でsum()
を適用すると、正しい答えが得られません。条件付きsum()はdplyrパッケージで不正確な結果を提供します
データフレームx行います。これは、xがどのように見えるかです
x = data.frame(flag = 1, uin = 1, val = 2)
x = rbind(x, data.frame(flag = 2, uin = 2, val = 3))
を:
flag uin val
1 1 1 2
2 2 2 3
私はflag == 2
とval
とval
を総括したいので、私は
x %>% summarize(val = sum(val), val.2 = sum(val[flag == 2]))
であり、結果は、
val val.2
1 5 NA
しかし、私が期待しているのはval.2
がNA
ではなく3であることです。私は、最初の総和を条件付き和を計算する場合の詳細については、それが正解で出てくる:
x %>% summarize(val.2 = sum(val[flag == 2]), val = sum(val))
val.2 val
1 3 5
、私は唯一の条件付きの合計を計算する場合、それはあまりにも正常に動作します:
x %>% summarize(val.2 = sum(val[flag == 2]))
val.2
1 3
私は愚かな間違いを犯したと思います。私は、以下の条件付き集計を行うために使用した変数の名前と同じ、合計結果に「val」という名前を付けました。私が 'val.total'という名前をつけた場合、計算エラーはありません。 –
正確 - 下の私の答えを見てください – csgillespie