如何在不使用R中的日期的情况下创建多个主题的时间轴?

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

我有一个要根据治疗后天数而不是其治疗和随访的实际日期来比较的受试者的数据集。

我的想法是,如果所有主题都在同一点开始并在同一点结束,而不是由于主题开始时间不同而分散在多个年份,那么将更容易可视化。

在R中有办法吗?我看过vistime,它看起来很有希望,只是开始/结束应该是日期。

这是我的数据的示例:

df <- data.frame(Patient = c(1,1,1,2,2,2,3,3,3),
                 Response = c("PR", "CR", "CR", "SD", "SD", "PD", "PR", "PR", "CR"),
                 Start = rep(c("Day 30", "Day 90", "Day 180")),
                 End = rep(c("Day 90", "Day 180", "Day 270")))

Example Data

r visualization timeline
1个回答
0
投票

因此,从您发布的示例中,数据实际上不是数字或日期,而是文本。

df <- data.frame(Patient = c(1,1,1,2,2,2,3,3,3),
                 Response = c("PR", "CR", "CR", "SD", "SD", "PD", "PR", "PR", "CR"),
                 Start = rep(c("Day 30", "Day 90", "Day 180")),
                 End = rep(c("Day 90", "Day 180", "Day 270")))

  Patient Response   Start     End
1       1       PR  Day 30  Day 90
2       1       CR  Day 90 Day 180
3       1       CR Day 180 Day 270
4       2       SD  Day 30  Day 90
5       2       SD  Day 90 Day 180
6       2       PD Day 180 Day 270
7       3       PR  Day 30  Day 90
8       3       PR  Day 90 Day 180
9       3       CR Day 180 Day 270

要使用文本,有很多选项,包括下面的tidyverse(还有base和其他选项。

library(dplyr)
library(stringr)
df %>% 
  mutate(Start = as.numeric(str_extract(Start, "[:digit:]+")),
         End = as.numeric(str_extract(End, "[:digit:]+")),
         Difference = End - Start,
         )

我所做的是提取开始日期和结束日期的数字部分,然后减去它们。那就是您要找的东西吗?

  Patient Response Start End Difference
1       1       PR    30  90         60
2       1       CR    90 180         90
3       1       CR   180 270         90
4       2       SD    30  90         60
5       2       SD    90 180         90
6       2       PD   180 270         90
7       3       PR    30  90         60
8       3       PR    90 180         90
9       3       CR   180 270         90
© www.soinside.com 2019 - 2024. All rights reserved.