计算行为的持续时间/长度

计算行为的持续时间/长度

像其他人一样,我不是很确定你到底想要实现什么。这是我的理解。我猜你有病人活动的数据集。它包含测量的时间戳和测量的结果(如果是站立或铺设)。根据图像中的输入数据集,我创建了如下内容:

代码语言:javascript复制data sequences(drop=lying100 length start_end);

set test;

BY NOTSORTED lying100;

retain first_val;

if FIRST.lying100 and lying100 eq 1 then

first_val=length;

if LAST.lying100 and lying100 eq 1 then

do;

duration=length-first_val;

output;

first_val=-1;

end;

run;如果你想在其中添加时间戳,对我来说这听起来更合理,那么代码应该是这样的:

代码语言:javascript复制data sequences(drop=lying100 length start_end timeline);

set test;

BY NOTSORTED lying100;

retain start_time;

format start_time datetime20.;

format end_time datetime20.;

if FIRST.lying100 and lying100 eq 1 then do;

start_time=timeline;

end;

if LAST.lying100 and lying100 eq 1 then

do;

end_time=timeline;

duration=(end_time-start_time)/60;

output;

end;

run;哪里

持续时间:将是患者开始的开始时间laying

end_time :将是患者卧床(他/她站起来)的结束时间

start_time:患者卧床的分钟数

附言:我没有使用start_end柱。

我的测试数据使我的示例完整:

代码语言:javascript复制data test;

infile datalines delimiter=',';

input lying100 length start_end $;

datalines;

0,0,

0,0,

1,1,start

1,2,

1,3,

1,4,

1,5,end

0,0,

0,0,

1,1,start

1,2,

1,3,

1,4,

1,5,

1,6,end

0,0,

0,0,

;

data test;

set test;

format timeline datetime20.;

retain timeline '07sep2018 10:00:00'dt;

timeline=timeline+5*60;

run;

相关推荐