r - 根据日期键对多个 R 列表的值求和

标签 r list

<分区>

我正在编写一个脚本,其中有两个列表,我试图合并结果以获得一个新列表。每个列表都有一个日期,然后是两个数字。列表如下所示:

         date clicks impressions
1  2019-06-01      1           2 
2  2019-06-02      0           0 
3  2019-06-03      100         120 

        date clicks impressions
1  2019-06-01      2          14
2  2019-06-02      3          14
3  2019-06-03     11          29

我想要一个列表

        date clicks impressions
1  2019-06-01      3          16
2  2019-06-02      3          14
3  2019-06-03     111         149

完成此任务的最佳方法是什么。我将及时添加 20 - 30 个列表,因此我想提取第一个列表,然后与第二个列表组合,然后与第三个列表组合,依此类推。我不知道我是否能够假设每个日期都会出现在每个列表中。

最佳答案

假设您的列表名为 list_df,您可以使用 bind_rowsgroup_by date 和然后求和所有其他列。

library(dplyr)

list_df %>%
   bind_rows() %>%
   group_by(date) %>%
   summarise_all(sum)

# A tibble: 3 x 3
#  date       clicks impressions
#  <fct>       <int>       <int>
#1 2019-06-01      3          16
#2 2019-06-02      3          14
#3 2019-06-03    111         149

在 base R 中可以使用 Reduce

实现
aggregate(.~date, Reduce(rbind, list_df), sum)

关于r - 根据日期键对多个 R 列表的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56914938/

相关文章:

c++ - 在 c++ 中使用自定义仿函数对数组进行排序,其中母类是通用的

r - 将 Spark 数据帧转换为 SparklyR 表 "tbl_spark"

list - 如何避免R中的循环:从列表中选择项目

r - 您如何通过警告对data.table中的组进行采样

r - dplyr 0.7 函数中的 if/else 条件

python - 有没有更好的方法来检查列表的所有条目是否在另一个列表中?

algorithm - List.mem 的复杂性

javascript - Jquery通过内部元素的文本切换列表元素

rhandsontable 为 Shiny 的应用程序隐藏列

r - 合并具有相同名称的列表列表的元素