我有一个数据集_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的点?
谢谢。
答案 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,假设您的数据在数据中帧)。