如何解决如何从具有完整日期格式的字符串中设置年份?
这听起来像是最基本的问题,但我宁愿继续!
-这是 Shiny App 的一部分-
我读了一个 CSV 文件,其中一个列不再是 General
,因为我习惯看到它们,但是 Date
类型,我只关心那个完整日期的年份。它并不总是以相同的方式,这意味着有时是 10/24/1995(月/日/年),而有时是 24/10/1995(日/月/年)。我正在使用 lubridate
包来配合下面的简单行
df$File.Date <- mdy(df$File.Date)
df$year <- lubridate::year(df$File.Date)
但是自从它开始为这个特定的字符串显示这个 Date
格式后,它一直在说下面的错误
Listening on http://127.0.0.1:6970
Warning: All formats failed to parse. No formats found.
Warning: Error in as.POSIXlt.character: character string is not in a standard unambiguous format
152: stop
151: as.POSIXlt.character
149: year.default
147: eventReactiveHandler [C:\Users\Melania CB\Documents\My time\Shiny app\Modeling app/server.R#121]
103: df
102: exprFunc [C:\Users\Melania CB\Documents\My time\Shiny app\Modeling app/server.R#132]
101: widgetFunc
100: func
87: origRenderFunc
86: renderFunc
82: origRenderFunc
81: output$new_date
1: runApp
有时我可以在 Excel 中使用 Text to Columns 并在使用应用程序之前执行此操作,因此我不必更改 df$File.Date
但它开始做一些奇怪的事情,当我将其更改为 {{1 }} 输入它会将 General
更改为 10/31/2014
并且我什么也没有得到,有人可以指导我吗?
解决方法
基于您只关心年份的观点,这里我提供了一个可重现的解决方案示例:
x1 <-format(seq(today()-10,today()-5,by='day'),'%m/%d/%Y')
x2 <- format(seq(today()-4,today(),'%d/%m/%Y')
df <- data.frame(x=c(x1,x2))
df %>% separate(x,c('d1','d2','year')) %>% head()
dm md year
1 01 16 2021
2 01 17 2021
3 01 18 2021
4 01 19 2021
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。