Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从1月1日开始按年份分割生存数据集_R_Cox Regression_Survival - Fatal编程技术网

R 从1月1日开始按年份分割生存数据集

R 从1月1日开始按年份分割生存数据集,r,cox-regression,survival,R,Cox Regression,Survival,我有下面的生存数据集,我想在每年的1月1日之前分割间隔。例如,对于personid 1220,我将在1912-01-01、1913-01-01、1914-01-01、1915-01-01进行拆分。我尝试使用survSplit,但他们只能使用数值向量。如果还有别的办法,请告诉我好吗 在下面的数据集中,time=EndDate-StartDate。以下是我到目前为止的情况: test.ts <- survSplit(Surv(time, censor) ~ .,

我有下面的生存数据集,我想在每年的1月1日之前分割间隔。例如,对于personid 1220,我将在1912-01-01、1913-01-01、1914-01-01、1915-01-01进行拆分。我尝试使用
survSplit
,但他们只能使用数值向量。如果还有别的办法,请告诉我好吗

在下面的数据集中,time=EndDate-StartDate。以下是我到目前为止的情况:

test.ts <- survSplit(Surv(time, censor) ~ ., 
                          data = test,
                          cut = seq(0, 1826.25, 365.25),
                          episode = "tgroup")

我不确定我是否理解您的需求,但您希望在Start范围内每年复制数据框架中的信息;最后,您可以执行以下操作:

library(tidyverse)
library(lubridate)

df %>%
  as_tibble() %>%
  mutate(
    RangeYear = map2(StartDate, EndDate, function(start, end) {
      start <- `if`(day(start) == 1 && month(start) == 1, 
                    year(start), 
                    year(start) + 1)
      seq(start, year(end))
    })
  ) %>%
  unnest(RangeYear)
库(tidyverse)
图书馆(lubridate)
df%>%
as_tible()%>%
变异(
RangeYear=map2(开始日期、结束日期、函数(开始、结束){
起始百分比
最新(年度)