R语言中如何为data.frame的指定列范围添加新行?
问题:将df2的行对应添加到df指定列并留空DATE列
原始数据
数据框df
df <- data.frame(DATE = c('07/01/2022', '08/01/2022'), `0` = c(4, 4), `1` = c(5, 3), `2` = c(5,3), check.names = FALSE)
对应表格:
| Date | 0 | 1 | 2 |
|---|---|---|---|
| 07/01/2022 | 4 | 5 | 5 |
| 08/01/2022 | 4 | 3 | 3 |
数据框df2
df2 <- data.frame(V1 = 2, V2 = 4, V3 = 5)
对应表格:
| V1 | V2 | V3 |
|---|---|---|
| 2 | 4 | 5 |
需求说明
将df2中V1、V2、V3的值对应添加到df的0、1、2列,作为df的最后一行,同时DATE列留空,预期输出:
| Date | 0 | 1 | 2 |
|---|---|---|---|
| 07/01/2022 | 4 | 5 | 5 |
| 08/01/2022 | 4 | 3 | 3 |
| 2 | 4 | 5 |
解决方案
问题核心是两个数据框的列名不匹配,先调整df2的列名并补充DATE列,再合并即可。
方法1:使用dplyr包的bind_rows
library(dplyr) # 调整df2的列名并添加空的DATE列 df2_adjusted <- df2 %>% rename(`0` = V1, `1` = V2, `2` = V3) %>% mutate(DATE = "") # 合并数据框 final_result <- bind_rows(df, df2_adjusted)
方法2:使用基础R的rbind
# 重命名df2的列名与df对应列一致 colnames(df2) <- c("0", "1", "2") # 创建包含空DATE列的临时数据框 temp_data <- data.frame(DATE = "", df2, check.names = FALSE) # 合并数据框 final_result <- rbind(df, temp_data)
执行以上任意一种方法后,final_result即为符合预期的结果。
内容的提问来源于stack exchange,提问作者nwk123
相关产品推荐
相关产品推荐

