Mis*_*isc 4 csv r date date-conversion export-to-csv
在 Excel 中,我创建了一个包含 1000 行的“年结束日期”列,其中每个单元格的内容都是 2018 年 12 月 31 日。我在 Excel 中将其格式化为日期。我将这一切拉入 R,对其他列(而不是日期列)进行一些数据操作,并使用 write.csv 导出最终数据帧。当我打开最终文件(在 Excel 或 Tableau 中)时,每个单元格中的整个“年结束日期”列都是 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
Run Code Online (Sandbox Code Playgroud)
write.csv()要以Excel 熟悉的方式导出数据,您首先需要使用日期格式设置 POSIXct 值 1546214400 的格式。因此,如果您的数据位于名为 的数据框中,mydf并且日期列名为 name date,请执行以下操作:
mydf$date <- format(mydf$date, "%m/%d/%Y")
write.csv(mydf, file="path/to/file.csv")
Run Code Online (Sandbox Code Playgroud)