【发布时间】:2020-11-15 21:22:27
【问题描述】:
我有一个这样的数据框:
id v t1 t2 t3 t4 date1 list1
1 1.0 1.4 2 0.45 3 2020-09-03 val1
1 1.0 1.6 3 0.55 3.7 2020-09-05 val2
如何按id, v 分组并通过对每个列应用不同的聚合函数来聚合列t1, t2, t3, t4, date1, list1。更具体的
t1 -> mean
t2 -> max
t3 -> mean
t4 -> max
date -> max
list1 -> join as in python's ','.join
所以聚合后的框架看起来像:
id v t1 t2 t3 t4 date1 list1
1 1.0 1.5 3 0.5 3.7 2020-09-05 val1, val2
另外一件事是,这些列可以根据用户在 R 闪亮框架中的选择动态添加,这意味着我打算聚合的所有这些列都在数据框中,但其中一些可能不需要聚合,例如用户只能选择t1, date1 而不能选择其余的。因此,我的聚合参数取决于所选列,并且我确实可以从用户选择中获得列名。因此,如果我问如何构建动态聚合查询,这可能是有道理的。
在 python 中,我可以根据用户选择的列动态构建一个类似上面的字典,并使用类似pd.agg(**dict)的东西
如何在 R 中做到这一点?我试图查看 dplyr::summarise 和 data.table 但我似乎无法一次汇总所有这些。感谢您的帮助。
【问题讨论】:
-
快速搜索了
smartAgg,我自己没用过。