r - 按平均值组合 R 中的多个数据帧(混合数据类型)
问题描述
我已经对此进行了一些研究(here和here),但我还没有找到我真正想要实现的目标。我找到的最接近我正在寻找的内容是here,但代码似乎无法正常工作或无法满足我的要求。此外,我发现它rbindlist
已被弃用bind_rows
,但我无法使用它bind_rows
来实现我想要的。
我有一个包含 30 个数据框的列表,每个数据框具有相同的行数和列数,以及相同的列数据类型(尽管每列可以是连续的和分类的)。我想将它们合并到具有相同行数和列数的单个数据框中,但每个单元格作为数据框列表中相应 30 个单元格的平均值/中值/多数投票,用于连续、整数和分类列,分别。这是一个包含三个数据框的示例:
df 1:
A B C
2.3 5 3
12 3 1
0.4 13 2
df_2:
A B C
4.3 23 1
1 7 2
0.4 10 2
df_3:
A B C
1.3 3 3
2.2 4 2
12.4 10 1
结果数据框将类似于:
df_result:
A B C
2.63 5 3
5.06 4 2
4.4 10 2
任何有关组合每种数据类型的更合适方式的指导也将受到高度赞赏。
解决方案
在你的桌子上放一个 ROW ID
df_1 <- read_table("A B C
2.3 5 3
12 3 1
0.4 13 2") %>%
rowid_to_column("ROW")
df_2 <- read_table("A B C
4.3 23 1
1 7 2
0.4 10 2") %>%
rowid_to_column("ROW")
df_3 <- read_table("A B C
1.3 3 3
2.2 4 2
12.4 10 1") %>%
rowid_to_column("ROW")
将它们组合成一个整体
ensamb <- bind_rows(df_1, df_2, df_3)
group_by
行,然后用自己的方法总结每一个
ensamb %>%
group_by(ROW) %>%
summarise(A = mean(A), B = median(B),
C = C[which.max(C)])
# A tibble: 3 x 4
ROW A B C
<int> <dbl> <dbl> <dbl>
1 1 2.63 5 3
2 2 5.07 4 2
3 3 4.4 10 2
推荐阅读
- cordova - 在设备上运行时出现离子运行时错误
- c++ - 使用 Dijkstra 在提升图中查找最短路径
- macos - MacOS 和 JSVC:SCARD_E_NO_SERVICE:智能卡资源管理器未运行
- android-studio-3.0 - 约束:约束布局:1.1.0 不显示动态添加的自定义视图
- typescript - Visual Studio 2017 Asp.Net Core 2.1 TypeScript Vue 设置 - 不是 SPA
- c# - 为什么霍尼韦尔 POS4NET 会为两个不同的扫描仪触发相同的事件?
- unity3d - 使用 Quaternion.Lerp 平滑旋转
- javascript - 如何从多个 ID 中获取单个 ID
- php - 如何将 YouTube 链接嵌入 PHP
- db2 - 使用子选择更新查询