我如何计算两个给定日期(基线和随访)之间的月数

问题描述 投票:0回答:2

我正在尝试确定基线和随访之间的月数我的约会看起来像这样

-------------------------
|  Baseline | Follow_Up  |
-------------------------
|  10/6/15  | 10/10/17   |
|  10/6/15  | 4/20/18    |
|  10/6/15  | 4/18/18    |
|  10/6/15  | 7/2/18     |
|  10/6/15  | 8/8/17     |
|  10/6/15  | 1/17/18    |
|  10/6/15  | 10/19/17   |
--------------------------

而且我正在寻找这样的输出

---------------------------------------------
|  Baseline | Follow_Up  | Months difference|
---------------------------------------------
|  10/6/15  | 10/10/17   |24.5              |
|  10/6/15  | 4/20/18    |30.9              |
|  10/6/15  | 4/18/18    |30.8              |
|  10/6/15  | 7/2/18     |33.3              |
|  10/6/15  | 8/8/17     |22.4              |
|  10/6/15  | 1/17/18    |27.8              | 
|  10/6/15  | 10/19/17   |24.8              |
---------------------------------------------

我想知道我可以使用哪个软件包进行此计算

谢谢

r time package calculation
2个回答
3
投票

这里是lubridate的选项

library(dplyr)
library(lubridate)
df1 %>%
      mutate(Months_difference = (interval(mdy(Baseline), 
             mdy(Follow_Up))) %/% months(1))

0
投票

使用基数R,我们可以将数据转换为“日期”对象,然后使用difftime计算两列之间的差。

df[] <- lapply(df, as.Date, "%m/%d/%y")
df$Month_diff <- as.numeric(difftime(df$Follow_Up, df$Baseline, units = "days")/30)
df

#    Baseline  Follow_Up Month_diff
#1 2015-10-06 2017-10-10       24.5
#2 2015-10-06 2018-04-20       30.9
#3 2015-10-06 2018-04-18       30.8
#4 2015-10-06 2018-07-02       33.3
#5 2015-10-06 2017-08-08       22.4
#6 2015-10-06 2018-01-17       27.8
#7 2015-10-06 2017-10-19       24.8

数据

df <- structure(list(Baseline = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L), .Label = "10/6/15", class = "factor"), Follow_Up = structure(c(2L, 
5L, 4L, 6L, 7L, 1L, 3L), .Label = c("1/17/18", "10/10/17", "10/19/17", 
"4/18/18", "4/20/18", "7/2/18", "8/8/17"), class = "factor")), 
class = "data.frame", row.names = c(NA, -7L))
© www.soinside.com 2019 - 2024. All rights reserved.