有两个大型数据集,每个数据集都有50多个变量,它们共享许多重复变量,例如6个重复变量:ID1, ID2, ID3, ID4, ID5
和houseID
。通过“ houseID
”将两个数据集合并在一起时,
mergeAll <- merge(dataset1, dataset2, by = "houseID")
,
其他重复变量将更改名称,例如ID1
中的dataset1
变成ID1.x
,而ID1
中的dataset2
变成ID1.y
;但是,它们是相同的,我们只想保留其中之一,最好不要更改其名称。最后,我们要创建一个主数据集,该数据集没有重复的变量,但所有信息都位于dataset1
和dataset2
中。
该怎么做?
答案 0 :(得分:0)
编辑:
您可以使用merge
,但只需从第二个数据集中删除相同名称的列。
# Preparing simulation
dataset1 <- as.data.frame(
matrix(
c(1:7, rnorm(7 * 40)), byrow = FALSE,
ncol = 41, dimnames = list(
NULL, c("house_ID", paste0("ID", 1:5), paste0("D", 1:35)
)
)
)
)
dataset2 <- as.data.frame(
matrix(
c(1:10, rnorm(10 * 50)), byrow = FALSE,
ncol = 51, dimnames = list(
NULL, c("house_ID", paste0("ID", 1:5), paste0("E", 1:45)
)
)
)
)
# Merging
excl_cols <- names(dataset2) %in% paste0("ID", 1:5)
res <- merge(dataset1, dataset2[, !excl_cols])
res