2015-01-11 58 views
1

说我想总结我的成本在不同类型的来源,但我想从操作离开一个具体的来源。为了克服所有源的成本分解我用R plyr ddply - 如何从结果中保留一个或多个变量?

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

但是,假设了所有不同类型的来源有一个我想从这个排除 - 什么是实现这一目标的最简单的方法?我可以将结果分组,但是有没有办法通过ddply直接做到这一点?

回答

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] 
+0

从来没有说过感谢你这一点,我用这一切的时候现在。谢谢! – MaximusDecimusMeridius

+0

@MaximusDecimusMeridius,欢迎光临!很高兴帮助:) –

相关问题