在读取 excel 文件时解析一列包含 5 个数字整数的日期格式
Parsing one column with 5 didgits integers as date format while reading excel file
对于 excel 文件(从 here 下载):
df <- openxlsx::read.xlsx('sample_data.xlsx', sheet='Sheet1', colNames=TRUE)
df
输出:
date value
1 43861 5.70
2 43890 -13.89
3 43921 -49.68
4 43951 -62.81
我尝试将日期列转换为正常日期格式:
> df %>%
+ mutate(date=as.Date(date, origin = "1970-01-01"))
date value
1 2090-02-01 5.70
2 2090-03-02 -13.89
3 2090-04-02 -49.68
4 2090-05-02 -62.81
> df %>%
+ mutate(date=as.Date(date, origin = "1910-01-01"))
date value
1 2030-02-01 5.70
2 2030-03-02 -13.89
3 2030-04-02 -49.68
4 2030-05-02 -62.81
我用 1970-01-01
和 1910-01-01
作为 origin
参数的值进行了测试,输出中的日期似乎不正确(43861
已转换为 2090-02-01
和 2030-02-01
,应该是 2020-01-31
).
origin
必须在 内部 as.Date
调用。
df %>%
mutate(date = as.Date(date, origin = "1899-12-30"))
#> date value
#> 1 2020-01-31 5.70
#> 2 2020-02-29 -13.89
#> 3 2020-03-31 -49.68
#> 4 2020-04-30 -62.81
对于 excel 文件(从 here 下载):
df <- openxlsx::read.xlsx('sample_data.xlsx', sheet='Sheet1', colNames=TRUE)
df
输出:
date value
1 43861 5.70
2 43890 -13.89
3 43921 -49.68
4 43951 -62.81
我尝试将日期列转换为正常日期格式:
> df %>%
+ mutate(date=as.Date(date, origin = "1970-01-01"))
date value
1 2090-02-01 5.70
2 2090-03-02 -13.89
3 2090-04-02 -49.68
4 2090-05-02 -62.81
> df %>%
+ mutate(date=as.Date(date, origin = "1910-01-01"))
date value
1 2030-02-01 5.70
2 2030-03-02 -13.89
3 2030-04-02 -49.68
4 2030-05-02 -62.81
我用 1970-01-01
和 1910-01-01
作为 origin
参数的值进行了测试,输出中的日期似乎不正确(43861
已转换为 2090-02-01
和 2030-02-01
,应该是 2020-01-31
).
origin
必须在 内部 as.Date
调用。
df %>%
mutate(date = as.Date(date, origin = "1899-12-30"))
#> date value
#> 1 2020-01-31 5.70
#> 2 2020-02-29 -13.89
#> 3 2020-03-31 -49.68
#> 4 2020-04-30 -62.81