英文:
Count number of observations used to calculate the mean in SAS
问题
我想生成一个名为n的新列,用于回答以下问题:平均值是从多少个级别计算得出的?1个级别还是2个级别还是3个级别?
有没有一种方法可以在不将数据从长格式转换为宽格式的情况下计算N?N应该告诉我们计算平均值所需的观测数量。谢谢。
我的输入数据集如下:
input entity $ level $ value mean;
datalines;
A Level1 5.85 5.9
A Level2 5.95 5.9
B Level1 0.12 0.12
B Level2 0.12 0.12
B Level3 0.12 0.12
C Level1 0.8 0.8
C Level2 . 0.8
D Level1 . 0.23
D Level2 . 0.23
D Level3 0.23 0.23
E Level1 9.6 9.35
E Level2 9.1 9.35
F Level1 . 3.9
F Level2 3.9 3.9
;```
<details>
<summary>英文:</summary>
I want to generate a new column n which will answer the question: How many levels was the mean calculated from? 1 or 2 or 3?
Is there a way to calculate N without converting the data from long to wide format? N should tell us the number of observations that were required to calculate the mean. Thank you.
My input dataset is:
```data inputdata;
input entity $ level $ value mean;
datalines;
A Level1 5.85 5.9
A Level2 5.95 5.9
B Level1 0.12 0.12
B Level2 0.12 0.12
B Level3 0.12 0.12
C Level1 0.8 0.8
C Level2 . 0.8
D Level1 . 0.23
D Level2 . 0.23
D Level3 0.23 0.23
E Level1 9.6 9.35
E Level2 9.1 9.35
F Level1 . 3.9
F Level2 3.9 3.9
;```
</details>
# 答案1
**得分**: 0
不同的方法计算均值的方式相同。
因此,如果您使用PROC SUMMARY,除了MEAN统计信息之外,还要请求N统计信息。
```sas
proc summary data=have ;
by entity level ;
var value;
output out=means mean=mean n=n ;
run;
如果您使用PROC SQL,则可以在MEAN()聚合函数之外使用N()聚合函数。您还可以使用COUNT()聚合函数。
proc sql;
create table want as
select entity,level,value,n(value) as n,mean(value) as mean
from have
group by entity,level
;
quit;
英文:
Just do it the same why you calculated the mean.
So if you use PROC SUMMARY then ask for the N statistic in addition to the MEAN statistic.
proc summary data=have ;
by entity level ;
var value;
output out=means mean=mean n=n ;
run;
If you use PROC SQL then use the N() aggregate function in addition to the MEAN() aggregate function. You could also use the COUNT() aggregate function.
proc sql;
create table want as
select entity,level,value,n(value) as n,mean(value) as mean
from have
group by entity,level
;
quit;
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论