我想在R中合併兩個數據幀。我想將df2添加到df,以便保持df的長度,即刪除任何不匹配的行。我需要每個人的最小負整數始終與「月1」匹配,第二小的整數與月2匹配,第三小匹配到第3個月,依此類推。合併兩個數據幀R
DF
names variable
1 jane -4
2 jane -3
3 jane -2
4 john -5
5 john -4
6 john -3
7 john -2
8 john -1
9 john 1
10 john 2
11 mary -3
12 mary -2
13 mary -1
14 mary 1
15 mary 2
16 mary 3
17 mary 4
18 tom -6
19 tom -5
20 tom -4
21 tom -3
22 tom -2
23 tom -1
24 tom 1
df2
noms months
1 jane month1
2 jane month2
3 jane month3
4 jane month4
5 jane month5
6 jane month6
7 jane month7
8 jane month8
9 jane month9
10 jane month10
11 john month1
12 john month2
13 john month3
14 john month4
15 john month5
16 john month6
17 john month7
18 john month8
19 john month9
20 john month10
21 mary month1
22 mary month2
23 mary month3
24 mary month4
25 mary month5
26 mary month6
27 mary month7
28 mary month8
29 mary month9
30 mary month10
31 tom month1
32 tom month2
33 tom month3
34 tom month4
35 tom month5
36 tom month6
37 tom month7
38 tom month8
39 tom month9
40 tom month10
所需的輸出
names variable months
1 jane -4 month1
2 jane -3 month2
3 jane -2 month3
4 john -5 month1
5 john -4 month2
6 john -3 month3
7 john -2 month4
8 john -1 month5
9 john 1 month6
10 john 2 month7
11 mary -3 month1
12 mary -2 month2
13 mary -1 month3
14 mary 1 month4
15 mary 2 month5
16 mary 3 month6
17 mary 4 month7
18 tom -6 month1
19 tom -5 month2
20 tom -4 month3
21 tom -3 month4
22 tom -2 month5
23 tom -1 month6
24 tom 1 month7
這似乎是它應該是一個簡單的合併,而是代碼是不是爲我工作。這是我曾嘗試
final <- merge(df, df2, by.x = "names", by.y = "noms", sort=F,all.x=T,all.y=F)
也試過這個
x<-df2$names %in% df$noms
y<-cbind(df2, x)
matches<-y[y$x!=FALSE,]
我敢肯定,這是一個根本性的問題,但我的簡單合併的代碼不會按預期運行。預先感謝您的任何幫助。
謝謝@Sven海恩斯坦。這段代碼工作得很好。 – user2363642