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


    proc sort排序,基本格式:

    proc sort data=<dataset> (out=<newset>);
    	by (descending) <varname1> (descending) <varname2>……;
    run;
    
    • 1
    • 2
    • 3

    proc sort过程将数据集dataset按照varname的值进行升序或者降序,输出为数据集newset;
    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述
    宽表转长表,基本格式

    proc transpose data=<dataset> out=<newset> prefix=<prefix> name=<name> label=<label>);
    	by <by1> <by2>……;
    	var <var1> <var2>……;
    run;
    
    • 1
    • 2
    • 3
    • 4

    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

  • 相关阅读:
    (171)Verilog HDL:设计一个卡诺图电路之Exams/m2014 q3
    LabVIEW学习记录4-局部变量、全局变量、共享变量
    Open3D读取文件
    【小呆的力学笔记】有限元专题之循环对称结构有限元原理
    基于Win11、CentOS7、VMWare15pro搭建Hadoop2.7.7
    【计算机组成原理之存储系统】超级详细
    10-4 Skywalking介绍,二进制与docker部署Skywalking,Skywalking收集Java博客案例,Skywalking面板介绍
    CSS:上面固定高度、下面填充满,上面消失,下面仍然填充满
    【网络篇】第二篇——IP协议与MAC地址详解
    h.264码流解析
  • 原文地址:https://blog.csdn.net/qq_43776450/article/details/125384780