0
我有一個如下所示的數據集。一個人可以是'被動','主動'或'其他'。我想計算一個人在被激活之前「被動」的週數。變量'start_week'表示何時「被動」法術開始。如果一個人有不止一個'被動'法術,觀察結果會重新出現在下一行,但是有不同的start_week。SAS計算多個特定法術的持續時間
ID y_1449 y_1448 y_1449 y_1450 y_1451 y_1452 y_1501 ... y_1608 start_week
01 passive passive passive passive active active active ... 5
02 other passive active active active passive active ... 3
02 other passive active active active passive active ... 7
04
...
N other other other other passive active active ... 6
我可以計算出觀察的時間只有一個法術的代碼,但是當觀測再次發生,不順心的事,並沒有持續時間的計算正確無誤。我有以下代碼:
%let period = y_1449-y_1452 y_1501-y_1553 y_1601-y_1608;
%let passive = 'passive';
%let active = 'active';
data want;
data have;
array y(*) $period;
transition_to_active=0;
weeks=0;
active_week;
do i=start_week to 62;
if y(i) in &passive. then do;
weeks=weeks+1;
end;
if y(i) in &active. and y(i+1) in &active.
and y(i+2) in &active. and y(i+3) in &active. then do;
transition_to_active=1;
active_week=i;
leave;
end;
end;
run;
這裏transition_to主動「表示該人是否實現了由「被動」爲「主動」和「active_week」表示一週的人作出這種轉變的tranistion。 任何人都可以看到爲什麼持續時間的計算不適用於多種法術?
你的數據,你對算法的描述和你的實現都有些不一致。示例記錄的所有start_week都設置爲活躍星期(從1開始)的索引,而不是所述的被動星期 - 您是否有描述倒退?爲什麼需要連續四個星期才能將轉換標記爲有效?請說明實際發生的情況,並解釋爲什麼這是不正確的,而不是僅僅說'出了什麼問題'。 –