合并数据集后出现两个year列,如何保留单个列用于线性回归?
解决数据集合并后重复year列的问题
核心问题原因
你之前用列索引(by=1、by=c(1,2))指定合并键,若第一/前两列不是year,两个数据集的year列就会被单独保留,导致重复。正确做法是直接指定year作为合并键。
解决方案
方法1:Base R的merge函数
直接指定by="year",合并后自动保留唯一的year列:
# 仅按year合并 fichierfinal <- merge(idelong, euexit, by = "year") # 如果两个数据集的year列名不同(比如一个叫year,一个叫year_x) fichierfinal <- merge(idelong, euexit, by.x = "year", by.y = "year_x")
方法2:dplyr的join函数(tidyverse风格)
使用right_join时明确指定by="year",避免按列索引匹配错误:
library(dplyr) # 按year右连接,保留唯一year列 datamerge <- idelong %>% right_join(euexit, by = "year") # 列名不同时的写法 datamerge <- idelong %>% right_join(euexit, by = c("year" = "year_x"))
补救方案:如果已经合并出重复列(如year.x和year.y)
如果已经得到带重复year列的数据集,可以直接清理:
# 保留year.x并重命名为year,删除year.y datamerge <- datamerge %>% select(-year.y) %>% rename(year = year.x)
内容的提问来源于stack exchange,提问作者euroscepticism
相关产品推荐
相关产品推荐

