如何在R中按多列合并多个数据框

问题描述 投票:0回答:1

我一直在尝试找出一种方法将我正在使用的 6 个数据框拼接在一起,这些数据框有大约 50 列我想要匹配在一起。

最终目标是将每个数据集中的所有行在其共享列名称下合并到一个包含我感兴趣的相关列的大型数据集中。每个数据集的行数略有不同,但所有感兴趣的列名称都会匹配。

想知道什么方法最好?我一直无法弄清楚如何通过多列合并 2 个以上的 dfs!

merge_data1 <- list(hos_2015_data, hos_2016_data, hos_2017_data, 
              hos_2018_data, hos_2019_data, hos_2020_data, hos_2021_data)
merged_result1 <- merge_data1 %>%
   reduce (full_join, by= "Facility.ID")
View (merged_result1)

这只与一列“Facility.ID”匹配,但我还有很多列我也想匹配!

r list merge tidyverse reduce
1个回答
0
投票

如果您有多个包含许多匹配列的数据框,我怀疑您想要

bind_rows
而不是联接。
bind_rows
将产生更长的数据帧,“堆叠”组件数据帧,而连接将产生更宽的数据帧。连接通常用于多个数据帧共有一个或多个“关键”列,但其他列通常对于每个数据帧是唯一的的情况。如果您有多年的数据,其中数据存储在匹配的列名称中,那么这听起来不像是联接。

library(dplyr)
storms_2015 <- subset(storms, year == 2015)
storms_2016 <- subset(storms, year == 2016)
storms_2017 <- subset(storms, year == 2017)

bind_rows(storms_2015, storms_2016, storms_2017)

结果

# A tibble: 1,535 × 13
   name   year month   day  hour   lat  long status            category  wind pressure tropicalstorm_force_diameter hurricane_force_diameter
   <chr> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <fct>                <dbl> <int>    <int>                        <int>                    <int>
 1 Ana    2015     5     6     6  26.8 -79.2 other low               NA    25     1016                            0                        0
 2 Ana    2015     5     6    12  28.2 -78.5 other low               NA    25     1015                            0                        0
 3 Ana    2015     5     6    18  29.7 -77.8 other low               NA    25     1014                            0                        0
 4 Ana    2015     5     7     0  30.8 -77.5 other low               NA    30     1012                            0                        0
 5 Ana    2015     5     7     6  30.7 -77.8 other low               NA    35     1010                          100                        0
 6 Ana    2015     5     7    12  30.6 -77.5 other low               NA    40     1008                          210                        0
 7 Ana    2015     5     7    18  31.2 -77.5 other low               NA    40     1005                          220                        0
 8 Ana    2015     5     8     0  31.4 -77.6 subtropical storm       NA    40     1003                          220                        0
 9 Ana    2015     5     8     6  31.5 -77.6 subtropical storm       NA    40     1002                          220                        0
10 Ana    2015     5     8    12  31.5 -77.5 subtropical storm       NA    40     1000                          210                        0
# ℹ 1,525 more rows
# ℹ Use `print(n = ...)` to see more rows
© www.soinside.com 2019 - 2024. All rights reserved.