为交互日记数据添加索引变量

问题描述

我正在研究交互日记数据集。我清理了发送给我的这个数据文件,但是清理它的人没有添加我需要分析的索引变量。所以:

参与者在 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;