簡體   English   中英

縱向數據集 - 兩個日期之間的差異

[英]Longitudinal dataset - difference between two dates

我有一個縱向數據集,我從 Excel 導入到 R 中,如下所示:

STUDYID  VISIT#  VISITDate 
1         1      2012-12-19
1         2      2018-09-19
2         1      2013-04-03
2         2      2014-05-14
2         3      2016-05-12

在這個數據集中,每個患者/研究 ID 有不同的醫院就診次數,他們的首次就診日期可能因人而異。 我想創建一個新的時間變量,它基本上是自首次訪問以來的年數,因此數據集將如下所示:

STUDYID  VISIT#  VISITDate   Time(years)
1         1      2012-12-19    0
1         2      2018-09-19    5
2         1      2013-04-03    0
2         2      2014-05-14    1
2         3      2016-05-12    3

創建這樣一個時間變量的原因是評估隨時間變化的差分回歸效應(這是一個連續變量)。 有沒有辦法在 R 中創建一個像這樣的新時間變量,以便我可以在回歸分析中將其用作自變量?

在此處輸入圖像描述

考慮通過ave組計算VISITDateSTUDYID ,然后將日期差轉換為 integer 年:

df <- within(df, {
        minVISITDate <- ave(VISITDate, STUDYID, FUN=min)
        Time <- floor(as.double(difftime(VISITDate, minVISITDate, unit="days") / 365))
        rm(minVISITDate)
    })

df
#  STUDYID VISIT#  VISITDate Time
# 1      1      1 2012-12-19    0 
# 2      1      2 2018-09-19    5 
# 3      2      1 2013-04-03    0
# 4      2      2 2014-05-14    1 
# 5      2      3 2016-05-12    3

加載包:

library(tibble)
library(dplyr)
library(lubridate)

設置數據:

dat <- tribble(~STUDYID , ~VISIT , ~VISITDate ,
               1       ,  1    ,  "2012-12-19",
               1       ,  2    ,  "2018-09-19",
               2       ,  1    ,  "2013-04-03",
               2       ,  2    ,  "2014-05-14",
               2       ,  3    ,  "2016-05-12") %>% 
  mutate(VISITDate = as.Date(VISITDate)) 

創建想要的變量:

dat %>% 
  group_by(STUDYID) %>% 
  mutate(Time = first(VISITDate) %--% VISITDate,
         Time = as.numeric(Time, "years")) %>% 
  ungroup()

# A tibble: 5 x 4
  STUDYID VISIT VISITDate   Time
    <dbl> <dbl> <date>     <dbl>
1       1     1 2012-12-19  0   
2       1     2 2018-09-19  5.75
3       2     1 2013-04-03  0   
4       2     2 2014-05-14  1.11
5       2     3 2016-05-12  3.11

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM