R 具有条件的两个表之间的和值
如何使用条件对另一个表中的信息求和。示例:表Y包含销售值,当月份为R 具有条件的两个表之间的和值,r,sum,left-join,conditional-statements,R,Sum,Left Join,Conditional Statements,如何使用条件对另一个表中的信息求和。示例:表Y包含销售值,当月份为jan时,我需要在表X中求和ID列中的值 表十 Id <- c(1,25,30) Product <- c("Shirt", "Pants", "Shorts") X <- data.frame(Id, Product) Id如注释中所述,您可以向的答案添加一个条件。对于sqldfcase,您可以按如下方式执行: X <- sqldf("SELECT X.Id, X.Product, sum(Y.sale
jan
时,我需要在表X中求和ID
列中的值
表十
Id <- c(1,25,30)
Product <- c("Shirt", "Pants", "Shorts")
X <- data.frame(Id, Product)
Id如注释中所述,您可以向的答案添加一个条件。对于sqldf
case,您可以按如下方式执行:
X <- sqldf("SELECT X.Id, X.Product, sum(Y.sale_value)
FROM X JOIN Y on X.Id = Y.Id
WHERE Y.month = 'jan'
GROUP BY X.Id, X.Product")
X使用过滤器调整mydplyr
代码:
X %>%
left_join(Y %>%
filter(month == 'jan') %>%
group_by(Id) %>%
summarise(sale_total = sum(sale_value)),
by = 'Id')
结果是:
Id Product sale_total
1 1 Shirt 900
2 25 Pants 900
3 30 Shorts 150
这几乎是相同的。你是怎样试图改变这个答案的?您是否尝试过类似于merge(X,聚合(sale_value~Id,Y[Y$month=='jan',],sum),by='Id')
?尝试merge(X,聚合(sale_value~Id,subset(Y,month=='jan'),sum),by='Id')
Id Product sale_total
1 1 Shirt 900
2 25 Pants 900
3 30 Shorts 150