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

使用PROC TRANSPOSE转置数值列同时保留日期与HourEnd字段

SAS实现长表转指定结构宽表方案

前置准备

假设原始数据集名称为have,首先需要按分组字段排序,保证转置时分组逻辑正常运行:

proc sort data=have;
    by Date HourEnd;
run;

转置实现代码

直接使用PROC TRANSPOSE即可实现需求,参数配置如下:

proc transpose data=have out=want(drop=_NAME_) prefix=Meter;
    by Date HourEnd;
    id Meter_ID;
    var Value;
run;

参数说明

  • by Date HourEnd:指定分组维度,每个唯一的日期+小时组合对应输出数据集的一行,自动保留两个字段的原始值
  • id Meter_ID:指定用Meter_ID的取值作为新生成列的名称后缀
  • prefix=Meter:给新生成的列增加统一前缀,最终生成Meter100、Meter200、Meter300的列名,完全符合输出要求
  • var Value:指定需要转置填充到新列的数值为原Value字段
  • drop=_NAME_:去掉PROC TRANSPOSE默认生成的_NAME_冗余字段,不需要清理冗余可直接删除该配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:06:04