【问题标题】:Write dates to Excel properly from R从 R 将日期正确写入 Excel
【发布时间】:2016-08-15 18:13:13
【问题描述】:

当我将数据框写入文件时,它会将所有列视为字符,包括日期列。

options(xlsx.date.format = "yyyy-mm-dd")
write.xlsx(data, excel_filename, sheetName = "Data")

如何将数据写入 xlsx 文件,以便在使用此列时默认将其视为日期?

解决方案:将列的类转为字符。使用as.Date 转换后,所有内容都已正确保存。

【问题讨论】:

  • @SergeyIvanov : write.xlsx(data.frame(seq(Sys.Date(), Sys.Date() + 2, "days")), "myfile.xlsx", sheetName = "Data", row.names = FALSE, col.names = FALSE)
  • @Sathish 的评论对我有用,插入了一个 Excel 视为“日期”格式的字段。你确定data 中的值实际上是POSIX* 而不是character
  • 检查 R 数据框中的日期列是否包含 class = "Date"。例如,class(Sys.Date())

标签: r


【解决方案1】:

xlsx 的参考手册通过示例非常清楚地解释了它。以下是稍作修改的来源:https://cran.r-project.org/web/packages/xlsx/xlsx.pdf 我认为,您采用的是相同的方法。使用工作簿保存日期的格式。

wb <- createWorkbook(type="xlsx")
 sheet <- createSheet(wb, sheetName="addDataFrame1")
 data <- data.frame(date=seq(as.Date("1999-01-01"), by="1 year", length.out=10))
 addDataFrame(data, sheet, startRow = 1, startColumn=1)
 # to change the default date format use something like this
 options(xlsx.date.format="dd MMM, yyyy")
 # Don't forget to save the workbook ...
 saveWorkbook(wb, "Path/test.xlsx") # your path to the excel sheet

【讨论】:

    【解决方案2】:

    您可以尝试使用lubridatechron 库来完成此任务。但是,我认为您的问题不是来自 R,而是更多来自 excel 是如何阅读它的。在您的问题中,您展示的图像是您希望它的外观还是它当前的外观?无论如何,例如使用 chron 时,您可以说

     format.Date(dates, "%Y/%m/%d")
    

    【讨论】:

      猜你喜欢
      • 2015-05-08
      • 2017-10-01
      • 2015-04-03
      • 2017-08-31
      • 1970-01-01
      • 2016-05-04
      相关资源
      最近更新 更多