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