我有一个
data
如下:
data<-data.frame(is.on=c("FALSE","FALSE","FALSE","TRUE","FALSE","TRUE","FALSE","FALSE","TRUE","TRUE","TRUE","TRUE"),
dur=c(10,20,30,10,10,10,10,20,10,20,30,40),
dt=c(10,10,10,10,10,10,10,10,10,10,10,10),
block=c(2,2,2,3,4,5,6,6,7,7,7,7),
interval_block=c(1,1,1,2,2,2,3,3,3,4,4,4))
is.on
是“真”或“假”。 TRUE
表示开关打开,FALSE
表示开关关闭。每行是 10 秒的时间间隔。我想制作 summary_data
有 4 行基于 interval_block
.
Step1:确定模式
order
.
例如,对于
interval_block
=1,我们只看到FALSE
。所以,我想将order
表示为0。
对于 interval_block
=2,我们看到 TRUE
,FALSE
,TRUE
模式。所以,我想将 order
表示为 101.
Step2:计算
dur_1
、dur_2
和dur_3
.
dur_1
表示第一个模式的持续时间。
dur_2
表示第二个模式的持续时间。
dur_3
表示第三个模式的持续时间。
对于
interval_block
=1,order
是0
。因此,我可以将第一个模式0
的持续时间计算为 3 乘以 10。所以 dur_1
是 30。第二个和第三个模式没有模式。所以,dur_2
和 dur_3
是 0.
对于
interval_block
=2,order
是101
。对于 10 个 sencods,TRUE
以及接下来的 10 秒,FALSE
以及最后 10 秒,TRUE
所以第一个、第二个、第三个模式的持续时间是 10,10 和 10.
预期的输出应该是这样的:
summary_data<-data.frame(dur_1=c(30,10,20,30),
dur_2=c(0,10,10,0),
dur_3=c(0,10,0,0),
order=c(0,101,01,1),
interval_block=c(1,2,3,4))