通过R中的特定列名称合并两个相似的数据集时,如何删除其他重复的列名称

时间:2018-07-20 03:14:29

标签: r

有两个大型数据集,每个数据集都有50多个变量,它们共享许多重复变量,例如6个重复变量:ID1, ID2, ID3, ID4, ID5houseID。通过“ houseID”将两个数据集合并在一起时, mergeAll <- merge(dataset1, dataset2, by = "houseID"), 其他重复变量将更改名称,例如ID1中的dataset1变成ID1.x,而ID1中的dataset2变成ID1.y;但是,它们是相同的,我们只想保留其中之一,最好不要更改其名称。最后,我们要创建一个主数据集,该数据集没有重复的变量,但所有信息都位于dataset1dataset2中。 该怎么做?

1 个答案:

答案 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