在 R 中导入时间序列时,如何保留 Excel 的日期格式?

How do I keep the date-format from Excel when importing a time series in R?

当我将金融时间序列从 Excel 导入到 R 时,日期变成了整数。每列代表一个日期。 我知道 Excel 将它们转换为一种形式,其中它们表示自 01/01/1900 起始日期以来的天数。 如何将这些数字转回 R 中的 'normal' 日期?

我会使用以下功能之一:

xlsnum_to_POSIXct <- function(n)
{
    as.POSIXct(
       x = n*24*60*60,
       origin = "1900-01-01 00:00:00"
    );
}

xlsnum_to_POSIXlt <- function(n)
{
    as.POSIXlt(
       x = n*24*60*60,
       origin = "1900-01-01 00:00:00"
    );
}

将天数转换为自 1900/01/01 以来的秒数,并方便地将其包装成 R date-time 类型。

应该也可以处理天数、天数向量等。

您可以使用函数 as.Date 并设置日期原点,将数据类型从整数更改为日期。

如果您的数据集名为 df 并且包含日期的列名为 event_date,例如:

df$event_date <- as.Date(df$event_date, origin = "1899-12-30")

或者,使用包 dplyr 中的 mutate

df <- mutate(df, event_date = as.Date(event_date, origin = "1899-12-30"))