【发布时间】:2020-02-14 20:56:13
【问题描述】:
我想根据分组条件对除一个特定列之外的所有列求和。
例如:
Col1 Col2 Condition Name P1 P2 P3 P4
1990 1 0 APPLE 10 20 20 30
1990 1 1 BAN 30 40 50 50
1990 1 1 CAR 40 40 30 40
1990 2 0 DOG 100 20 30 40
1990 2 1 APPLE 10 20 20 30
1990 2 1 APPLE 50 20 20 30
我想 SUM P2, P3, P4 然后 APPEND P1 Condition 等于 "0" by @987654328 @ 和Col2。
所以结果会是:
Col1 Col2 Condition P1 P2 P3 P4
1990 1 0 10 100 100 120
1990 2 0 100 60 70 100
我知道如何添加data.table,但对此一无所知。
DT[, .(lapply(.SD, sum, na.rm=TRUE), by=.(Col1, Col2), .SDcols=c("P2", "P3", "P4")]
似乎DT[, setdiff(names(DT), c("P2", "P3", "P4")), with = FALSE] 是一个关键,但仍然不知道。
【问题讨论】:
标签: r data.table data-manipulation