我有一张表如下
hour reading date
22 197 6/20/13
23 231 6/20/13
0 25 6/21/13
1 210 6/21/13
2 17 6/21/13
对我来说,绘制这些数据的最佳方式是什么?
我应该将小时和日期列合并到一个日期时间列中吗?
答案 0 :(得分:4)
结构化类型几乎总是优于分析任务,因为它们将被其他命令本质地理解,例如var mdiClient = this.Controls.OfType<System.Windows.Forms.MdiClient>().First();
。
一个名为plot
的R包对于进行时间操作很有用,但是基数R足以完成手头的任务。
lubridate
然后我们使用函数dfs <- 'hour reading date
22 197 6/20/13
23 231 6/20/13
0 250 6/21/13
1 210 6/21/13
2 173 6/21/13
'
df <- read.table(text=dfs, header=T)
添加时间列。 strptime
采用格式字符串(请参阅strptime
获取信息)将日期解析为?strptime
,这是R的内部日期时间类之一。然后我们加上小时数(+运算符需要几秒钟,所以我们乘以3600):
POSIXlt
然后我们可以绘制出来并且轴的格式很好。
> df$time <- strptime(as.character(df$date), "%m/%d/%y") + 60 * 60 * df$hour
> df
hour reading date time
1 22 197 6/20/13 2013-06-20 22:00:00
2 23 231 6/20/13 2013-06-20 23:00:00
3 0 250 6/21/13 2013-06-21 00:00:00
4 1 210 6/21/13 2013-06-21 01:00:00
5 2 173 6/21/13 2013-06-21 02:00:00
答案 1 :(得分:0)
合并为一个日期时间将是一个不错的选择。
plot(x=1:length(df$date),y=df$reading, xaxt='n')
axis(side=1, at=1:length(df$date), label=paste(df$date,df$hour,sep="-"))