【发布时间】:2018-09-25 20:01:46
【问题描述】:
我正在研究医疗保健数据。为简单起见,我只提供一个患者 ID 的数据。每个患者都有一个唯一的 ID,并且在一段时间内,医生会监控 BCR_ABL 值,如下表所示。
structure(list(PatientId = c("Hospital1_124", "Hospital1_124",
"Hospital1_124", "Hospital1_124", "Hospital1_124", "Hospital1_124",
"Hospital1_124"), TestDate = c("2007-11-13", "2008-09-01", "2011-02-24",
"2013-05-01", "2016-02-16", "2017-05-12", "2017-08-29"), BCR_ABL = c(0.029,
0, 0, 0, 0, 100, 0)), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -7L), .Names = c("PatientId", "TestDate",
"BCR_ABL"))
在治疗开始时,每位患者的 BCR_ABL 值为 100,理想情况下,治疗后,该值应降至 0。患者在各个阶段接受 BCR_ABL 测试,如TestDate 列所示。
患者还去医院进行随访,这记录在另一个表中,其中包含随访日期以及开始用药的日期。该表如下所示:
structure(list(PatientId = c("Hospital1_124", "Hospital1_124",
"Hospital1_124", "Hospital1_124"), FollowupDate = structure(c(11323,
17298, 17407, 17553), class = "Date"), dateofStarting = structure(c(11323,
17318, 17318, 17318), class = "Date"), nameTKI = c("Imatinib",
"Imatinib", "Imatinib", "Imatinib"), brandTKI = c("Glivec", "Glivec",
"Glivec", "Glivec"), dailydose = c("100", "400", "400", "400"
)), class = "data.frame", row.names = c(NA, -4L), .internal.selfref = <pointer: 0x0>, .Names = c("PatientId",
"FollowupDate", "dateofStarting", "nameTKI", "brandTKI", "dailydose"
))
现在分析的目的是找出处方药 (nameTKI) 的功效。在我看来,最好的表示是 x 轴上带有 Date 和 y 轴上 BCR_ABL 的折线图。但是,我被困在如何组合日期上。我正在查看一个具有以下变量的新表:PatientId、Date、BCR_ABL、nameTKI、brandTKI 和 dailydose。我认为后续日期没有太大意义。所以忽略它,Date 变量需要是第一个表中的TestDate 和第二个表中的dateofStarting 的组合,按时间顺序为所有个体患者排列(我可以使用group_by())。 BCR_ABL 的值将从 100 开始,直到第一次测试后获得的值,然后对所有 Date 条目遵循这些值。
我一直在尝试来自dplyr 的各种joins,但没有任何成功。请提供一些帮助。
【问题讨论】:
-
你可以查看aggregate