我有下表(这只是一个示例):
custNbr channel custBranchNbr totalTransactions
1 Web 901 7
2 store 903 5
3 Cel 901 10
etc...
我想创建" sub_table"总结了每个custBranchNbr中以特定渠道为条件的交易数量(仅限Web + Cel);像这样的东西:
custBranchNbr sum(totalTransaction)
901 17
我知道如何使用条件求和(如:sum(DF[which(DF[,1]>30 & DF[,4]>90),2])
),但我不知道如何实现这一点来获得"子表"我上面说过。
您的帮助将不胜感激。
答案 0 :(得分:1)
使用聚合函数
sub_table <- aggregate(custBranchNbr, df[df$channel %in% c('Web', 'Cel'), ], sum)
答案 1 :(得分:0)
我们也可以使用library(dplyr)
执行此操作:
df %>% filter(channel %in% c("Web", "Cel") %>%
group_by(custBranchNbr) %>%
summarise(sum_totalTransactions = sum(totalTransactions))
# A tibble: 1 × 2
custBranchNbr sum_totalTransactions
<int> <int>
1 901 17
答案 2 :(得分:0)
使用data.table
library(data.table)
setDT(df)[channel %chin% c('Web', 'Cel'), .(Sum = sum(totalTransaction)).( , custBranchNbr]