R 使用 XLConnect 在 Excel 文件中使用 lubridate 包写入时间间隔
R writing time intervals using lubridate package in an Excel file using XLConnect
我需要评估 R 中的时间间隔,然后将间隔写在 excel sheet 中。为了评估时间间隔,我使用 lubridate 包,为了在 excel 文件中写入数据,我更喜欢 XLConnect 包。以下是第一部分的简化示例:
library(lubridate)
a <- now()
b <- a + hours(2)
i <- interval(a, b)
j <- as.period(i)
j
[1] "2H 0M 0S"
这正是我希望在 excel sheet 中看到的内容。以下位写入数据(在本例中为 j)
library(XLConnect)
wb <- loadWorkbook("example.xlsx", create = TRUE)
createSheet(wb, name = "time_interval")
writeWorksheet(wb, j, sheet = "time_interval")
saveWorkbook(wb)
但是,当您检查 excel sheet 时,您会看到 j 的值为 7200。
即 2*60*60 秒。这意味着它已转换为秒。这不是我想要的。
我更希望看到的是“2H 0M 0S”,它是结果 R returns 并且对于 reader.
更有意义
有办法实现吗?
如果您将该值转换为字符串,我想它会得到您想要的。
a <- now()
b <- a + hours(2)
i <- interval(a, b)
j <- as.period(i)
j的结构复杂:
str(j)
Formal class 'Period' [package "lubridate"] with 6 slots
..@ .Data : num 0
..@ year : int 0
..@ month : int 0
..@ day : int 0
..@ hour : int 2
..@ minute: int 0
可以通过转换成字符串来简化:
j <- as.character(j)
然后像您在上面的示例中所做的那样保存它。结果以文本形式存储在 excel 文件中。
我需要评估 R 中的时间间隔,然后将间隔写在 excel sheet 中。为了评估时间间隔,我使用 lubridate 包,为了在 excel 文件中写入数据,我更喜欢 XLConnect 包。以下是第一部分的简化示例:
library(lubridate)
a <- now()
b <- a + hours(2)
i <- interval(a, b)
j <- as.period(i)
j
[1] "2H 0M 0S"
这正是我希望在 excel sheet 中看到的内容。以下位写入数据(在本例中为 j)
library(XLConnect)
wb <- loadWorkbook("example.xlsx", create = TRUE)
createSheet(wb, name = "time_interval")
writeWorksheet(wb, j, sheet = "time_interval")
saveWorkbook(wb)
但是,当您检查 excel sheet 时,您会看到 j 的值为 7200。 即 2*60*60 秒。这意味着它已转换为秒。这不是我想要的。 我更希望看到的是“2H 0M 0S”,它是结果 R returns 并且对于 reader.
更有意义有办法实现吗?
如果您将该值转换为字符串,我想它会得到您想要的。
a <- now()
b <- a + hours(2)
i <- interval(a, b)
j <- as.period(i)
j的结构复杂:
str(j)
Formal class 'Period' [package "lubridate"] with 6 slots
..@ .Data : num 0
..@ year : int 0
..@ month : int 0
..@ day : int 0
..@ hour : int 2
..@ minute: int 0
可以通过转换成字符串来简化:
j <- as.character(j)
然后像您在上面的示例中所做的那样保存它。结果以文本形式存储在 excel 文件中。