0

我有一个 Dataset_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

和 Dataset_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。因此,我想将常规间隔 Dataset_2 与不太常规的 Dataset_1 进行对比。有没有办法(可能使用共同的日期戳)来绘制 Dataset_2 的所有时间步,但让 R 在 Dataset_2 的相应日期绘制 Dataset_1 的点?

谢谢你。

4

2 回答 2

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)
于 2012-10-05T15:31:49.923 回答
0

如果您试图在 x 坐标上获得日期和时间的简单 2d 图(可能在 y 上带有“值”),则必须首先将日期和时间表示为实数。

因此,您可以定义一个将日期和时间映射到实数的函数(例如 unix 时间,或者只是 Hour + 24 * Day + ...),并在 Dataset_1 中为 Hour 插入 0(例如通过执行 Dataset_1$Hour <- 0,假设您的数据在数据框中)。

于 2012-10-05T14:57:48.527 回答