SAS|proc sort(排序)&proc transpose(转置)

proc sort排序,基本格式:

proc sort data=<dataset> (out=<newset>) (nodupkey);
    by (descending) <varname1> (descending) <varname2>......;
run;

proc sort过程将数据集dataset按照varname的值进行升序或者降序,输出为数据集newset,关键词nodupkey表示去掉重复值(需要注意的是,nodupkey根据by变量剔重);
by语句是指按照varname1进行排序,值相同时按照varname2进行排序,以此类推;
descending即降序排列,默认ascending升序;

proc transpose转置
长表转宽表,基本格式

proc transpose data=<dataset> (out=<newset> name=<name> label=<label>);
    by <by1> <by2>......;
    var <var>;
    id <id>;
    idlabel <idlabel>;
run;

name:用来定义var的新变量 的变量名(显示在表格中);
label:用来定义var的标签的新变量 的变量名(显示在表格中);
id:即取id中的值 生成新的变量(显示在表格中);
idlabel:即取idlabel中的值 生成新变量的标签(不显示在表格中);
var:var的值作为 id中的值生成新变量 的值(显示在表格中)
by:被保留的变量,控制变量的先后顺序,变量需要提前被sort,notsorted 指允许不排序;

/*长表vs转宽表vsa */
proc sort data=vs;
    by subjid avisit avisitn;
run;

proc transpose data=vs out=vsa name=a label=b;
        /*out指定输出数据集,若无指定,自动将转制后的数据集命名为data1、data2...不会覆盖原有数据集*/
        /*name,label 存储 var 变量值的变量名和标签*/
    by subjid avisit avisitn;      /*仍然需要保留为变量,包含在转置数据集中,但他们本身并不转置*/
    var aval;        /*需要转置其值的变量   <var>的变量值会成为Id语句生成的新变量的值; 在转置后的数据集中作为值的变量*/
    id paramcd;       /*ID变量的值会变成新变量名;转置后按照值生成多个变量的变量*/
    idlabel param;    /*idlabel变量的值会变成新变量的标签*/
run;

SAS|proc sort(排序)&proc transpose(转置)
宽表转长表,基本格式
proc transpose data=<dataset> out=<newset> prefix=<prefix> name=<name> label=<label>);
    by <by1> <by2>......;
    var <var1> <var2>......;
run;

prefix:为var1、var2的值指定新的变量名前缀;
name:为存储var1、var2变量名的新变量;
by:by1、by2变量可复制成多条观测,需要提前sort(注意,sort的by语句的变量是哪些,此处的变量就是哪些);
var:var1、var2指定需要转变的变量名

/*宽表vs1转长表*vsb/

proc sort data=vs1;
    by subjid avisitn avisit;
run;

proc transpose data=vs1 out=vsb /*prefix=st*/ name=param  label=paramcd; /*Name: <name>为存储<var1> <var2>变量名的新变量*/
    by subjid avisitn avisit;
    var weight height;    /*由变量变为观测值,其变量下的值转置,由宽转长*/
run;

SAS|proc sort(排序)&proc transpose(转置)

Original: https://blog.csdn.net/qq_43776450/article/details/125384780
Author: 小王很nice
Title: SAS|proc sort(排序)&proc transpose(转置)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/694706/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球