【发布时间】:2019-12-27 00:39:30
【问题描述】:
我需要你的帮助: 我在 CSV 文件中有一个出生日期列,类型是“因素”。我想将类型转换为“日期”。
列数据:
8-Dec-09
8-Dec-12
8-Dec-14
8-Dec-42
8-Dec-49
8-Dec-53
8-Dec-61
8-Dec-62
前三行的年份分别为:2009、2012、2014。
其余年份分别为:1942、1949、1953、1961 和 1962
当使用as.Date,并尝试显示该列时,我收到消息:
"."
第一次尝试:
Patient$DATE_OF_BIRTH <- as.Date(Patient$DATE_OF_BIRTH, format = "%d/%m/%Y %H:%M")
第二次尝试:
Patient$DATE_OF_BIRTH <- as.Date(Patient$DATE_OF_BIRTH, format = "%d/%m/%Y")
第三次尝试:
Patient$DATE_OF_BIRTH <- as.Date(Patient$DATE_OF_BIRTH, format = "%d-%m-%Y %H:%M")
第四次尝试:
Patient$DATE_OF_BIRTH <- as.Date(Patient$DATE_OF_BIRTH, format = "%d-%m-%Y")
在之前的尝试中,不幸的是我得到的输出是:
""
我期望输出:
2009 年 12 月 8 日 2009 年 12 月 8 日或 2009 年 12 月 8 日和
8-Dec-62 的输出为 8-Dec-1962 或 8/Dec/1962 或
2009 年 12 月 8 日和 62 年 12 月 8 日保持不变,但列类型为日期而不是因子。
如果您建议在不使用 R 包的情况下进行转换,我将非常感谢,因为我在难以安装包的环境中工作。但如果没有办法,请提出任何可行的建议。
【问题讨论】:
-
两位数年份是
%y,而不是%Y。有关百分比代码,请参阅?strptime。 -
您需要逐字匹配
format参数中的日期。%x匹配日期的数字和单词,其他所有内容都应由您匹配。显然,如果你的约会中没有时间,你应该放弃%H:%M。 -
@G.Grothendieck 我尝试使用 %y 它给了我
-
@roman-luštrik 我删除了 %H:%M 但没有任何改变
标签: r date type-conversion as.date