问题描述
我正在研究交互日记数据集。我清理了发送给我的这个数据文件,但是清理它的人没有添加我需要分析的索引变量。所以:
参与者在 X 天的时间内完成了每次互动的调查问卷。这意味着参与者每天可能有多个记录(交互日记)。要进行分析,我需要 3 个索引变量 - Person_id、DiaryDay 和 InterOnDay。像这样:
Person_ID | DiaryDay | InterOnDay |
---|---|---|
2300 | 1 | 1 |
2300 | 1 | 2 |
2300 | 2 | 1 |
2300 | 2 | 2 |
2300 | 2 | 3 |
2300 | 3 | 1 |
我有前两个索引变量,但缺少 InterOnDay。
值得注意的是,日记天数因人而异,记录的互动次数因人而异。
我想我需要做 DO 循环,但我完全不知道如何做。有没有人对这段代码的外观有任何建议? 到目前为止,这是我所拥有的,但我知道这还不够代码。
DATA WORK.TEST;
SET WORK.DT;
by ID DATetoDAY;
do IntOnDay = 1 to ;
output;
end;
run;
解决方法
我认为这就是你想要的。
data have;
input Person_ID DiaryDay;
datalines;
2300 1
2300 1
2300 2
2300 2
2300 2
2300 3
;
data want;
set have;
by Person_ID DiaryDay;
if first.DiaryDay then InterOnDay = 0;
InterOnDay + 1;
run;