小编Bjo*_*erg的帖子

尝试从 5 或 6 位数字中提取日期

我正在尝试从数字中提取日期。日期存储为 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)

我遇到的问题是:

  • 五位数字(例如 11230)将报告为 NA。
  • 可以识别六位数字,但 1969 年 1 月 1 日之前出生的数字会加上 100 年进行报告,即 010160 转换为 2060.01.01

我确信这对于那些对 R 有更多了解的人来说一定很容易,但是,我在解决这个问题上有点困难。任何帮助是极大的赞赏。

问候比约恩

r date data-conversion redcap

3
推荐指数
1
解决办法
3530
查看次数

标签 统计

data-conversion ×1

date ×1

r ×1

redcap ×1