如何使用 lubridate 包计算两个日期向量之间的月数,其中向量之一具有 NA 值?

2024-03-10

我已经阅读了 lubridate 包手册,并通过我的问题的各种排列查询了 Stack Overflow,但没有找到针对我的具体问题的答案。

我想做的是计算事件发生时的年龄(以月为单位)作为出生日期和某些特定事件日期之间的差异。

因此,我使用以下命令导入了 SAS 数据集sas7bdat使用以下代码将我的 SAS 日期变量(DOB 和事件)打包并转换为 R 对象:

df$DOB <- as.Date(df$DOB, origin="1960-01-01")
df$DOB1 <- ymd(df$DOB)

对于事件变量也是如此:

df$Event <- as.Date(df$Event, origin="1960-01-01")
df$Event1 <- ymd(df$Event)

然而,DOB 有一些 NA 值。因此,对于以下代码,我想用它来计算年龄(以月为单位)。

df$interval <- new_interval(df$DOB1,df$Event1)
df$Age1 <- df$interval %/% months(1)

我收到错误:

est[start + est * per

我究竟做错了什么?我尝试过 if/else 函数,但可能使用不正确。

(注意:对于 SAS 程序员,我尝试生成与以下函数相同的结果:

IF DOB ne . THEN Tage=Floor(intck('month',DOB,Event)-(Day(Event)<Day(DOB)));

使用 lubridate 包的简单示例

library(lubridate)
date1='20160101'
date2='20160501'
x=interval(ymd(date1),ymd(date2))
x= x %/% months(1)
print(x)
# answer : 4

或以下相同:

x=as.period(x) %>% month()
print(x)
# answer : 4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 lubridate 包计算两个日期向量之间的月数,其中向量之一具有 NA 值? 的相关文章

  • R Shiny - 使用 DataTable 移动列名称

    我有一个非常复杂的闪亮代码 其中有几个面板和这些面板内的几个表格 启动应用程序时 列名称与列值正确对齐 但是 一旦我更改应用程序表格下的页码 列名称就会移动到左侧 而值仍保留在中间 如何强制应用程序使列名称与列值对齐 一个可重现的例子 li
  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD
  • 在构建分数多项式函数时避免 eval(parse())

    我的目标是在 R 中编写一个函数 它接受 a 的系数分数多项式 http www stata com manuals13 rfp pdf rfpRemarksandexamples FP 并返回一个向量化函数 该函数针对给定的输入数字计算指
  • ggplot2:图例下方的中心图例而不是面板区域

    ggplot默认情况下 图例位于面板下方居中 这在某些情况下确实令人沮丧 请看下面的例子 ggplot diamonds aes cut fill clarity geom bar coord flip theme legend posit
  • 如何更新 R 中的包?

    我想将一个 R 包升级到已经可用的新版本 我试过 update packages c R2jags 但它什么也没做 控制台上没有输出 没有错误 什么也没有 我使用了相同的语法install packages但也许我做错了什么 我一直在看 u
  • 在r中拆分数据并将所有拆分文件保存在csv中

    我有一个名为 data 的数据集 Model Garage City Honda C Chicago Maruti B Boston Porsche A New York Honda B Chicago Honda C New York 它
  • 计算不包括当前值的平均值

    我有下表 a b avg 1 1 7 3 2 1 0 3 3 1 2 3 4 2 1 2 5 2 3 2 其中 a 和 b 是数据 avg 计算按 a 分组的 b 的平均值 现在我想计算按 a 分组的 b 的平均值 avg2 不包括当前值
  • ggplot2 - 在绘图顶部添加辅助 y 轴

    对于出版物 我需要向现有绘图添加第二个 y 轴 我遇到了一种方法来做到这一点 https rpubs com kohske dual axis in ggplot2 https rpubs com kohske dual axis in g
  • 将其他数据集的点添加到ggplot2

    关于这个主题已经有很多问题 但我找不到能回答我的具体问题的问题 我有一个barplot see testplot1 and testplot3如下 绘制数据集 bardata如下 并希望从另一个数据集向其添加点 pointdata 请参阅简
  • tidyr:将一列分成可变数量的列

    我的数据框中有一个变量 其中包含回答问卷中不同问题的长度 数据结构如下 data lt data frame variables c q1 2 q2 3 q3 4 q4 10 q5 1 q2 3 q1 2 q3 2 q5 2 q4 9 q1
  • 零膨胀泊松分布:无法估计参数,错误代码为 100

    以下是我正在研究的一种数据集 data lt c 0 1 0 11 2 0 3 0 0 2 1 3 1 0 1 0 0 0 2 3 0 0 0 8 1 1 1 0 1 1 2 7 0 0 0 5 2 3 6 1 1 5 2 9 0 0 1
  • geom_polygon 的渐变填充

    此代码生成一个包含 3 个多边形的图表 我正在创建一个显示 3 个多边形的图表 如果有更好的方法来绘制多边形 我不太感兴趣 实际上这些多边形代表事件 并且这些事件有一个持续时间 首先 我感兴趣的是使用渐变填充每个多边形的可能性 librar
  • 无效的命令名称“tk_chooseDirectory”错误

    我使用 bioconductor 进行 WES 管道 并使用 tk choose dir 选择用户存储输入文件的目录 并将其存储以供进一步使用 这里是命令行 library tcltk dataDir lt dirname tk choos
  • 在 R 中使用深度网络和 MNIST 数据读取手写数字第 3 部分

    我尝试编写一个基于深度网络的程序来读取手写数字 我在 Youtube 上找到了一个代码 https www youtube com watch v 5bso 5X7Zu4 https www youtube com watch v 5bso
  • 使用 2 个向量参数翻转函数

    我想对需要 2 个向量参数的函数应用滚动 这是使用 data table 的示例 不起作用 library data table df lt as data table cbind data frame x 1 100 y 101 200
  • 从受密码保护的站点读取信息

    我一直在 R 教程中使用 readLines 从网站上抓取信息 我现在希望从我自己的网站提取数据 特别是 awstats 数据 但是该域受密码保护 有没有一种方法可以通过用户名和密码传递我需要的特定 awstats 数据的 url url
  • ggsubplot 是否适用于 R 3.2.1+?

    CRAN 提供的 ggsubplot 版本与 R 的最新版本 例如 3 1 1 不兼容 运行 ggsubplot 示例会返回以下错误 Error in layout base data vars drop drop At least one
  • 使用 roxygen2 导入两个同名函数

    我是 CRAN 包的维护者 在加载时收到以下消息 checking whether package qdap can be installed 10s 10s WARNING Found the following significant
  • R正则表达式获取第二个下划线之前的所有文本

    s lt 1 343 43Hello 2 323 14 fdh 99H 在 R 中 我想使用正则表达式来获取第二个下划线之前的子字符串 如何使用一个正则表达式来完成此操作 另一种方法是用 分割 然后粘贴前两个 一些东西 paste sapp
  • 跨类别和列自动化卡方

    我有一个调查数据框 其中包含几个问题 列 编码为 1 同意 0 不同意 受访者 行 根据 年龄 年轻 中年 老年 地区 东 中 西 等指标进行分类 大约有30个类别总共 3个年龄 3个地区 2个性别 11个职业等 在每个指标中 类别不重叠且

随机推荐

  • 如何出现“创建目标表后架构已更改”错误?

    当我的 Web 应用程序尝试在 MSSQL 2005 数据库上执行 SELECT INTO 时 我遇到了此错误 我确实有两个问题 这个错误是什么意思以及这是如何发生的 有没有办法通过以不同的方式编码来防止这些错误 除了明显的情况之外 有人在
  • 适用于 Windows 的优秀开源错误跟踪/问题跟踪软件 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Android 未使用/查找我的希伯来语本地化。

    我正在努力将我的应用程序本地化为多种语言 西班牙语运行良好 但希伯来语没有出现 让我困惑的是 如果我将希伯来语字符串文件夹的内容放在西班牙语文件夹 values es 中 它会很好用 我的希伯来语文件夹中的西班牙语 值 他 不起作用 任何想
  • SQL Case 语句在 where 子句中指定条件?

    我有以下查询 SELECT FROM dbo tblOrders o WHERE o OrderId IN SELECT Value FROM dbo udf GenerateVarcharTableFromStringList Order
  • 相当于 git 的“svn checkout”?

    我应该使用什么 git 命令来相当于svn checkout git checkout 非常感谢 git clone https www kernel org pub software scm git docs git clone html
  • ftp 在 java 中无法正确下载文件?

    当我使用以下代码下载文件时 它只是将文件写入本地目的地 但文件大小均为零 有人能说为什么会发生这种情况以及如何解决它吗 import org apache commons net ftp FTPClient import org apach
  • BIOS 是否将 512 字节引导加载程序复制到 0x7c00

    我正在编写内核 在写这么复杂的东西之前 我认为对内核 引导加载程序 寄存器 BIOS 等进行一些理论阅读不仅会有所帮助 而且是必要的 本文 http lennartb home xs4all nl bootloaders node3 htm
  • 如何在 iTextSharp 中调整字体大小以填充固定高度的表格单元格

    我正在从 iTextSharp 创建 PDF 进行打印 我有可变长度的文本 我希望始终采用最大字体大小来填充固定高度的表格单元格 而不会在视线之外环绕 如何才能做到这一点 您首先需要能够测量所选字体中文本的宽度 来自 iTextSharp
  • 是否可以在经典asp中进行友好的url(url重写)?

    我知道如何在 asp net 中创建 实现友好的 url 但是是否可以 如果可以的话 如何 在经典 asp 中执行此操作 如果不可能 谷歌将如何响应 SEO 创建其唯一目的是重定向 加载时 到不同页面的页面 thanks Use a URL
  • 将 JSON 对象转换为 JSON 树

    var obj id 1 child 2 4 data hello id 2 child 3 data I m second id 3 child data I m third id 4 child 6 data I m fourth id
  • 如何在 PHP 中打印或回显数组索引

    我正在努力完成我的任务 这是现在要做的最后一件事 我知道如果我想打印整个数组我可以使用foreach以及许多不同的方法来打印整个数组 foreach v as k gt variable name echo p This is index
  • 使用 datetime.strptime 创建日期时间对象列表

    我有一个字符串列表 date str 2012 11 04 1 05 21 2013 11 03 1 05 21 2014 11 02 1 07 31 我想将它们作为日期时间对象来读取 对于一根弦 我做 datetime strptime
  • 运行 ssh 并立即执行命令[重复]

    这个问题在这里已经有答案了 我试图找到 UNIX 或 bash 命令来在连接到 ssh 服务器后运行命令 例如 ssh name ip tmux list sessions 上面的代码有效 它列出了会话 但随后立即断开连接 将它放在服务器端
  • 为什么列必须出现在 GROUP BY 中?

    我有这个 SELECT name value MIN value as find min FROM history WHERE date num gt 1609459200 AND date num lt 1640995200 AND na
  • 打印时防止表格分页

    我有一个页面正在尝试设置用于打印 该页面包含大量单独的表格 这些表格的大小各不相同 但一般来说 我可以在每页上放置 2 5 到 3 个表格 我希望能够防止表格因分页符而损坏 知道我怎样才能做到这一点吗 我试过这个 reportTable p
  • 优化多个分层组的 SUM OVER PARTITION BY

    我有一个如下表 Region Country Manufacturer Brand Period Spend R1 C1 M1 B1 2016 5 R1 C1 M1 B1 2017 10 R1 C1 M1 B1 2017 20 R1 C1
  • NodeJs压力测试工具/方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我搜索了很多关于对 NodeJs 应用程序 模块进行压力测试的信息 但没有找到任何内容 我有一个推送服务器应用程序 类似于 socket
  • react-admin 创建一个可以从菜单侧边栏访问的自定义页面

    我是反应管理新手 如何创建可以从菜单侧边栏访问的自定义页面 我正在寻找与本教程类似的内容 https marmelab com blog 2019 03 07 react admin advanced recipes user profil
  • 为自定义指令的节点生成标签

    使用Sphinx TODO 指令示例 https www sphinx doc org en master development tutorials todo html我想参考一下todo嵌入在 rst 文件中的实例 例如 如果 rst
  • 如何使用 lubridate 包计算两个日期向量之间的月数,其中向量之一具有 NA 值?

    我已经阅读了 lubridate 包手册 并通过我的问题的各种排列查询了 Stack Overflow 但没有找到针对我的具体问题的答案 我想做的是计算事件发生时的年龄 以月为单位 作为出生日期和某些特定事件日期之间的差异 因此 我使用以下