比较id的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比较id的数据相关的知识,希望对你有一定的参考价值。
如果ID中的变量页面和步骤相同,那么我想要按ID进行分组。
所以在这里你可以看到id 2(原始白色)和4(绿色)具有完全相同的页面和步骤。
示例2 - 在这里您还可以看到我想要的id_group变量:'
正如您所看到的,组id_group 11和12正在为两个在页面和步骤变量中具有相同功能的组提供。
因此问题是 - 如果页面组和步骤变量在id中相同,我如何动态分配相同的“组”ID?
这在SAS中甚至可能吗?如果在SAS中不可能。 Python可以做到。
答案
在SAS中,您可以使用所谓的双DOW循环(如果您想了解更多信息,可以使用Google)。这将循环遍历源表两次,第一次确定哪些ID具有相同的PAGE和STEP值,并设置GROUP_ID标志。第二次将GROUP_ID分配给具有该ID的所有记录。
data have;
input page step id;
datalines;
1 1 1
1 2 1
2 3 1
3 4 1
1 1 2
2 2 2
3 3 2
5 1 3
6 2 3
1 1 4
2 2 4
3 3 4
;
run;
data want;
do until(last.id);
set have;
by id;
if first.id then do; /* reset counts when id changes */
_count=0;
_same=0;
end;
_count+1; /* count number of records per id*/
_same+(page=step); /* count number of times page = step */
if last.id and _count=_same then do;
_flag+1; /* if count = same then increment _flag by 1 */
group_id=_flag;
end;
drop _: ; /* drop temporary variables */
end;
do until(last.id);
set have;
by id;
output;
end;
run;
以上是关于比较id的数据的主要内容,如果未能解决你的问题,请参考以下文章
将代码片段插入数据库并在 textarea 中以相同方式显示