r - 重新格式化不正确的日期
问题描述
目前,我正在研究 RStudio 的 Retrosheet 数据框,不喜欢日期格式并想更改它。
devtools::install_github("rmscriven/retrosheet")
然后我导入了我想使用的数据框
GL17 <- getRetrosheet("gamelog", 2017)
数据框日期向量的格式为 YYYYMMDD,但没有正确的格式,例如20170402
,但我想将其更改为显示,例如2017-04-02
我尝试过as.Date(GL17$Date, "Y%d%m%")
的返回为
Error in charToDate(x) : character string is not in a standard unambiguous format
这很有意义。有没有比编辑(GL17)更容易操纵整个向量的另一种方法,它需要永远并且通常不起作用。
解决方案
“... YYYYMMDD没有正确的格式,例如 20170402 但我想将其更改为例如显示为 2017-04-02 我尝试过 as.Date(GL17$Date, "Y%d%m%" ) 以“
它的 YYYYMMDD 但你做了 "Y%d%m" 这在两个级别上是错误的 - 缺少 % 和 m 和 d 的顺序错误:
> as.Date("20100331","Y%d%m")
[1] NA
> as.Date("20100331","%Y%d%m")
[1] NA
使用正确的格式,这有效:
> as.Date("20100331","%Y%m%d")
[1] "2010-03-31"
但请注意,我上面的错误不会重现您的错误,因此您一定做错了其他事情。也许您的日期实际上是大数字:
> as.Date(20100331,"%Y%m%d")
Error in charToDate(x) :
character string is not in a standard unambiguous format
这似乎总是给出与您得到的相同的错误。将数字转换为字符并重试:
> as.Date(as.character(20100331),"%Y%m%d")
[1] "2010-03-31"
推荐阅读
- postgresql - 将 postgres 9.5 升级到 11
- react-native - 解析:使用 Google oAuth 初始注册后未检索到 sessionToken
- c - Fatfs 检测 SD 卡移除
- flutter - 如果在列中,Flutter Loader 动画不居中
- javascript - 无法将 shapefile 转换为 geojson
- ios - 如果 CollectionView 在 UIScrollView 内,如何设置 UICollectionView 项目大小?
- javascript - 如何解决 ngFor 用于 Angular 渲染的问题
- java - 为 findAllByTypeAndCreatedAtAfter() mongodb 方法添加最大大小限制和方向
- java - org.docx4j.openpackaging.exceptions.InvalidFormatException:错误 [Content_Types].xml
- jenkins - 如何在jenkins的JOB DSL中调用属性文件语法和定义