在r中的同一图上绘制具有不同日期的2个数据集

时间:2012-10-05 14:44:38

标签: r datetime

我有一个数据集_1,几个月内只有一些值,例如

Day Month   Year    Value
10  5   2003    12
17  5   2003    46
1   6   2003    23
16  6   2003    43
16  10  2003    23
26  10  2003    12

和数据集_2在同一时间段内具有常规的1小时值,例如

Day Month   Year    Hour Value
10  5       2003    0:00 13
10  5       2003    1:00 12
(...)
26  10      2003    21:00 12
26  10      2003    22:00 12

Dataset_1用于评估Dataset_2。因此,我想将常规间隔数据集_2映射到不那么常规的数据集_1。有没有一种方法,可能是使用共同的日期标记来绘制数据集_2的所有时间步长,但是让R在数据集_2的相应日期绘制数据集_1的点?

谢谢。

2 个答案:

答案 0 :(得分:2)

您唯一需要做的就是将日期和时间声明为日期和时间对象:

Dataset_1$timestamp <- strptime(paste(Dataset_1$Day, Dataset_1$Month, 
                                Dataset_1$Year, sep="-"), format="%d-%m-%Y")
Dataset_2$timestamp <- strptime(paste(Dataset_2$Hour, Dataset_2$Day, 
                                Dataset_2$Month, Dataset_2$Year, sep="-"), 
                                format="%H:%M-%d-%m-%Y")

然后,您可以正常绘制数据而不采取任何特定的预防措施,因为plot会识别它们是日期和时间对象。

plot(Dataset_1$timestamp, Dataset_1$Value)
lines(Dataset_2$timestamp, Dataset_2$Value)

答案 1 :(得分:0)

如果你想在x坐标上得到一个带日期和时间的简单2d图(可能是y上的“值”),你必须先将日期和时间表示为实数。

所以你可以定义一个映射日期和时间的函数。时间到一个实数(例如unix时间,或者只是一小时+ 24 * Day + ...),并在数据集_1中插入0表示小时(例如,通过执行Dataset_1 $ Hour&lt; - 0,假设您的数据在数据中帧)。