SAS编程|数据集的转置 transpose过程

        对数据集进行转置,即行变成列,列变成行,可以使用transpose过程。transpose过程的基本语法结构如下:

proc transpose options;
    var variable-list;
    id variable;
    by variable-list;;
run;

1.语句中的options 是表示transpose过程可以使用的某些选项,其中常见的选项如下:

        data=数据集:表示将对哪个数据集进行转置,若缺失该项,则默认使用最新创建的数据集。

        out=数据集:表示将转置后的数据输出到哪个数据集。

2.var语句 列出要转置的变量,可以是字符型或数值型,多个变量以空格分开。如果省略var语句,则输入数据集中没有列在其他语句中的所有数值型变量均被转置。字符型变量若要转置必须在var中列出。

3.id语句 id语句规定输入数据集中的一个变量。id变量的值作为转置后数据集的变量名。id变量的值在输入数据集中只能出现一次;或者使用by语句,则在by组中只能出现一次。id变量缺失的观测将从输出数据集中删去。如果省略id语句,transpose过程指定名字COL1,COL2,…,COLn作为输出变量名。

4.by语句 使用by语句可以对每个by组进行转置,by变量包含在输出数据集中但没有被转置。使用by语句,要求数据集按照by语句后面的变量进行排序。

例如:

proc sort data=advs out=advs1;by USUBJID SITEID RANDNO AVISITN AVISIT ADTMC SEX AGE WEIGHT;run;
proc transpose data=advs1 out=advs2 prefix=V;
	var AVALC;
	id PARAMN;
	by USUBJID SITEID RANDNO AVISITN AVISIT ADTMC SEX AGE WEIGHT;
	idlabel PARAM;
run;

       prefix可以设置转置后的变量名以V开头,该例结果为V1,V2,…,Vn;by语句可以保留无需转置但仍然需要的变量,比如:SEX,AGE,WEIGHT;idlabel设置转置后的变量名标签为PARAM变量的值。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值