我想将数据帧列表合并/缩减为一个数据帧,但我也想一步总结数据.输出来自模拟;因此,每个数据帧都有相同的输出 struct (即,一个组列,然后是两个带值的列,每个输出的值都不同).

Minimal Reproducible Example

df_list <- list(structure(list(Group = c("A", "B", "C"), Top_Group = c(1L, 
0L, 0L), Efficiency = c(0.464688158128411, 0.652386676520109, 
0.282913417555392)), row.names = c(NA, -3L), class = c("tbl_df", 
"tbl", "data.frame")), structure(list(Group = c("A", "B", "C"
), Top_Group = c(0L, 1L, 0L), Efficiency = c(0.120292583014816, 
0.0356206290889531, 0.37196880299598)), row.names = c(NA, -3L
), class = c("tbl_df", "tbl", "data.frame")), structure(list(
    Group = c("A", "B", "C"), Top_Group = c(0L, 1L, 0L), Efficiency = c(0.261322160949931, 
    0.383351784432307, 0.754808459430933)), row.names = c(NA, 
-3L), class = c("tbl_df", "tbl", "data.frame")))

What I Have Tried

我知道我可以将数据绑定在一起,然后进行分组和总结.

library(tidyverse)

df_list %>% 
  bind_rows() %>%
  group_by(Group) %>%
  summarise(Top_Group = sum(Top_Group), Efficiency = max(Efficiency))

#  Group Top_Group Efficiency
#  <chr>     <int>      <dbl>
#1 A             1      0.465
#2 B             2      0.652
#3 C             0      0.755

我希望有某种方法可以使用reduce;然而,我只能让它用于拉出一列(如这里显示的Top_Group),并且不确定如何跨所有列使用(如果可能的话)并返回数据帧而不是向量.

df_list %>%
  map(2) %>%
  reduce(`+`)

# [1] 1 2 0

Expected Output

  Group Top_Group Efficiency
  <chr>     <int>      <dbl>
1 A             1      0.465
2 B             2      0.652
3 C             0      0.755

推荐答案

根据OP的代码,在不同的列上使用了不同的函数.因此,我们可能需要单独应用这些元素函数

library(purrr)
reduce(df_list, ~ tibble(.x[1], .x[2] + .y[2], pmax(.x[3], .y[3])))

-输出

# A tibble: 3 × 3
  Group Top_Group Efficiency
  <chr>     <int>      <dbl>
1 A             1      0.465
2 B             2      0.652
3 C             0      0.755

R相关问答推荐

过滤器数据.基于两列的帧行和R中的外部向量

整数成随机顺序与约束R?

derrr mutate case_when grepl不能在R中正确返回值

删除列表中存储的数据帧内和数据帧之间的重复行

将数据集中的值增加到当前包含的最大值

如何得到每四个元素向量R?

多个模拟序列间的一种预测回归关系

如何在R库GoogleDrive中完全删除预先授权的Google帐户?

如何在PackageStatus()中列出&q;不可用的包&q;?

基于R中的间隔扩展数据集行

如何在ggplot2中创建多个y轴(每个变量一个)

将数据集旋转到长格式,用于遵循特定名称模式的所有变量对

创建在文本字符串中发现两个不同关键字的实例的数据框

如何修改GT表中组名行的 colored颜色 ?

策略表单连接两个非常大的箭头数据集,而不会 destruct 内存使用

根据用户输入更改标记大小和 colored颜色 (R)

为什么在POSIXct-times的向量上循环会改变R中的类型?

按顺序将地块添加到列表

使用循环改进功能( struct 简单)

有没有一种方法可以在pivot_longer()中 Select 最后一列,而不需要命名或给出索引号?