使用dplyr包合并两个R数据框并填充指定列值的实现问题
实现代码(基于dplyr)
首先加载依赖包:
library(dplyr)
完整处理逻辑:
# 提取original2中存储的data1、data2值 data_fill <- original2 %>% filter(!is.na(data)) %>% pull(data) # 处理第一个数据集 processed_original1 <- original_1 %>% # 移除不需要的type列 select(-type) %>% # 补充公共字段并填充对应值 mutate( data = NA_character_, data_1 = "Non_changing_data", data_2 = "Non_changing_data", # 给指定行填充data值 data = case_when( id == 9 ~ data_fill[1], id == 11 ~ data_fill[2], TRUE ~ data ) ) # 处理第二个数据集 processed_original2 <- original2 %>% # 统一列名和第一个数据集对齐 rename( id = id1, type = type1, city = city1, state = state1, zip = zip1 ) %>% # 过滤掉无id的无效行 filter(!is.na(id)) %>% # 移除不需要的type列 select(-type) # 合并两个数据集并输出最终结果 final_df <- bind_rows(processed_original1, processed_original2) %>% arrange(id) %>% # 选择最终需要输出的列 select(id, city, state, data, data_1, data_2)
运行print(final_df)即可得到你需要的目标数据集。
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

