在 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"))
当我将金融时间序列从 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"))