微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SAS:如何根据 y 的每个观察值的变量名称对观察值求和以创建新变量?

如何解决SAS:如何根据 y 的每个观察值的变量名称对观察值求和以创建新变量?

我在数千行(典型)的数据集上运行 SAS 代码。我需要在一个数据步骤中创建 2 个新变量,其中包括每行的总和(基于变量名称的每个 y 观察的标题中的 X 或 Z 类别。显然我不能写出每个变量我需要总和因为在我的实际数据集中这是不可能的。我认为答案是各种循环,但没有运气在线找到我不需要列出所有变量的解决方案。

下面列出了一个小得多的示例数据集,其中包含我需要的数据在最后的样子。

到目前为止,我尝试做这样的事情,但我知道这太远了,我真的很困惑如何让它识别变量名称并在它遇到最后一个 X 或最后一个 Z 时停止。

 DATA sample1 (drop = i);
 set data; 
 do i = i to 10;
 answer = sum(i);
 end;
run

enter image description here

enter image description here

解决方法

您可以使用带有 : 的变量快捷方式引用。 of X: 表示对以变量 X 开头的所有内容求和。


data want;
set have;

sumx = sum(of X:);
sumZ = sum(of Z:);

*if you know the end of the series;
sumx = sum(of X1-X4);
sumZ = sum(of Z1-Z5);

run;

指定变量列表的不同方式是illustrated here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。