如何聚合两个数值变量然后计算比率

时间:2018-03-19 14:37:03

标签: r

我有一个数据集如下,有五列:日期,周数,年份,总小时数,总产量

我想按周数和年份总计我的总工作时数,也用周数和年份总和总产量,然后使用第一笔金额除以第二笔金额。

我知道我可以使用聚合函数,例如:

sum1<-aggregate(list(TotalHours=input$TotalHours), by = list(Year=input$Year, WeekNum=input$WeekNum), FUN=sum)

sum2<-aggregate(list(TotalProduction=input$TotalProduction), by = list(Year=input$Year, WeekNum=input$WeekNum), FUN=sum)

然后使用sum1 / sum2

但是,如果有简单的方法来简单地使用这个代码或者有其他功能可以帮助我做到这一点。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用dplyr,将您的weeknum和year变量传递到group_by,然后将TotalProduction和TotalHours传递给summarise,就像我使用mpg和wt变量一样,最后使用mutate计算在汇总步骤中计算的变量之上的新变量finalsum。以下是基于mtcars的示例代码:

library(dplyr)
mtcars %>% 
  group_by(cyl, carb) %>%
  summarise(sum_mpg=sum(mpg), sum_wt=sum(wt)) %>%
  mutate(finalsum = sum_mpg/sum_wt)