r - 如何防止 write.csv 将 POSIXct、日期和时间类更改回字符/因子?

标签 r date time posixct write.table

我有一个 .csv 文件,其中每个字段用于日期时间、日期和时间。
最初它们都是字符字段,我已经相应地转换了它们。
在我的代码结束时,如果我这样做:

str(data)

我会得到
datetime: POSIXct
date: Date
time: Class 'times'  atomic [1:2820392] (....) attr(*, "format")= chr "h:m:s"

现在,我对此非常满意,我想创建一个 .csv 文件,所以这就是我所拥有的:
write.csv(data, file = "data.csv", row.names = FALSE)

我也试过
write.table(data, "data.csv", sep = ",", row.names = FALSE)

我得到了相同的结果,这就是在编写新的 .csv 时我所有的转换都丢失了:一切都恢复为一个角色。

我怀疑我在 write 函数中遗漏了一些参数,但我整个下午都在搜索,但找不到什么。有人可以帮忙吗?

最佳答案

如果你想保留所有的时间信息以便再次读取,这个秘籍应该有效:

dat <- data.frame(time=as.POSIXlt("2013-04-25 09:00 BST"), quantity=1)
dat2 <- dat
dat2$time <- format(dat2$time, usetz=TRUE)
write.csv(dat2, "time.csv", row.names=FALSE)

它提供了以下 CSV 文件:
"time","quantity"
"2013-04-25 09:00:00 BST",1

其中明确显示时区信息;如果您申请 write.csv原版dat ,格式丢失。

关于r - 如何防止 write.csv 将 POSIXct、日期和时间类更改回字符/因子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295571/

相关文章:

在 R 中使用 "relational"数据帧重命名列

php - 在 Mysql 中选择日期返回错误的数据

java - 如何检查字符串是否为日期

php - 选择日期之前

java - 两个 java.sql.Time 对象之间的差异(以分钟为单位)

r - 使用 sf 对象的自定义几何图形扩展 ggplot2

r - 如何为重复值创建序列列?

R:具有 N 个特征的线性回归

javascript - HTML 中的 JS 时间显示单位数分钟

mysql - 如何在MySQL中求和TIME