gpt4 book ai didi

r - 使用 XLConnect (R) 错误将日期数据导出到 .xlsx 文件?

转载 作者:行者123 更新时间:2023-12-04 21:39:02 26 4
gpt4 key购买 nike

更新 2:产生问题的示例。

示例 Excel 文件:是一个空白 .xlsx,工作表名称为 Sheet1。
示例 R 代码:

library(chron)
library(rJava)
library(xlsxjars)
library(xlsx)
library(XLConnect)

setwd("C:/")

Day<-as.Date('2014-01-01')
Data<-as.data.frame(rep(Day,35))

name<-paste("Example.xls")
Master<-loadWorkbook(name, create=TRUE)
writeWorksheet(object=Master, data=Data,sheet="Sheet1", startRow=2, startCol=1,header=FALSE)
saveWorkbook(Master)

更新:
“2013 年 12 月 31 日”的数据框中的数值是 16070。最后日期是“2014 年 3 月 25 日”,值为 16154。

这是意料之中的。但是,当我查看写入工作表的数字时,“12/31/2013”​​是 41638.75,应该是 41639。“3/25/2014”是 41722.79,应该是 41723。

我是否遗漏了有关 R 数据框如何解释整个日期的信息? Java 例程是否减去整数的某个分数?

原来的:
我正在尝试将许多数据框导出到 .xlsx 文件的不同工作表中。我的数据框在数据框中仅包含日期数据信息。 (即 “2013-12-31”)

我使用以下代码将其导出到我的 excel 文件中。
Temp<-data
name<-paste("Master.xlsx")
Master<-loadWorkbook(name, create=TRUE)
writeWorksheet(object=Master,data=Temp,sheet="Ft. Wayne",startRow = 2, startCol = 1, header=FALSE)
saveWorkbook(Master)

当我打开 .xlsx 文件时,日期如下:

2013 年 12 月 30 日 18:00:00

如何使用格式导出

“2013 年 12 月 31 日”

并维护格式化.xlsx文件的“日期”单元格编号?

仅供引用:如果我更改数据框中的格式,它将导出为“一般”值。

最佳答案

这种行为的原因是类 Date 的对象。在内部转换为 POSIXct并假定代表 UTC 午夜的日期。美国 CST 是 UTC - 6 小时,所以这就是您遇到偏移的原因。我建议你使用 POSIXct直接地。如果要在 Excel 中显示没有时间分量的日期,可以使用单元格样式和数据格式。

例子:

library(XLConnect)

data = data.frame(Day = rep(as.POSIXct('2014-01-01'), 35))

wb = loadWorkbook("example.xls", create = TRUE)

setStyleAction(wb, XLC$"STYLE_ACTION.DATATYPE")
cs = createCellStyle(wb, name = "myDateStyle")
setDataFormat(cs, format = "yyyy-mm-dd")
setCellStyleForType(wb, style = cs, type = XLC$"DATA_TYPE.DATETIME")

createSheet(wb, name = "test")
writeWorksheet(wb, data = data, sheet = "test", startRow = 2, startCol = 1, header = FALSE)

saveWorkbook(wb)

关于r - 使用 XLConnect (R) 错误将日期数据导出到 .xlsx 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22697989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com