在 proc 转置之后使用名称的 SAS 变量求和

标签 sas transpose summarization

我有一个表格,其中包含我转置的类别(数字)的帖子。我得到了一个表,其中每个列名称都是 _number,例如 _16、_881、_853 等(它们没有按顺序排列)。

我需要在 proc sql 中对所有这些进行求和,但我不想在数据步骤中创建变量,我也不想写所有的列名。我试过这个但不起作用:

proc sql;
select sum(_815-_16) as nnl
from craw.xxxx;
quit;

我试过从第一个数字到最后一个数字,也尝试从第一位对应的数字到最后一位对应的数字。给我一个不正确的数字。

有什么想法吗?

谢谢!

最佳答案

你不能在 SQL 中使用变量列表,所以 _:var1-var6var1--var8 不起作用.

执行此操作的最简单方法是数据步骤 View 。

proc sort data=sashelp.class out=class;
 by sex;
run;
*Make transposed dataset with similar looking names;
proc transpose data=class out=transposed;
 by sex;
 id height;
 var height;
run;
*Make view;
data transpose_forsql/view=transpose_forsql;
 set transposed;
 sumvar = sum(of _:);  *I confirmed this does not include _N_ for some reason - not sure why!;
run;

proc sql;
 select sum(sumvar) from transpose_Forsql;
quit;

关于在 proc 转置之后使用名称的 SAS 变量求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24998124/

相关文章:

SAS 文件 <lib>.<dataset>.DATA 不存在,但 proc datasets 显示数据集

sas - 使用数据线方法读取原始数据时保留前导空白

sql - Netezza SQL - 给出参数

sql - 在不使用 UNIONS 的情况下使用 MySQL 将行转换为列?

excel - 如何将记录集中的特定字段加载到组合框中

c++ - 为什么转置这个 std::vector<std::vector<std::string>> 这么慢?

r - tapply() 函数依赖于 R 中的多列

r - 在 data.table 的定义行数中进行操作

sas - 将年份变量分配给 ID

r - 如何总结 R 中的嵌套组