左联接而不重复相同的列

时间:2019-10-04 10:24:12

标签: r

我有两个类似于以下框架的data.frames:

tmp1<-data.frame(col1=1:26,col2=LETTERS)
tmp2<-data.frame(col1=26:51,col3=LETTERS)

我想用col2col3合并两个data.frame,而不必复制col1,也不要更改tmp1

left_join(tmp1,tmp2,by=c("col2"="col3"))

以上代码有效,但是它重复了col1

2 个答案:

答案 0 :(得分:4)

喜欢吗?

> merge(tmp1,tmp2[,-1,drop=F],by.x="col2",by.y="col3")
   col2 col1
1     A    1
2     B    2
3     C    3
4     D    4
5     E    5
6     F    6
7     G    7
8     H    8
9     I    9
10    J   10
11    K   11
12    L   12
13    M   13
14    N   14
15    O   15
16    P   16
17    Q   17
18    R   18
19    S   19
20    T   20
21    U   21
22    V   22
23    W   23
24    X   24
25    Y   25
26    Z   26

答案 1 :(得分:0)

或与dplyr

library(dplyr)
left_join(tmp1,tmp2 %>% select(col3),by=c("col2"="col3"))

#   col1 col2
#1     1    A
#2     2    B
#3     3    C
#4     4    D
#5     5    E
#6     6    F
#7     7    G
#8     8    H
#...