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

调整SAS数据集结构:将宽表转换为含颜色与数值的长表

SAS宽表转长表解决方案

直接用数组配合单循环就能实现宽表到长表的转换,修正后的代码如下:

data Dataset1new;
    set Dataset1;
    /* 定义数组包含所有颜色列,*让SAS自动计算元素数量 */
    array colors[*] Black Gray Red White;
    /* 遍历数组每个元素 */
    do i = 1 to dim(colors);
        Color = vname(colors[i]); /* 获取当前数组元素的变量名作为颜色值 */
        Number = colors[i];       /* 获取当前数组元素的数值 */
        output;                   /* 输出当前行到新数据集 */
    end;
    /* 丢弃不需要的变量 */
    drop i Black Gray Red White;
run;

关键说明:

  • 去掉了多余的input语句:原数据集已有数据,无需重新输入
  • 用array定义颜色列集合:把所有需要转换的列放进数组,简化循环逻辑
  • 单循环替代双重循环:只需遍历数组的每个元素,无需行/列双重循环
  • 必须加output:每次循环生成一条新记录,不加的话只会输出最后一次循环的结果
  • dim(colors)自动获取数组长度:不用手动写元素个数,后续增减颜色列时无需修改循环条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 23:42:01