我有一个CSV文件,看起来像这样(请注意,它使用;
作为列分隔符和,
作为小数标记):
Values;Date.Col
911;20/12/2013 04:05:01 p.m.
124,82;23/12/2013 09:43:03 a.m.
287;23/12/2013 09:44:15 a.m.
37,3;23/12/2013 09:45:26 a.m.
448,4;23/12/2013 09:46:50 a.m.
432,5;23/12/2013 09:48:31 a.m.
无论如何,我对绘制Values
的行为随时间变化感兴趣,因此我执行以下命令("tmp2.csv"是文件名):
df <- read.table("tmp2.csv", header = T, dec = ',', sep = ';')
df$Date.Col <- strptime(df$Date.Col, "%d/%m/%Y %I:%M:%S %p")
str(df)
plot(Values ~ Date.Col, df, type = 'l')
一切似乎都很顺利,直到最后一个命令出现以下错误信息:
Error in (function (formula, data = NULL, subset = NULL, na.action = na.fail, :
invalid type (list) for variable 'Date.Col'
在过去,我将数值变量绘制为日期类向量,因此我认为R可以处理这种情况,但也许问题在于小时、分钟和秒的存在。
在列表和SO中查找类似的错误并没有提供任何有用的见解,是否有人知道这里的确切问题,或者我该怎么做才能解决呢?
提前致谢。
strptime
返回的是POSIXlt
,通常不是你想要的。也许你想使用as.POSIXct()
? - joranp.m.
中的点。似乎既不是stringsAsFactors
也不是时区的问题。谢谢大家,我会发布@joran的答案和实际使用的代码。 - Juan