gpt4 book ai didi

sas - 如何根据组内的观察(行)数删除观察?

转载 作者:行者123 更新时间:2023-12-04 14:40:14 28 4
gpt4 key购买 nike

在 Stata 中,我可以这样做:

bysort group_var: drop if _n > 6

按照 group_var 的指定,仅保留每个组中的前六个观察值。我如何在 SAS 中执行此操作?

我试过:

proc sort data=indata out=sorted_data;
by group_var;
run;

data outdata;
set sorted_data;
by group_var;
if (_n_ > 6) then delete;
run;

但这会删除整个数据集中除前六个观测值以外的所有观测值(总共只剩下六个观测值)。

最佳答案

您需要按组对每个记录进行计数。

data outdata;
set sorted_data;
by group_var;
retain count;

if first.group_var then
count = 0;

count = count + 1;
if count > 6 then delete;

drop count;
run;

关于sas - 如何根据组内的观察(行)数删除观察?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27830764/

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