我有一个 .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/