• SAS拆分数据集


    2012年8月8日
    主要是根据选取条件来进行拆分
    1、根据行数来选:
    data test;
    set oldset;
    if _n_=10 then output;
    if id="001" then output;
    run;
    输出第10行的数据行和ID="001"的数据行并形成数据集test;
    2、用where语句
    3、用firstobs和obs的组合来截取一部分数据行
    data test;
    set oldset(firstobs=10 obs=1000);
    run;
    
    4、Select 语句 (课本中方法)
    
    data c9501m c9501f;
    

    set c9501;

    select(sex);

    when ('男') output c9501m;

    when ('女') output c9501f;

    otherwise put sex='有错';

    end;

    drop sex;

    run;

    proc print data=9501m;run;

    proc print data=9501f;run;

    一个具体例子 (转自:人大经济论坛)

    现有2.78G的csv格式数据

    其中var1是形如“20110829”的字符串,有1999~2012的数据

    需要按年把数据拆分开,分别保存,以便接下来的处理。

    求程序代码


    在论坛网友的帮助下,问题基本解决了,以下是我自己的代码:
    data cd;
    infile 'D:fdatacust_done.csv'
    DLM = ','
    DSD
    missover
    firstobs=2;
    input date$ exch$ id variety$ del$ price$ vol$ short$ tb$ close$ fee method$ time$ 
    pervol force$;
    run;

    proc print data=cd (obs = 10);
    run;
    data cd1;
    set cd;
    year=substr(date,1,4);
    run;
    data  cd1999 cd2000 cd2001 cd2002 cd2003 cd2004 cd2005 cd2006 cd2007 cd2008 cd2009 
    cd2010 cd2011 cd2012;
    set cd1;
    select(year);
    when ('1999') output cd1999;
    when ('2000') output cd2000;
    when ('2001') output cd2001;
    when ('2002') output cd2002;
    when ('2003') output cd2003;
    when ('2004') output cd2004;
    when ('2005') output cd2005;
    when ('2006') output cd2006;
    when ('2007') output cd2007;
    when ('2008') output cd2008;
    when ('2009') output cd2009;
    when ('2010') output cd2010;
    when ('2011') output cd2011;
    when ('2012') output cd2012;
    end;
    run;

     
  • 相关阅读:
    mysql导sql脚本
    oracle导sql脚本
    基于jdk proxy的动态代理模式
    vue组件之组件的生命周期
    vue组件之组件间的通信
    python-爬虫scrapy框架安装及基本使用
    mongdb的使用
    python-爬虫 多线程爬虫
    python-爬虫 爬虫利器BeautifulSoup
    python-爬虫lxml库
  • 原文地址:https://www.cnblogs.com/zhangleisanshi/p/5168764.html
Copyright © 2020-2023  润新知