gpt4 book ai didi

group-by - 使用 PROC SQL 折叠 SAS 中的数据

转载 作者:行者123 更新时间:2023-12-02 21:43:28 25 4
gpt4 key购买 nike

我尝试使用 PROC SQLGROUPBY 来折叠数据集已经有一段时间了,但没有成功,我想知道是否可以获得一些帮助。这是我正在尝试做的一个例子。假设我们有以下数据:

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;

无济于事。

最佳答案

您可以使用 HAVING 子句仅选择年龄 = min(age) 的记录。

   proc sql;
create table want as
select * from have
group by ID
having age=min(age);
quit;

过程排序选项:

proc sort data=have; by id descending age;
run;
proc sort data=have nodupkey out=want;
by id;
run;

关于group-by - 使用 PROC SQL 折叠 SAS 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53344174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com