1
を合計するときに私はこのデータセットを有するR. におけるいくつかの集約関数に問題を有する:xの「B」レベルの場合R凝集は値0を与え、それはNA
df = data.table(x = rep(letters[1:3], each = 4), y = seq(15,26))
# I put NA value for "b" levels
df[5:8,2] = NA
を、I Yのみの列と集計の結果のためのNA値持っているが
agg1 = ddply(df, .(x), summarize, agg = sum(y, na.rm = TRUE))
agg2 = aggregate(y ~ x, data = df, sum, na.action=na.pass, na.rm=TRUE)
agg3 = df[, agg := sum(y, na.rm = TRUE), by = list(x)]
(...私が欲しいもの)ではなくNAの0で(NA + NA + ... + NA)の合計を置き換える私はできません実際のデータセットの複雑さのためにこの問題を越えるために私のデータセットのNA値を削除してください。
おかげますが、このラインを持っている場合:11 [DF 2] = NA "a"因子は数字でいっぱいであり、 "b"因子はNAで満ちていて、 "c"因子は数字およびNAである。あなたが与えた解決策は、このケースでは機能しません。 – nimliug
あなたの答えはここにあります:[link](https://stackoverflow.com/questions/15057769/treat-na-as-zero-only-when-adding-a-number) 'plus < - function X){ (全て(is.na(X))){ C(X [0]、NA)}他{ 和(X、na.rm = TRUE)} なら} DF [ lapply(.SD、plus)、by = x] ' –