rbind 两个具有不同列名的不同数据框

San*_*ana 0 r rbind

我想绑定两个具有不同列名的不同数据框

DF1 有 4 列

Prec_CAN_45 Prec_CAN_85
2015年 0.5 0.65
2100 0.6 0.75

DF2 有 3 列

Prec_CAN_45
1998年 0.3
2014年 0.4

我想创建 DF3,其中 DF2 粘贴在两列 (c3、c4) 的 DF1 行上方

Prec_CAN_45 Prec_CAN_85
1998年 0.3 0.3
2014年 0.4 0.4
2015年 0.5 0.65
2100 0.6 0.75

mfg*_*3z0 5

最简单的方法是简单地复制该列Prec_CAN_45并将df2其重命名为Prec_CAN_85。然后您可以使用rbind合并两个数据表。

这是一个简单的dplyr解决方案:

library(dplyr)

df2 <- df2 %>% dplyr::mutate(Prec_CAN_85 = Prec_CAN_45)

df3 <- rbind(df2, df1)

df3
#>    Year Month Prec_CAN_45 Prec_CAN_85
#>   <dbl> <chr>       <dbl>       <dbl>
#> 1  1998 Jan           0.3        0.3 
#> 2  2014 Jan           0.4        0.4 
#> 3  2015 Jan           0.5        0.65
#> 4  2100 Jan           0.6        0.75
Run Code Online (Sandbox Code Playgroud)

同样,基本R解决方案可能如下所示:

df2$Prec_CAN_85 <- df2$Prec_CAN_45

df3 <- rbind(df2, df1)

df3
#>    Year Month Prec_CAN_45 Prec_CAN_85
#>   <dbl> <chr>       <dbl>       <dbl>
#> 1  1998 Jan           0.3        0.3 
#> 2  2014 Jan           0.4        0.4 
#> 3  2015 Jan           0.5        0.65
#> 4  2100 Jan           0.6        0.75
Run Code Online (Sandbox Code Playgroud)

  • 您也可以在线执行此操作,而无需先更改 DF2,例如: `DF2 %&gt;% mutate(Prec_CAN_85 = Prec_CAN_45) %&gt;% bind_rows(DF1)` 或 `rbind(DF1, cbind(DF2, Prec_CAN_85=DF2$) Prec_CAN_45))` (2认同)