【发布时间】:2017-10-04 11:53:12
【问题描述】:
我想在 SAS 中创建一个迭代循环来计算每个 id 我的数据的平均值,如下所示:
【问题讨论】:
-
首先sass,sas和ssas是完全不同的东西。然后,在此站点上,您应该提供示例数据、所需的输出并用代码向我们展示您已经尝试过的内容。示例数据最好以可以复制粘贴的文本形式给出,而不是图片链接。
我想在 SAS 中创建一个迭代循环来计算每个 id 我的数据的平均值,如下所示:
【问题讨论】:
在 SAS 数据步骤中,您使用 do 循环进行迭代处理 https://blogs.sas.com/content/iml/2011/09/07/loops-in-sas.html。
但是,要获得每个想法的平均值,SQL 通常要简单得多。
proc sql;
select id, mean(value)
from data
group by id
;
quit;
【讨论】:
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;
您也可以将 var(mean) 替换为 mean(value)= my_mean
【讨论】: