如何使用迭代方法在SAS中创建循环并打印结果
我想在SAS中进行迭代循环,计算每个id的平均值,我的数据如下: 在SAS数据步骤中,使用do循环进行迭代处理 然而,要获得每个想法的平均值,SQL通常要简单得多如何使用迭代方法在SAS中创建循环并打印结果,sas,ssas,sas-macro,Sas,Ssas,Sas Macro,我想在SAS中进行迭代循环,计算每个id的平均值,我的数据如下: 在SAS数据步骤中,使用do循环进行迭代处理 然而,要获得每个想法的平均值,SQL通常要简单得多 proc sql; select id, mean(value) from data group by id ; quit; 您还可以用meanvalue=my_mean替换varmean首先,sas和SSA是完全不同的东西。然后,在这个站点上,您需要提供示例数据、所需输出,并用代码向我们展示您已经尝试过的内容。示例
proc sql;
select id, mean(value)
from data
group by id
;
quit;
您还可以用meanvalue=my_mean替换varmean首先,sas和SSA是完全不同的东西。然后,在这个站点上,您需要提供示例数据、所需输出,并用代码向我们展示您已经尝试过的内容。示例数据最好以文本形式提供,可以复制粘贴,而不是图片链接。这非常有用,谢谢。但是我仍然在寻找do循环。你特别是在这个上下文中寻找do循环吗?还是一般?我不认为有理由使用do循环来解决每个id的平均问题。如果您想了解循环在SAS中的工作原理,请阅读我链接的文章。谢谢。在这个问题中,我提供了一个数据样本。我有上千条记录,我需要做一些运算,比如不同记录的总和和平均值。这就是为什么我问这个循环。你能帮我回答这个问题吗?你发了吗?我看了一下,但问题的表述非常糟糕。这篇文章应该进行大量编辑,以使其更加清晰,提供样本数据,期望的输出,等等…谢谢,这是一件很酷的事情。进程太慢,因为我有数千条记录。@user2975180您可以使用data=begin noprint;输出=mean_sas_data命令。这对于proc sql中数据集太大的情况非常有用。
data begin;
input id value;
cards;
1 10
1 20
1 5
2 9
2 6
3 50
3 20
3 44
3 79
; run;
proc sort data=begin; by id; run; /*This is not needed in our case, but it is good practice to always sort in SAS.*/
proc means data=begin;
by id; /*These are variables you count by*/
var value; /*The value you count the mean by. You also get additional values. */
run;