R中2个数据帧中的数据匹配?

时间:2017-11-06 13:55:00

标签: r dataframe dplyr match

我有2个数据框,一个有时间戳和温度,另一个有时间戳。如果时间戳相同,我想将温度数据从第一个数据集复制到第二个数据集!

我已经检查过thisthis次。但它们与我的问题不同。

有人可以帮我这个吗? 以下是我的数据示例:

data1
               date    t
1  19.11.2016 06:20 22.1
2  19.11.2016 06:30 22.4
3  19.11.2016 06:40 22.6
4  19.11.2016 06:50 22.8
5  19.11.2016 07:00 23.2
6  19.11.2016 07:10 23.3
7  19.11.2016 07:20 23.7
8  19.11.2016 07:30 23.9
9  19.11.2016 07:40 24.0
10 19.11.2016 07:50 24.4
11 19.11.2016 08:00 24.5
12 19.11.2016 08:10 24.7
13 19.11.2016 08:20 25.0
14 19.11.2016 08:30 25.3
15 19.11.2016 08:40 25.4
16 19.11.2016 08:50 25.7
17 19.11.2016 09:00 25.8
18 19.11.2016 09:10 25.9
19 19.11.2016 09:20 25.9
20 19.11.2016 09:30 26.1
21 19.11.2016 09:40 26.3
22 19.11.2016 09:50 26.4
23 19.11.2016 10:00 26.6
24 19.11.2016 10:10 26.5
25 19.11.2016 10:20 26.5
26 19.11.2016 10:30   NA
27 19.11.2016 10:40   NA
28 21.11.2016 06:30   NA
29 21.11.2016 06:40   NA
30 21.11.2016 06:50   NA
31 21.11.2016 07:00   NA
32 21.11.2016 07:10   NA
33 21.11.2016 07:20 20.9
34 21.11.2016 07:30 21.0
35 21.11.2016 07:40 21.0
36 21.11.2016 07:50 21.1
37 21.11.2016 08:00 21.2
38 21.11.2016 08:10 21.3
39 21.11.2016 08:20 21.5
40 21.11.2016 08:30 21.8
41 21.11.2016 08:40 22.1
42 21.11.2016 08:50 22.2
43 21.11.2016 09:00 22.6
44 21.11.2016 09:10 22.9
45 21.11.2016 09:20 22.7
46 21.11.2016 09:30 22.6
47 21.11.2016 09:40 22.6
48 21.11.2016 09:50 22.7
49 21.11.2016 10:00 22.8
50 21.11.2016 10:10 23.1
51 21.11.2016 10:20 23.6

data2
               date
1  19.11.2016 06:20
2  19.11.2016 06:30
3  19.11.2016 06:40
4  19.11.2016 06:50
5  19.11.2016 07:00
6  19.11.2016 07:10
7  19.11.2016 07:20
8  19.11.2016 07:30
9  19.11.2016 07:40
10 19.11.2016 07:50
11 19.11.2016 08:00
12 19.11.2016 08:10
13 19.11.2016 08:20
14 19.11.2016 08:30
15 19.11.2016 08:40
16 19.11.2016 08:50
17 19.11.2016 09:00
18 19.11.2016 09:10
19 19.11.2016 09:20
20 19.11.2016 09:30
21 19.11.2016 09:40
22 19.11.2016 09:50
23 19.11.2016 10:00
24 19.11.2016 10:10
25 19.11.2016 10:20
26 21.11.2016 07:20
27 21.11.2016 07:30
28 21.11.2016 07:40
29 21.11.2016 07:50
30 21.11.2016 08:00
31 21.11.2016 08:10
32 21.11.2016 08:20
33 21.11.2016 08:30
34 21.11.2016 08:40
35 21.11.2016 08:50
36 21.11.2016 09:00
37 21.11.2016 09:10
38 21.11.2016 09:20
39 21.11.2016 09:30
40 21.11.2016 09:40
41 21.11.2016 09:50
42 21.11.2016 10:00
43 21.11.2016 10:10
44 21.11.2016 10:20
45 21.11.2016 10:30
46 21.11.2016 10:40
47 21.11.2016 10:50
48 21.11.2016 11:00
49 21.11.2016 11:10
50 21.11.2016 11:20
51 21.11.2016 11:30

2 个答案:

答案 0 :(得分:1)

鉴于此问题已标记为dplyr

library(dplyr)
right_join(data1, data2, by="date")

这将加入您的数据集。我建议了一个右连接,其中包含data2中的所有行,即使data1中没有匹配 - https://rpubs.com/NateByers/Merging

编辑:更新了连接中的列名

答案 1 :(得分:1)

使用基础R merge的简单解决方案:

merge(data2, data1, all.x = TRUE)