【发布时间】:2018-06-25 17:46:05
【问题描述】:
我有一个数据集,其中有一列包含所有点击数据。有 12 个主要关键字,如果在数据中找到这些关键字中的任何一个,那么软件应该给出结果,直到出现停止关键字,即“主页”和开始关键字。它应该按 ID 分组。因此,对于每个组,它都应该运行并给我输出。
例如:
Id column:
1 a
1 b
1 d
1 g
1 d
2 a
2 f
2 v
2 b
2 p
2 home
关键字是:b and f 所以软件应该从 b 开始并在遇到 home 或 b 或 f 时停止,这将是第一个输出(b d g d)然后它应该再次从 F 开始到下一个组并停止home or b or f (f v) 这将是第二个输出,然后它将再次从 b 开始,如果遇到 b,f 或 home (b,p,home) 这将是我的第三个输出。我的代码能够组成组并给我每个组中的成员,但它不会在第一个 ID 的末尾停止。例如,我得到的输出为:第一个输出:b d g d a
我不应该得到'a'。
代码是:
data want ;
set have ;
retain group 0 member 0 ;
if member then member+1;
if column in ('b','f') then do;
member=1;
group+1;
end;
if member then output;
if column = 'home' then member=0;
run;
【问题讨论】:
-
按原样运行您的代码时没有得到该结果。你能证实你做到了吗? (即,我将其复制/粘贴到我的编辑器,在第一个周围添加了必要的输入内容......)
-
对不起乔我刚刚编辑了输入数据现在你可以试试
-
所以你没有
home为 1,但你想让它检测到 ID 号的变化并停在那里?