r - 使用 dplyr 按分组年份进行总结

标签 r dplyr

我正在尝试总结一些数据。我正在尝试获取一组包含年份、月份和退款的数据。我想要的是按年份分组,并显示退款最高的月份以及相应的退款金额。

一些示例数据:

Year, Month, Ref 
2017, Jan, 1234 
2017, Feb, 2345 
2017, Mar, 1123 
2018, Jan, 1133 
2018, Feb, 3453 
2018, Mar, 2343 

到目前为止我所拥有的:

RefTable <- returns_data %>% group_by(Year) %>%
  summarise(MaxRefAmt  = max(Ref))

这将提取正确的金额,但事实证明找到相应的月份非常困难。我在想ifelse需要涉及声明,但我不确定如何去做。我也尝试使用dplyr这样做是因为我需要练习这个包。

任何帮助将不胜感激。如果我需要清理任何内容,请告诉我。

编辑: 我注意到这被标记为重复。我没有意识到是这样。然而,在回顾了类似的问题后,我显然不明白以前的答案。这个答案对我来说更有意义,并且更适合我正在研究的实际问题。此外,与此类似的上一个问题的结果不起作用,而此问题的最佳结果则没有问题。

最佳答案

我们可以在按“年份”分组后使用切片

returns_data %>%
   group_by(Year) %>%
   slice(which.max(Ref))
#    A tibble: 2 x 3
# Groups:   Year [2]
#   Year Month   Ref
#  <int> <chr> <dbl>
#1  2017 Feb    2345
#2  2018 Feb    3453

关于r - 使用 dplyr 按分组年份进行总结,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126419/

相关文章:

r - 利用变量值/类型来重命名列

r - 如何使用 dplyr 重命名 SQLite 表?

r - 是否有任何明确保证 dplyr 操作保留行顺序?

r - Hadoop 流在 R 中失败

r - dplyr::选择嵌套数据框

r - 将列表中的 data.frames 堆叠到单个 data.frame 中,将名称(列表)保留为额外的列

r - dplyr:按 NSE 中的位置选择列

R:根据特定条件删除重复行

r - 在 data.table 中使用 ifelse 选择每组一行

r - 如何在 R 中排列嵌套数据(即带父项的数据)?