• 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

    在这里插入图片描述

  • 相关阅读:
    ubuntu18.04系统android studio 搜索文本快捷键不出来的解决办法
    由GEE生成逐月MODIS的NDVI影像
    react18【系列实用教程】useReducer —— 升级版的 useState (2024最新版)
    API架构的选择,RESTful、GraphQL还是gRPC
    自考重庆工商大学难不难?
    下载HTMLTestRunner并修改
    【LeetCode与《代码随想录》】数组篇:做题笔记与总结-JavaScript版
    一种分布式深度学习编程新范式:Global Tensor
    内存管理(一)——内存分配
    【树莓派不吃灰】使用frp内网穿透,实现远程访问树莓派
  • 原文地址:https://blog.csdn.net/qq_43776450/article/details/125384780