在SAS中,如何在每个'ID'的'Number'列中找到丢失的数字?
例如,ID 1003的最大值为6,显然缺少数字5.我有大约4000行要查看,因此手动执行此操作不会发生。
非常感谢任何帮助!我很难过。
ID Number
1002 2
1002 1
1003 6
1003 4
1003 3
1003 2
1003 1
1005 4
1005 3
1005 2
1005 1
1007 1
1009 3
1009 2
1009 1
答案 0 :(得分:0)
无需为您编写代码,这里是一个方法的概述...
答案 1 :(得分:-1)
在使用DATALINES输入您在问题中提供的数据后,我运行了以下代码。
首先按ID转置数据:
proc sort data=mydata; by id; run;
proc transpose data =mydata out=transposed prefix=number_;
by ID;
var number;
id number;
run;
下一步只是对变量名重新排序,retain语句在此步骤中不执行任何其他操作。
data transposed_and_ordered;
retain id _name_ number_1 number_2 number_3 number_4 number_5 number_6;
set transposed;
run;
上面的两个步骤(以及DATALINES输入步骤)产生了以下数据集transposed_and_ordered:
-------------------------------------------------------------------------------
|ID | NAME | number_1 | number_2 | number_3 | number_4 | number_6 |
-------------------------------------------------------------------------------
|1002 | number | 1 | 2 | | | |
-------------------------------------------------------------------------------
|1003 | number | 1 | 2 |3 |4 |6 |
-------------------------------------------------------------------------------
|1005 | number | 1 | 2 |3 |4 | |
-------------------------------------------------------------------------------
|1007 | number | 1 | | | | |
-------------------------------------------------------------------------------
|1009 | number | 1 | 2 |3 | | |