我有一个如下所示的 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 中寻找类似的错误没有产生任何有用的见解,有谁知道这里的问题到底是什么,或者我能做些什么来解决它?
提前致谢。
最佳答案
按照使用 as.POSIXct
的建议,我最终得到了这个
代码(请注意,我在 plot 命令中删除了第一行 df
,在
为了更好地说明情节如何正常工作):
df <- read.table("tmp2.csv", header = T, dec = ',', sep = ';')
df$Date.Col <- as.POSIXct(df$Date.Col, format = "%d/%m/%Y %I:%M:%S %p")
plot(Values ~ Date.Col, df[-1,], type = 'l')
谢谢大家。
关于r - 变量 X 的类型(列表)无效,其中 X 是日期类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27606380/