SAS DM数据准备读书笔记4(行列转换RollUp)

本文介绍了SAS数据准备过程中常见的行列转换RollUp操作,讲解了如何将类别变量转换为行变量,以适应分析需求。通过一个实际例子展示了 Multilevel RollUp 和 Simple RollUp 的区别,并提供了详细的SAS程序实现步骤,包括数据排序、分类汇总、PROC TRANSPOSE转置操作等。此外,还探讨了如何将此类程序转化为宏程序以提高复用性。
摘要由CSDN通过智能技术生成

一般数据库的设计是从系统稳定和效率的角度来设计,而分析主要考虑到分析方法或者应用软件所容易接受的数据结构。因此,多多少少要进行些数据结构的调整。其中行列转换就是最常用使用的步骤。

本例子中讨论如何将类别变量的值转变为变量,比如要将下图中左边表中的2003年6月的checking账户变为行变量。这样就会生成以下几个字段:

Customer ID, C6,C7,C8,S6,S7,S8,C6代表6月的Checking账户,S6代表6月的Savings账户。(这里先不讨论,为什么要这样,只先讨论,要实现这样,需要怎么做)

这个转换叫做(Multilevel Rollup)因为转换了Date和Acccount Type两个变量,如果只转换1个变量,则为(Simple RollUp)

RollUp

【程序实现】

 

1.数据程序在教材P75页,从PDF中COPY的文字,没有换行,懒得去处理了,有兴趣的自己动手。

2.计算月份变量

data Trans;set Transaction;Month = month(TransDate);run;

3.按分类字段进行排序,以便做汇总。交易数据一般是按发生时间进行记录的,因此,需要按分析时间要求进行汇总,如按天或者按月。

proc sort data=Trans;by CustID month AccountType;run;

4.按用户、月份、以及账户类型进行汇总。这里使用到了first.variable last.variable retain PDV OUTPUT等这些基础知识点,如果不清楚,可以参考SAS Training Kits:PROG II,里面有很详细的说明。这个方法是SAS DAT

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值