【发布时间】:2021-02-05 07:14:06
【问题描述】:
我对 R 中 dplyr 包中的连接有一个小问题。我有 2 个(大)数据框,我想加入。它们有多个共同的列,但一个就足以加入它们。现在我做这样的事情:
tab1 <- data.frame(id= c("a", "b", "c", "d"),
name = c("Mike", "Anna", "John", "Edward"),
score = c(10, 20, 30, 20)
tab2 <- data.frame(id= c("a", "b", "c", "d"),
name = c("Mike", "Anna", "John", "Edward"),
color = c("red", "blue", "blue", "orange")
dplyr::left_join(x, y)
这个解决方案没问题,但是您可以看到连接使用id 和name 作为键,即使我们不需要两者。我担心的是,由于我使用更大的数据框并且我必须通过多次迭代来做到这一点,所以使用所有同名列会花费无用的时间。
我当然可以指定by = id,但是left_join 将保留name.x 和name.y。
所以我有两个问题:
- 使用多个键(例如 20 个键)的连接是否比使用一个键的连接花费更多时间?
- 如果答案是肯定的,是否有一种简单的方法来指定一个键并从一个表中删除其他重复的列?
我希望我的问题很清楚,请不要犹豫,要求精确,非常感谢!
【问题讨论】: