Sas 在变量中选择满足计数条件的组
我有一个关于组的变量,我们会说它们是颜色。我只需要选择5-10次观察的颜色。然后,我将对每一组进行测试。我该怎么做呢Sas 在变量中选择满足计数条件的组,sas,Sas,我有一个关于组的变量,我们会说它们是颜色。我只需要选择5-10次观察的颜色。然后,我将对每一组进行测试。我该怎么做呢 我使用的是SAS大学版。您也可以使用proc sql执行此操作。下面的方法将允许您保留所有观察结果,但允许您根据需要在程序中灵活应用过滤器 have _________________ grouping y1 x1 x2 1 5 10 20 1 6 20 40 2 7 30 60 2 4 40 0 2
我使用的是SAS大学版。您也可以使用proc sql执行此操作。下面的方法将允许您保留所有观察结果,但允许您根据需要在程序中灵活应用过滤器
have
_________________
grouping y1 x1 x2
1 5 10 20
1 6 20 40
2 7 30 60
2 4 40 0
2 6 50 1
_________________
proc sql noprint;
create table want as
select t1.grouping, y1, x1, x2, nobs
from have as t1
LEFT JOIN
(select grouping, count(y1) as nobs
from have
group by grouping) as t2
ON t1.grouping= t2.grouping
order by t1.grouping
;
quit;
这将为您提供如下数据集:
want
______________________
grouping y1 x1 x2 nobs
1 5 10 20 2
1 6 20 40 2
2 7 30 60 3
2 4 40 0 3
2 6 50 1 3
现在,您可以使用新变量nobs在此数据集上应用过滤器,使用您希望使用的任何程序。例如:
proc glm data=want;
where nobs between 5 and 10;
class grouping;
model y1 = x1 x2;
run;
如果您的意思是有一个定义组的变量,例如一个名为COLOR的变量,其值为“RED”和“GREEN”。然后,如果要仅为至少有5个观察值的组选择观察值,则必须计算每个组的观察值数量 因为您没有发布任何样本数据,所以让我们使用SASHELP.CLASS,它具有可变的性别,可用于将9名女生和10名男生分组。因此,让我们编写一个查询,只返回至少有10个观察结果的组,即男生 使用GROUPBY和HAVING子句使用PROC SQL很容易做到这一点
proc sql;
create table want as
select * from sashelp.class
group by sex
having count(*) > 9
;
quit;
请注意,这在SAS中运行良好,但在其他SQL实现中可能不起作用。谢谢,@Tom。我完全没有考虑使用我刚刚创建的新表。已经有一段时间了。只是想继续我的工作:
PROC SORT data=SPEAR.MAN;
by var1;
RUN;
PROC SQL;
CREATE table COUNT as select * from SPEAR.MAN
GROUP by var1 having count (*) ge 5;
QUIT;
PROC CORR data=WORK.COUNT spearman nosimple;
var var2 var3;
by var1;
RUN;
这不适用于堆栈溢出问题。请尝试解决此问题并就此提出问题。您是在问如何专门使用SAS程序来解决此问题吗?对不起。我不明白这为什么不合适。我正在使用SAS大学。我可以按分组执行测试,但我只需要选择具有5-10个观察值的组。我昨天搜索了一整天来解决这个问题,但除了为每个组创建一个新的数据集之外,我找不到任何帮助。这个问题不合适,因为据我所知,你不是在问编程问题。如果你是,那么你没有问一个足够具体的问题——这个网站不是让别人为你写一个大型程序,而是回答一些狭隘的、具体的编程问题。有关更多信息,请参阅和。如果您需要有关SAS大学版的点击式元素的帮助,则需要在适当的网站上询问该问题,例如。这只是编程方面的问题。非常感谢。这非常有用。我还没有用过。我将进一步探讨这一点。我唯一想到的是当时是不是在哪里,但那是行不通的。然后,我需要对每一组进行Spearman等级测试,但每次只做一件事:再次感谢您对患者的帮助。您应该能够使用PROC CORR完成这项工作。使用BY语句为每个组运行单独的分析。这应该是可行的。请注意,现在SAS将创建按变量分组排序的输出数据,但根据文档,将来可能会更改。如果要依赖于顺序,最好包含一个显式的ORDERBY子句,如在BY语句的最后一步中所做的。