我有一个%d%b%y格式生日的文件.一些例如.
# "01DEC71" "01AUG54" "01APR81" "01MAY81" "01SEP83" "01FEB59"
Run Code Online (Sandbox Code Playgroud)
我试着将日期重新格式化为
o108$fmtbirth <- format(as.Date(o108$birth, "%d%b%y"), "%Y/%m/%d")
Run Code Online (Sandbox Code Playgroud)
这就是结果
# "1971/12/01" "2054/08/01" "1981/04/01" "1981/05/01" "1983/09/01" "2059/02/01"
Run Code Online (Sandbox Code Playgroud)
这些是生日,我看到了2054.从这个页面我看到00到68之间的年份值被编码为20世纪.有没有办法切换这个,在我的情况下,我只想将00到12编码为20.
在R中,我有一个字符串向量,表示两种不同格式的日期:
第一种格式有两位数的年份,所以我的矢量看起来像这样:
c("3/18/75", "March 10, 1994", "10/1/80", "June 15, 1979",...)
Run Code Online (Sandbox Code Playgroud)
我想以标准格式将日期放在向量中.使用包中的mdy函数应该很容易lubridate,除非我以第一种格式传递它,它返回一个不需要的世纪.
mdy("3/18/75") 回报 "2075-03-18 UTC"
有谁知道它如何能够回归20世纪的日期?那是"1975-03-18 UTC".任何其他如何标准化日期的解决方案也将非常受欢迎.
如果重要的话,我正在运行版本lubridate_1.3.3.
我正在尝试从数字中提取日期。日期存储为 11 位个人 ID 号(日期-月份-年)的前 6 位数字。不幸的是,基于云的数据库 (REDCap) 输出被格式化为数字,因此每月前 9 天出生的人的前导零最终会变成 10 位数字的 ID 号码,而不是 11 位数字。我设法提取了与日期相对应的 6 或 5 位数字,即 311230 代表 1930 年 12 月 31 日,或 11230 代表 1930 年 12 月 1 日。我最终遇到了两个无法解决的问题。
假设我们使用以下数字:
dato <- c(311230, 311245, 311267, 311268, 310169, 201104, 51230, 51269, 51204)
Run Code Online (Sandbox Code Playgroud)
我将它们转换为字符串,然后应用 as.Date() 函数:
datostr <- as.character(dato)
datofinal <- as.Date(datostr, "%d%m%y")
datofinal
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是:
我确信这对于那些对 R 有更多了解的人来说一定很容易,但是,我在解决这个问题上有点困难。任何帮助是极大的赞赏。
问候比约恩