【问题标题】:write.csv : Error in charToDate(x) : character string is not in a standard unambiguous formatwrite.csv:charToDate(x) 中的错误:字符串不是标准的明确格式
【发布时间】:2013-08-29 11:03:54
【问题描述】:

我正在尝试使用以下结构将data.table 写入磁盘:

“data.table”和“data.frame”类:408776 obs。 13 个变量: $日期:IDate,格式:“2013-02-01”“2013-02-01”“2013-02-01”“2013-02-01”... $小时:int 1 1 1 1 1 1 2 2 2 2 ... $时间:类'ITime'int [1:408776] 16 186 218 229 463 474 16 186 208 218 ... $bids_med : 数字 NA NA NA 2.1 2.1 4.6 NA 7.5 7.5 7.5 ... $bids_n:int NA NA NA 2 2 2 NA 4 4 4 ... $ asks_med : 数 NA NA NA 21.5 21.5 21.5 NA 21 21 21 ... $ asks_n:int NA NA NA 2 2 2 NA 5 5 5 ... $ bprice:num 5 4.2 4.2 4.2 5 5 9 9 9 10 ... $ 数量:int 19 10 10 10 5 5 25 25 50 20 ... $ aprice : 数字 16 16 21 21 21 21 19 19 19 19 ... $ 数量:int 25 6 50 50 50 50 50 50 50 50 ... $ lastprice: num 7 16 16 16 16 16 9 9 9 9 ... $ lastqty : int 31 19 6 6 6 6 25 25 25 25 ... - attr(*, "sorted")= chr "日期" "小时" "时间" - attr(*, ".internal.selfref")=

我收到以下错误:

> write.csv(“数据/probit.csv”,培训,row.names = FALSE) charToDate(x) 中的错误: 字符串不是标准的明确格式

复制:

结构(列表(日期 = 结构(c(15737L,15737L,15737L,15737L, 15737L, 15737L), class= c("IDate", "Date")), 小时 = c(1L, 1L, 1L, 1L, 1L, 1L), 时间 = 结构(c(16L, 186L, 218L, 229L, 463L, 474L), class= "ITime"), bids_med = c(NA, NA, NA, 2.1, 2.1, 4.6 ), bids_n = c(NA, NA, NA, 2L, 2L, 2L), asks_med = c(NA, NA, NA, 21.5, 21.5, 21.5), asks_n = c(NA, NA, NA, 2L, 2L, 2L), bprice = c(5, 4.2, 4.2, 4.2, 5, 5), bqty = c(19L, 10L, 10L, 10L, 5L, 5L), aprice = c(16, 16, 21, 21, 21, 21), aqty = c(25L, 6L, 50L, 50L, 50L, 50L), lastprice = c(7, 16, 16, 16, 16, 16), lastqty = c(31L, 19L, 6L, 6L, 6L, 6L)), .Names = c("日期", “小时”、“时间”、“bids_med”、“bids_n”、“asks_med”、“asks_n”、“bprice”、 "bqty", "aprice", "aqty", "lastprice", "lastqty"), sorted = c("date", "小时", "时间"), class= c("data.table", "data.frame"), row.names = c(NA, -6L))

我完全不知道该怎么处理它。有什么建议可能有帮助吗?谢谢。

【问题讨论】:

  • 一个(更容易)可重现的示例,例如您从 dput(head(DT)) 获得的示例,可能会更容易回答。
  • 谢谢,正在考虑如何重现它,但不知道dput!会记得的。
  • 否决了这个问题,因为答案显示,它的类型是:“请在我的代码中为我找到一个错误,这是我的代码:”。另外, 1. 读者通过阅读这个问答可以学到很少的东西(自我检查代码的重要性?); 2.题名有误导性;因此,我建议通过对它进行投票来隐藏这个帖子。
  • @DanielKrizian 另一方面,标题代表了他所看到的问题,其他人可能会以同样的方式误解这种情况(搜索这样的术语然后登陆这里,感谢标题)。 “线程”/问题也将出现在 write.csvError in charToDate(x) 的搜索中,这可以说是有用的。
  • @Frank,编辑(对标题)正是出于其他原因:纠正未来的误解。可以说,会有用户点击标题链接,登陆这里并浪费阅读,因为他们认为这个线程是关于 IDate、ITime 类的。

标签: r data.table


【解决方案1】:

您只是将write.csv 的参数打乱了。如果按位置传递,首先是 data.frame 或 data.table,然后是文件名。你也可以先写 file=:

write.csv(file="out.csv",training,row.names=FALSE)

write.csv(training,"out.csv",row.names=FALSE)

【讨论】:

  • 谢谢,愚蠢的我。但是错误消息确实对我没有帮助。 :-D
  • @tomaskrehlik 虽然错误信息并没有说太多,但一种有用的调试技术是消除。将代码迭代地剥离到最低限度,例如write.csv("data/probit.csv", data.table(a=1), row.names = FALSE) 将开始发出信号......
猜你喜欢
  • 2015-01-27
  • 1970-01-01
  • 2021-12-30
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2023-02-26
  • 2018-11-04
  • 2021-01-20
相关资源
最近更新 更多