【问题标题】:How to take average of all variables (seperately) based on indicator variable in SAS如何根据SAS中的指标变量(单独)取所有变量的平均值
【发布时间】:2020-07-03 23:43:36
【问题描述】:

我有一个包含 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     …             …              …       

提前谢谢你们!

【问题讨论】:

  • 你能告诉我们你想要的结果是什么样的吗?
  • 请查看更改:)

标签: sas conditional-statements average


【解决方案1】:

使用SAS可以使用proc表示程序,该程序主要用于计算均值、中位数、计数、总和等描述性统计量。

在您的情况下,代码类似于:

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 类似于分析变量。


输出输出是保存到某些数据集中信息的选项。

详细说明链接 enter link description here

【讨论】:

    【解决方案2】:

    看起来你只是要求这样的东西:

    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
    ;
    

    【讨论】:

      猜你喜欢
      • 2014-08-20
      • 2021-06-14
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      相关资源
      最近更新 更多