我正在尝试合并到名为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
答案 0 :(得分:0)
您需要的是inner_join
软件包中的dplyr
函数:
您可以按以下方式使用它:
library(dplyr)
inner_join(cpu, work, by = "Date")
由于您提供的数据中没有出现1994的值,因此无法理解使用merge
所提供的输出。