首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-对于每个参与者,填入随后的条目并注明招募日期(临床数据)。

R-对于每个参与者,填入随后的条目并注明招募日期(临床数据)。
EN

Stack Overflow用户
提问于 2017-11-27 12:06:08
回答 1查看 56关注 0票数 1

下面的数据我有问题:

代码语言:javascript
复制
myDF <- structure(list(id = c("J13/5", "J13/5", "J13/5", "J13/5", "J13/5", 
   "J138/2", "J138/2", "J138/2", "J140/6", "J140/6", "J140/6", "J155/9", 
   "J155/9", "J177/4", "J193/2", "J197/5", "J197/5", "J197/5", "J197/5", 
   "J197/5", "J197/5", "J199/1", "J199/1", "J199/1", "J199/1", "J204/3", 
   "J230/1", "J25/5", "J25/9", "J25/9", "J25/9", "J259/2", "J261/2", 
   "J289/1", "J293/4", "J293/4", "J293/4", "J293/4", "J293/4", "J293/4", 
   "J293/4", "J298/7", "J298/7", "J298/7", "J298/7", "J30/8", "J30/8", 
   "J30/8", "J306/4", "J312/4"), 
sample_type = c("A", "C1", "C2", 
     "C3", "A", "A1", "C1", "C2", "A", "C1", "C2", "A", "A", "A", 
     "C2", "AS", "A", "C1", "C2", "C3", "AS", "AS", "C1", "C2", "C3", 
     "A", "A", "C3", "A", "C1", "C2", "AS", "A", "A", "A", "A1", "AC1", 
     "C1", "C2", "A", "C3", "A", "C1", "C2", "AC3", "A1", "C1", "C2", 
     "A", "A"), 
sample_date = c("09-Sep-16", "06-Oct-16", "21-Oct-16", 
    "22-Feb-17", "03-Jul-17", "08-Aug-16", "05-Sep-16", "19-Sep-16", 
    "31-Aug-16", "29-Sep-16", "10-Oct-16", "26-Jan-16", "15-Sep-17", 
    "25-Jan-16", "19-Sep-16", "22-Mar-16", "18-Jul-16", "15-Aug-16", 
    "30-Aug-16", "05-Jan-17", "03-Apr-17", "18-Mar-16", "19-Aug-16", 
    "02-Sep-16", "05-Jan-17", "03-Apr-17", "21-Mar-16", "15-Mar-17", 
    "30-Sep-16", "18-Oct-16", "10-Nov-16", "18-Mar-16", "04-Jul-17", 
    "04-Sep-17", "28-Jan-16", "21-Jul-16", "05-Aug-16", "18-Aug-16", 
    "31-Aug-16", "15-Sep-16", "04-Jan-17", "11-Jul-16", "08-Aug-16", 
    "22-Aug-16", "27-Sep-16", "28-Jul-16", "24-Aug-16", "07-Sep-16", 
    "03-Feb-16", "20-Jan-17")), 
.Names = c("id", "sample_type", "sample_date"
    ), row.names = c(NA, -50L), class = c("data.table", "data.frame"
    ))

这一数据来自一项临床试验,在两年的时间里,儿童被招募为急性发作(样本类型= A),并在随后的三个时间点(样本类型= C1或C2或C3)被随访。所有这些都有不同的定义,取决于孩子呈现的是什么。任何不属于外界的东西都意味着孩子有了别的东西。

因此,我们可以说,一个完整的跟踪从A开始,以C3结束,当一个孩子完成这个跟踪时,他们又重新开始了。

我想添加另一个变量(date_acute),为每一个后续,填充的日期,儿童出现急性发作。例如,挑选几个孩子,我们期望输出如下所示:

代码语言:javascript
复制
id  sample_type sample_date date_acute
child13/5   A   09-Sep-16   09-Sep-16
child13/5   C1  06-Oct-16   09-Sep-16
child13/5   C2  21-Oct-16   09-Sep-16
child13/5   C3  22-Feb-17   09-Sep-16
child13/5   A   03-Jul-17   03-Jul-17
child138/2  A1  08-Aug-16   NA
child138/2  C1  05-Sep-16   NA
child138/2  C2  19-Sep-16   NA
child140/6  A   31-Aug-16   31-Aug-16
child140/6  C1  29-Sep-16   31-Aug-16
child140/6  C2  10-Oct-16   31-Aug-16
child155/9  A   26-Jan-16   26-Jan-16
child155/9  A   15-Sep-17   15-Sep-17
child177/4  A   25-Jan-16   25-Jan-16
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-27 12:21:23

一种办法可以是:

代码语言:javascript
复制
library(data.table)

setDT(yDF)
yDF[, date_acute := sample_date[sample_type == "A"], by = .(id, cumsum(sample_type == "A" ))]

  > yDF
        id sample_type sample_date date_acute
 1:  J13/5           A   09-Sep-16  09-Sep-16
 2:  J13/5          C1   06-Oct-16  09-Sep-16
 3:  J13/5          C2   21-Oct-16  09-Sep-16
 4:  J13/5          C3   22-Feb-17  09-Sep-16
 5:  J13/5           A   03-Jul-17  03-Jul-17
 6: J138/2          A1   08-Aug-16         NA
 7: J138/2          C1   05-Sep-16         NA
 8: J138/2          C2   19-Sep-16         NA
 9: J140/6           A   31-Aug-16  31-Aug-16
10: J140/6          C1   29-Sep-16  31-Aug-16
11: J140/6          C2   10-Oct-16  31-Aug-16
12: J155/9           A   26-Jan-16  26-Jan-16
13: J155/9           A   15-Sep-17  15-Sep-17
14: J177/4           A   25-Jan-16  25-Jan-16
15: J193/2          C2   19-Sep-16         NA
16: J197/5          AS   22-Mar-16         NA
17: J197/5           A   18-Jul-16  18-Jul-16
18: J197/5          C1   15-Aug-16  18-Jul-16
19: J197/5          C2   30-Aug-16  18-Jul-16
20: J197/5          C3   05-Jan-17  18-Jul-16
21: J197/5          AS   03-Apr-17  18-Jul-16
22: J199/1          AS   18-Mar-16         NA
23: J199/1          C1   19-Aug-16         NA
24: J199/1          C2   02-Sep-16         NA
25: J199/1          C3   05-Jan-17         NA
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47510632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档