一段时间以来,我一直在尝试使用PROC SQL
和GROUPBY
折叠数据集,但仍未成功,我想知道是否能得到一些帮助。这是我正在尝试做的一个例子。假设我们有以下数据:
id year parent_id age
"01" 1990 "23" 17
"01" 1991 "23" 18
"01" 1992 "23" 19
"02" 1978 "18" 24
"02" 1979 "18" 25
我们想通过id
多年来保留min
age
的行来折叠来获取以下数据集
id year parent_id age
"01" 1990 "23" 17
"02" 1978 "18" 24
我尝试了类似的方法
proc sql;
CREATE TABLE output_tablename as
SELECT DISTINCT id, year, parent_id, min(age) as age
FROM input_tablename
GROUPBY id;
quit;
无济于事。
答案 0 :(得分:3)
您可以使用HAVING子句仅选择age = min(age)的记录。
proc sql;
create table want as
select * from have
group by ID
having age=min(age);
quit;
PROC SORT选项:
proc sort data=have; by id descending age;
run;
proc sort data=have nodupkey out=want;
by id;
run;