假设我想在不同类型的资源上总结我的成本,但我想从操作中留下一个特定的来源。为了对所有来源进行成本分解,我使用
ddply(data, .(Source), summarize, Cost= sum(Cost))
但是,让我们说在所有不同类型的资源中,有一个我想从中排除 - 实现这一目标的最简单方法是什么?我可以将结果分组,但有没有办法通过ddply直接执行此操作?
答案 0 :(得分:2)
例如,您可以将传递到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]