查找组内特定序列

时间:2018-04-07 22:13:39

标签: r sequences

我正在研究一个数据集,包括随着时间的推移对个体的重复测试结果(结果表示为阳性(1)/阴性(0));每个人的测试次数不一定相同。 下面是一个df,它重现了我的数据集的样子:

id<-c(rep("a", time=5), rep("b", time=5), rep("c",time=7))
date<-as.Date(c("2018-03-01","2018-04-01","2018-06-01","2018-08-01","2018-10-01","2017-03-01","2017-04-01","2018-02-01","2018-11-01","2018-12-01","2016-05-11","2017-10-01","2018-03-01","2018-03-21","2018-4-01","2018-07-01","2018-08-01"))
test<-c(1,1,0,1,0,0,1,0,1,1,0,0,1,0,0,1,0)
df<-data.frame(id, test, date)
df
id test       date
a    1 2018-03-01
a    1 2018-04-01
a    0 2018-06-01
a    1 2018-08-01
a    0 2018-10-01
b    0 2017-03-01
b    1 2017-04-01
b    0 2018-02-01
b    1 2018-11-01
b    1 2018-12-01
c    0 2016-05-11
c    0 2017-10-01
c    1 2018-03-01
c    0 2018-03-21
c    0 2018-04-01
c    1 2018-07-01
c    0 2018-08-01

我要做的是创建一个新列'Var',指示是否有以下任何一组结果:

match1<-c(1,1,1,1)
match2<-c(1,1,1,0)
match3<-c(0,1,1,1)
match4<-c(1,0,1,1)
match5<-c(1,1,0,1)
在每个个体的结果集中观察到

。理想情况下,这将导致:

id test       date      Var
a    1 2018-03-01     case
a    1 2018-04-01     case
a    0 2018-06-01     case
a    1 2018-08-01     case
a    0 2018-10-01     case
b    0 2017-03-01     case
b    1 2017-04-01     case
b    0 2018-02-01     case
b    1 2018-11-01     case
b    1 2018-12-01     case
c    0 2016-05-11 non-case
c    0 2017-10-01 non-case
c    1 2018-03-01 non-case
c    0 2018-03-21 non-case
c    0 2018-04-01 non-case
c    1 2018-07-01 non-case
c    0 2018-08-01 non-case

因为在'a'的结果集中观察到序列(1,1,0,1),在'b'中观察到(1,0,1,1),而在'c'中没有观察到任何目标序列”。

为不发布任何尝试而道歉,但我真的坚持这个! 最好的祝福, 利玛

0 个答案:

没有答案