如何根据SAS中的指标变量(分别)取所有变量的平均值
How to take average of all variables (seperately) based on indicator variable in SAS
我有一个包含 100 个变量的数据集,我想根据指示哪些值取平均值的指示变量分别取所有变量的平均值。所以我有以下内容:
Id Var1 Var2 Var3 Take_Avg
1 … … … 1
2 … … … 2
3 … … … 3
4 … … … 9999
5 … … … 9999
6 … … … 9999
7 … … … 7
8 … … … 8
9 … … … 99999
10 … … … 99999
11 … … … 99999
12 … … … 99999
13 … … … 99999
14 … … … 14
15 … … … 15
所以对于 id1,我只需要 Var1、2 和 3 的值(因为平均值将产生与我已有的相同值)。对于 id 4 到 6,我分别需要 Var1、2 和 3 的平均值。
我尝试创建它并在 Group By
语句中取所有变量的平均值,但我不知道如何做。有办法吗?
我想要的结果如下所示:
Id avg(Var1) avg(Var2) avg(Var3)
1 … … …
2 … … …
3 … … …
4 avg(id 4-6) avg(id 4-6) avg(id 4-6)
7 … … …
8 … … …
9 avg(id 9-13) avg(id 9-13) avg(id 9-13)
14 … … …
15 … … …
提前谢谢大家!
看起来你只是在问这样的事情:
select take_avg
, min(id) as new_id
, mean(var1) as mean_var1
, mean(var2) as mean_var2
, mean(var3) as mean_var3
from have
group by take_avg
;
使用SAS可以使用程序proc means,这个程序主要用于计算描述性统计,如均值、中位数、计数、求和等
在您的情况下,代码类似于:
Proc Means data = your_data_set MEAN;
Class ID;
Var var1 - var3;
Output out = your_output_data_set mean= /autoname;
Run;
class类似于group by.
var类似于分析变量
output out是保存到某些数据集中信息的选项。
link 详解
enter link description here
我有一个包含 100 个变量的数据集,我想根据指示哪些值取平均值的指示变量分别取所有变量的平均值。所以我有以下内容:
Id Var1 Var2 Var3 Take_Avg
1 … … … 1
2 … … … 2
3 … … … 3
4 … … … 9999
5 … … … 9999
6 … … … 9999
7 … … … 7
8 … … … 8
9 … … … 99999
10 … … … 99999
11 … … … 99999
12 … … … 99999
13 … … … 99999
14 … … … 14
15 … … … 15
所以对于 id1,我只需要 Var1、2 和 3 的值(因为平均值将产生与我已有的相同值)。对于 id 4 到 6,我分别需要 Var1、2 和 3 的平均值。
我尝试创建它并在 Group By
语句中取所有变量的平均值,但我不知道如何做。有办法吗?
我想要的结果如下所示:
Id avg(Var1) avg(Var2) avg(Var3)
1 … … …
2 … … …
3 … … …
4 avg(id 4-6) avg(id 4-6) avg(id 4-6)
7 … … …
8 … … …
9 avg(id 9-13) avg(id 9-13) avg(id 9-13)
14 … … …
15 … … …
提前谢谢大家!
看起来你只是在问这样的事情:
select take_avg
, min(id) as new_id
, mean(var1) as mean_var1
, mean(var2) as mean_var2
, mean(var3) as mean_var3
from have
group by take_avg
;
使用SAS可以使用程序proc means,这个程序主要用于计算描述性统计,如均值、中位数、计数、求和等
在您的情况下,代码类似于:
Proc Means data = your_data_set MEAN;
Class ID;
Var var1 - var3;
Output out = your_output_data_set mean= /autoname;
Run;
class类似于group by.
var类似于分析变量
output out是保存到某些数据集中信息的选项。
link 详解 enter link description here