我有两个类似于以下框架的data.frames:
tmp1<-data.frame(col1=1:26,col2=LETTERS)
tmp2<-data.frame(col1=26:51,col3=LETTERS)
我想用col2
和col3
合并两个data.frame,而不必复制col1
,也不要更改tmp1
。
left_join(tmp1,tmp2,by=c("col2"="col3"))
以上代码有效,但是它重复了col1
。
答案 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
#...