You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PROC TRANSPOSE将SAS宽格式数据集重塑为长格式?

SAS宽表转长格式解决方案

你需要的是将宽格式数据集转换为长格式,PROC TRANSPOSE完全可以实现,只是需要正确设置参数。假设原数据集名为wide,以下是实现代码:

/* 转置宽表为长表 */
proc transpose data=wide out=long(rename=(col1=value)) name=variable;
    by year quarter; /* 保持不变的分组变量 */
    var var_1 var_2 var_3; /* 需要转置的数值变量 */
run;

/* 查看结果 */
proc print data=long;
run;

代码说明:

  • by year quarter:指定转置时保持分组的变量,这两个变量会原样保留在输出数据集中。
  • var var_1 var_2 var_3:指定需要被转置的数值列,这些列的名字会变成variable列的值,对应的值会放到value列。
  • name=variable:将原变量名存储到名为variable的新列中(默认是_NAME_,这里重命名为你需要的variable)。
  • out=long(rename=(col1=value)):输出数据集命名为long,并将默认生成的数值列col1重命名为value,匹配你想要的格式。

输出结果:

运行后得到的long数据集结构如下:

year  quarter  variable   value
2000    1        var_1     5
2000    2        var_1     3
2000    3        var_1     8
2000    1        var_2     8
2000    2        var_2     11
2000    3        var_2     2
2000    1        var_3     1
2000    2        var_3     5
2000    3        var_3     10

内容的提问来源于stack exchange,提问作者alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 08:17:05