如何合并两个没有重复字段的数据框

时间:2019-04-04 14:23:15

标签: r merge

我正在尝试合并到名为Date的通用列设置的数据。

这是我的2个数据帧:

> head(cpu)
       Metric_Name                Date MAXVAL
38821 HostCPUUsage 2019-01-03 14:00:00     21
38822 HostCPUUsage 2019-01-03 15:00:00     23
38823 HostCPUUsage 2019-01-03 16:00:00     22
38824 HostCPUUsage 2019-01-03 17:00:00     19
38825 HostCPUUsage 2019-01-03 18:00:00     16
38826 HostCPUUsage 2019-01-03 19:00:00     15
> head(work)
      Metric_Name1                Date  Val
34506 Transactions 2019-01-03 14:00:00 2754
34507 Transactions 2019-01-03 15:00:00 2594
34508 Transactions 2019-01-03 16:00:00 2252
34509 Transactions 2019-01-03 17:00:00 3363
34510 Transactions 2019-01-03 18:00:00 1368
34511 Transactions 2019-01-03 19:00:00 1282

当我这样做时:

合并(cpu,工作,by = c(“日期”)

我得到多个Date字段。我需要Work和cpu的唯一日期字段:

> head(ddd)
                 Date Metric_Name1  Val  Metric_Name MAXVAL
1 2019-01-03 14:00:00 Transactions 2754 HostCPUUsage     21
2 2019-01-03 14:00:00 Transactions 2754 HostCPUUsage     18
3 2019-01-03 14:00:00 Transactions 1994 HostCPUUsage     21
4 2019-01-03 14:00:00 Transactions 1994 HostCPUUsage     18
5 2019-01-03 15:00:00 Transactions 3316 HostCPUUsage     22
6 2019-01-03 15:00:00 Transactions 3316 HostCPUUsage     23

应该是这样的:

> head(ddd)
                 Date Metric_Name1  Val  Metric_Name MAXVAL
1 2019-01-03 14:00:00 Transactions 2754 HostCPUUsage     21
6 2019-01-03 15:00:00 Transactions 3316 HostCPUUsage     23

1 个答案:

答案 0 :(得分:0)

您需要的是inner_join软件包中的dplyr函数:

您可以按以下方式使用它:

library(dplyr)
inner_join(cpu, work, by = "Date")

由于您提供的数据中没有出现1994的值,因此无法理解使用merge所提供的输出。