r - 如何在 R 中减去两个 DATES 变量,结果应以天为单位
问题描述
我的数据框中有以下两列,称为Entry_date
,Death_date
包含格式为 的日期YYYY/MM/DD
。我想减去 like (Death_date-Entry_date = survival_days)
。减去Death_date
后Entry_date
,我想要几天后的结果。我的数据如下所示。
Sample_ID<-c("a1","a2","a3","a4","a5","a6")
Entry_date<-c(2010/04/13, 2008/07/30, 2009/03/06, 2008/08/22, 2009/06/24, 2008/08/26)
Death_date<-c(2007/05/17, 2007/05/16, 2007/05/16, 2007/05/16,2007/05/16, 2010/05/16)
Df<-data.frame(Sample_ID,Entry_date,Death_date)
我想要一个名为 Df$survival_days 的列作为结果变量,如下所示
Sample_ID Entry_date Death_date Df$survival_days
-1062.00
-441.00
-660.00
-464.00
-770.00
468.00
我如何在 R 中做到这一点。我的 cox 需要这个变量。回归生存分析。我的真实数据框有大约 10,000 个观察值。
解决方案
与适当的单位一起使用difftime
并以字符串形式提供日期:
Sample_ID<-c("a1","a2","a3","a4","a5","a6")
Entry_date<-c("2010/04/13", "2008/07/30", "2009/03/06", "2008/08/22", "2009/06/24", "2008/08/26")
Death_date<-c("2007/05/17", "2007/05/16", "2007/05/16", "2007/05/16","2007/05/16", "2010/05/16")
Df<-data.frame(Sample_ID,Entry_date,Death_date)
Df$difference_in_days <- difftime(Df$Death_date, Df$Entry_date, units = "days")
输出
> Df
Sample_ID Entry_date Death_date difference_in_days
1 a1 2010/04/13 2007/05/17 -1062.0000 days
2 a2 2008/07/30 2007/05/16 -441.0000 days
3 a3 2009/03/06 2007/05/16 -660.0417 days
4 a4 2008/08/22 2007/05/16 -464.0000 days
5 a5 2009/06/24 2007/05/16 -770.0000 days
6 a6 2008/08/26 2010/05/16 628.0000 days
推荐阅读
- c - 插入双向链表时的 C 内存泄漏
- javascript - 在 console.log 中调试截获的请求(开玩笑的木偶)
- java - 如何构造一个类,其变量对于大多数对象具有几乎相同的值
- ruby-on-rails - 简单的 Rails Minitest 案例爆炸
- python - 如何恢复 BERT/XLNet 嵌入?
- xamarin - 如何通过在 Xamarin Forms 中选择另一个下拉列表来动态更改下拉列表值
- vue.js - 如何使用 Vue.Js 上传仅图像文件?
- javascript - 如何在不使用全局变量的情况下从回调中获取数据?
- python - python中的舍入浮点数(处理5s)
- cron - 通过 Crontab 运行 Octave 脚本的语法