r - R 中的 write.csv 将我的日期转换为 10 位整数

标签 r csv date export-to-csv date-conversion

在 Excel 中,我创建了一个 1000 行的 Year End Date 列,其中每个单元格的内容都是 12/31/2018。我将其格式化为 Excel 中的日期。我将这些全部放入 R 中,对其他列(而不是日期列)进行了一些数据操作,并使用 write.csv 导出了最终数据框。当我打开最终文件(在 Excel 或 Tableau 中)时,我的整个 Year End Date 列在每个单元格中都是 1546214400。

为什么会这样?我该如何解决?

谢谢!

最佳答案

每个软件程序都将日期(或日期时间)存储为数字,但会以人类熟悉的日期格式显示该数字。
当您将数据读入 R 时,您使用的任何函数都足够“聪明”,可以知道“12/31/2018”是日期“2018 年 12 月 31 日”,而不是字符串“1、2、/、3” ,……”全部粘贴在一起。 R 存储日期的一种方式是作为 POSIXct 对象。我们可以看到 R 将日期“12/31/2018”存储为 POSIXct 整数 1546214400:

as.integer(as.POSIXct(as.Date("2018/12/31")))
> 1546214400
使用 write.csv() 导出您的数据为了使 Excel 熟悉日期,您首先需要使用日期格式格式化 POSIXct 值 1546214400。因此,如果您的数据位于名为 mydf 的数据框中日期列名为 date , 做这个:
mydf$date <- format(mydf$date, "%m/%d/%Y")
write.csv(mydf, file="path/to/file.csv")

关于r - R 中的 write.csv 将我的日期转换为 10 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51599365/

相关文章:

csv - Tableau 未将我的 csv 数据源转换为表

javascript - 如何在 typescript 中获取 Date.timeIntervalSinceReferenceDate?

Swift - nextDate() 按一年中的某一天搜索

R 模型摘要 latex 输出 - 删除\num{} 标签

r - 如何在 rmarkdown 中打印 git 历史记录?

mysql - 使用 phpMyAdmin 从 mySQL 自动导出 CSV

python - Tkinter - 输入框 - 日期格式

r - 如何使用基数 R 创建堆叠直方图?

r - "Permission denied"播放WAV文件时

c# - CSV 下载为 HTM