我有一个日期日期格式不确定的xlsx文件:
我使用read_xlsx()
将文件加载到r中。如何更改和读取(例如2019-12-28)格式的整个文件?
这是我的代码:
file=file.choose()
date=read_xlsx(file)
dim(date)
[1] 37 1
date[1,1]
43827 #this should corrspond to 2019-12-28
我尝试了as.Date(43827, origin = "2019-12-28")
,但是得到了[1] "2139-12-26"
。
编辑评论。
> dput(date)
structure(list(Date = c("43827", "43823", "43821", "43818", "43816",
"43813", "43811", "43809", "43806", "43804", "28/2/2019", "26/2/2019",
"23/2/2019", "21/2/2019", "19/2/2019", "16/2/2019", "14/2/2019",
"43618", "43526", "31/1/2019", "29/1/2019", "43262", "43170",
"43111", "30/10/2018", "27/10/2018", "25/10/2018", "23/10/2018",
"42593", "42501", "42440", "42380", "29/10/2016", "27/10/2016",
"25/10/2016", "22/10/2016", "20/10/2016")), row.names = c(NA,
-37L), class = c("tbl_df", "tbl", "data.frame"))
答案 0 :(得分:2)
由于日期采用混合格式,因此可以尝试lubridate::parse_date_time
lubridate::parse_date_time(x, c('Ymd', 'dmY'))
#[1] "2019-12-28 UTC" "2019-02-28 UTC" "2019-10-25 UTC" "2019-06-02 UTC"
或anytime::anydate
library(anytime)
addFormats(c('%Y-%m-%d', '%d/%m/%Y'))
anytime::anydate(x)
将x
替换为列名date$Date
。您可以在两种方法中都包括您的日期可以采用的所有可能格式。
数据
x <- c('2019-12-28', '28/2/2019', '25/10/2019', '2019-06-02')
答案 1 :(得分:0)
起源错误,在Excel中是1899年12月30日。
gam
数据:
model <- gam(y ~ s(x) + s(w), data = mydata)
答案 2 :(得分:0)
我制作了一个示例Excel文件,其中包含来自图像的4个日期。之所以有效,是因为我使用col_types='text
的{{1}}参数以文本形式读取了日期
read_xlsx
希望这对您有用!