我正在使用csv,不幸的是,它使用42705的数字格式记录了日期时间,尽管它应该是2016年12月1日.
我想使用Lubridate或其他软件包将其转换为R中的正确格式.有没有能够处理它的功能?
And*_*ēza 64
你不需要使用lubridate
它,基本函数可以as.Date
很好地处理这种类型的转换.诀窍是你必须提供原点,在Excel中是1899年12月30日.
as.Date(42705, origin = "1899-12-30")
# [1] "2016-12-01"
Run Code Online (Sandbox Code Playgroud)
如果要保留列类型,可以尝试使用包中的read_excel
函数readxl
.这使您可以加载保留数字格式的XLS或XLSX文件.
小智 15
以下是使用janitor和tibble包的另一种方法:
install.packages("janitor")
install.packages("tibble")
library(tibble)
library(janitor)
excel_numeric_to_date(as.numeric(as.character(YourDate)), date_system = "modern")
Run Code Online (Sandbox Code Playgroud)
Wal*_*ldi 12
openxlsx
包还允许xls
date
转换:
openxlsx::convertToDate(42705)
[1] "2016-12-01"
Run Code Online (Sandbox Code Playgroud)
正如@Suren 所建议的,convertToDateTime
对于datetime
转换很有用:
openxlsx::convertToDateTime(42705.5)
[1] "2016-12-01 12:00:00"
Run Code Online (Sandbox Code Playgroud)