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

R plyr ddply-如何从结果中保留一个或多个变量?,r,plyr,R,Plyr,假设我想计算不同类型来源的成本,但我想在操作中忽略一个特定来源。获取我使用的所有来源的成本明细 ddply(data, .(Source), summarize, Cost= sum(Cost)) 但是让我们说,在所有不同类型的来源中,有一种我想排除在外——实现这一点最简单的方法是什么?我可以只对结果进行子集划分,但有没有办法直接通过ddply来实现这一点?例如,您可以将传递到ddply的数据进行子集划分: ddply(subset(data, Source != "abc"), .(Sour

假设我想计算不同类型来源的成本,但我想在操作中忽略一个特定来源。获取我使用的所有来源的成本明细

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

但是让我们说,在所有不同类型的来源中,有一种我想排除在外——实现这一点最简单的方法是什么?我可以只对结果进行子集划分,但有没有办法直接通过ddply来实现这一点?

例如,您可以将传递到
ddply
的数据进行子集划分:

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

当然,您可以使用
[
而不是
子集

或者您可以尝试一下dplyr:

library(dplyr)
data %>% filter(!Source %in% c("abc", "def")) %>% group_by(Source) %>% summarise(Cost = sum(Cost))
或使用data.table(未测试..):


从来没有说过谢谢你,我现在一直在用这个。谢谢!
library(dplyr)
data %>% filter(!Source %in% c("abc", "def")) %>% group_by(Source) %>% summarise(Cost = sum(Cost))
library(data.table)
setDT(data)[!Source %in% c("abc", "def"), .(Cost = sum(Cost)), by=Source]