r - as.Date 给我 NA
问题描述
我已经尝试了这个线程中的所有内容。日期返回 NA 同时从“ddmmmyyyy”转换以尝试对我的问题进行排序。
我正在使用这些命令将一个因素转换为日期:
cohort$doi <- as.Date(cohort$doi, format= "%Y/%m/%d")
我所有的日期目前都采用以下格式:YYYY-MM-DD,据我所知,上述内容应该有效
我昨天使用此代码将各种变量的所有日期从一个因素转换为一个日期。它昨天工作,一切都很好。今天我打开了我的脚本并导入了我的数据,运行了这个命令并查看了我的数据,但现在所有的日期都显示为 NA。
我已经尝试了以前线程中的所有内容(我查看的不仅仅是我上面链接的那个),但到目前为止没有任何效果。我不知道现在该怎么办
doi 列的示例:
1970-01-01
1970-02-02
1970-03-03
1970-04-04
该列当前被归类为一个因素。当我执行上面使用的代码时,该列被定义为日期,但现在所有日期都显示为 NA 除了关闭 R 并在今天再次打开它之外,我什么也没做。
解决方案
如果您阅读文档,as.Date
您会注意到默认格式是%Y-%d-%m
or %Y/%d/%m
:
默认格式遵循 ISO 8601 国际标准的规则,将一天表示为“2001-02-03”。
在您的代码中,您已指定日期由斜杠格式化,但您的示例数据显示它们以默认格式格式化as.Date
:
doi <- as.factor(c("1970-01-01",
"1970-02-02",
"1970-03-03",
"1970-04-04"))
as.Date(doi) # default format %Y-%m-%d
[1] "1970-01-01" "1970-02-02" "1970-03-03" "1970-04-04"
as.Date(doi, format = "%Y/%m/%d") # incorrect specification of your date format
[1] NA NA NA NA
as.Date("1970/01/01") # also a default format
[1] "1970-01-01"
注意:as.Date
接受字符串、因子、逻辑 NA 和类“POSIXlt”和“POSIXct”的对象。
推荐阅读
- java - 从java运行R脚本 - Rconnection eval异常
- php - Laravel CRUD 多实体,路由
- angular - 错误:无法创建组件 ComponentClass,因为它没有导入到测试模块中
- angular - p日历的“必需”验证器
- javascript - Angular 5.如何将父组件添加到另一个不相关的父组件
- python - 从 csv 文件中检索列并将值提取到另一个 csv 文件
- android - 如何将 sdcard/外部存储文件上传到服务器?
- teradata - 如何修剪 teradata 表列中的尾随空格
- ruby - 对于 Rails,使用手写迁移创建“ar_internal_metadata”表是个好主意吗?
- amazon-web-services - AWS EC2 实例登录失败