gpt4 book ai didi

r - Proc 中的 ID 语句在 SAS 中的作用是什么?

转载 作者:行者123 更新时间:2023-12-04 12:30:32 25 4
gpt4 key购买 nike

我正在将 SAS 代码复制到 R 代码中,我遇到了以下 SAS 代码片段 -

proc means data=A noprint;
by name date;
id comp_no;
var price;
id rep_dats act no;
output out= test(drop=_type_ _freq_)
median=median n=num;
run;

我知道“by”语句用于分组依据以提供该级别的统计信息。但是,“id”有什么用?为什么有两个“id”语句?我查看了 SAS 帮助,但我并没有真正理解它。我还在 http://support.sas.com/documentation/cdl/en/proc/65145/HTML/default/viewer.htm#p19dfq16fqt1t3n1eroiabnn6r3s.htm 查看了他们的示例.但是没有例子说明ID的使用。

由于我无权访问 SAS,因此无法尝试并查看输出结果。任何澄清都会对我有很大帮助。谢谢!

最佳答案

proc 意味着 过程可以计算和显示数据集的简单汇总统计信息并输出该汇总统计信息。默认情况下,它通过分析数据集中的每个数值变量来汇总数值变量(列)。

通过在 proc means 中使用带有 by 的 ID 语句,它将为每组生成一个值。这个值是 by 组中 ID 中指定的 first 变量的最大值。因此,如果您指定许多变量,例如id A B; 它将输出该组 A 的唯一最大值。

http://support.sas.com/documentation/cdl/en/proc/61895/HTML/default/viewer.htm#a000146733.htm

顺便说一句,我不知道你的数据集是什么样子,但你的proc means似乎只是总结了价格变量。

例如,如果您有一个数据集:

                        Obs    sex     A      B    C     D

1 M 20 50 1 34
2 F 500 45 3 45
3 M 200 23 7 32
4 M 120 67 5 44
5 F 400 98 2 59

然后

proc means data=sorted;
by sex;
var A B;
id D C;
output out=means(drop =_type_ _freq_);
run;

将输出:

                          sex     D    C    _STAT_       A          B

F 59 2 N 2.000 2.0000
F 59 2 MIN 400.000 45.0000
F 59 2 MAX 500.000 98.0000
F 59 2 MEAN 450.000 71.5000
F 59 2 STD 70.711 37.4767
M 44 5 N 3.000 3.0000
M 44 5 MIN 20.000 23.0000
M 44 5 MAX 200.000 67.0000
M 44 5 MEAN 113.333 46.6667
M 44 5 STD 90.185 22.1886

注意变量D中,59是F组中D的最大值,但C不是,因为D先指定了。对于 M 组也是类似的情况,其中 C 只是与 D 的最大值位于同一行的数字。

关于r - Proc 中的 ID 语句在 SAS 中的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20917534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com