【发布时间】:2021-12-13 02:20:41
【问题描述】:
我正在使用来自readr 包的read_csv 使用R 读取数据。我有精确到十分之一秒的时间值,格式如下:2018-12-30T21:25:32.200,直到T 的所有内容都是日期,时间之后的所有内容都是 HH:MM:SS:fraction-of-秒格式。
但是,当使用read_csv 将其分配给变量时,打印时会重新格式化并截断为2018-12-30 21:25:32 UTC。我不确定 UTC 来自哪里,或者我的几分之一秒要去哪里。当我使用 write_csv 将此数据写回 csv 时,结果如下:2018-12-30T21:25:32Z。如何防止我的数据被切断?一秒钟的数据对我的项目至关重要。
【问题讨论】:
-
您尚未向我们展示您是如何指定输入格式的。如果您使用
format="%Y-%m-%dT%H:%M:%OS"进行输入转换,则应存储小数秒,但不显示。您可以使用格式“%Y-%m-%d %H:%M:%OS3”进行输出来显示它们。 -
通过
dput查看您的价值观。这将使您避免假设打印到控制台输出已完成的常见错误。 R时间也是UTC的商店。您需要研究帮助页面?DateTimeClasses,并且您需要提供一个完整的示例,因为说“将此数据写回 csv”没有代码来赋予它特异性。 -
来自
?write_csv:"POSIXct 的格式为 ISO8601,带有 UTC 时区_注意:本地或非 UTC 时区中的 'POSIXct' 对象将在写入之前转换为 UTC 时间。_" 。我不是ISO8601 的专家,但它没有强制 次秒;虽然我与您一样对静默截断感到沮丧,但如果您需要控制输出中的亚秒级分辨率,我建议您自己将其转换为字符串。
标签: r dataframe csv decimal truncate