R plyr ddply - 如何从结果中删除一个或多个变量?

R plyr ddply - How to leave one or more variables out from result?

假设我想对不同类型来源的成本求和,但我想从操作中排除一个特定来源。为了获得我使用的所有来源的成本明细

ddply(data, .(Source), summarize, Cost= sum(Cost))

但假设在所有不同类型的来源中,有一个我想从中排除 - 实现这一点的最简单方法是什么?我可以只对结果进行子集化,但是有没有办法直接通过 ddply 来做到这一点?

例如,您可以将传递给 ddply 的数据子集化:

ddply(subset(data, Source != "abc"), .(Source), summarize, Cost= sum(Cost))

ddply(subset(data, !Source %in% c("abc", "def")), .(Source), summarize, Cost= sum(Cost))

当然你可以使用 [ 而不是 subset

或者你可以试试 dplyr:

library(dplyr)
data %>% filter(!Source %in% c("abc", "def")) %>% group_by(Source) %>% summarise(Cost = sum(Cost))

或 data.table(未测试..):

library(data.table)
setDT(data)[!Source %in% c("abc", "def"), .(Cost = sum(Cost)), by=Source]