zoukankan      html  css  js  c++  java
  • [转载]SAS 通过libname将dataset输出至excel时可能遇到的问题

    1. 变量label无法正常输出?
    解决途径:
    增加(dblabel=yes)。
    libname xls excel "E:example.xls";
    data xls.sheet1 (dblabel=yes);
     set test;
    run;
    libname xls clear;

    2. format无效?
    解决途径:
    第一步,做一份excel模板,将每列数据的格式配置好;
    第二步,使用x命令,复制模板。
    x 'copy "E:template.xls" "E:output to excel file by libname.xls" & exit';
    第三步,将数据输出至"E:output to excel file by libname.xls"中的指定位置。

    3. 输出至指定位置?
    解决途径:
    第一步,打开目标excel,打开“名称管理器”,建立名称为“test_in_xls_1”的变量,并配置该变量定义的区域。保存并退出;
    第二步,使用如下代码输出。
    libname xls excel "E:example.xls";
    proc sql;
     drop table xls.test_in_xls_1;
    quit;
    data xls.test_in_xls_1 (dblabel=yes);
     set test;
    run;
    libname xls clear;

    4. sheet1与'sheet1$'n的区别?
    data xls.'sheet1$'n; * 指向excel的sheet1 ;
    data xls.sheet1;    * 指向excel的名称管理器中名为sheet1的变量定义的区域 ;

    5. 要输出的数据行数超过65535行?
    解决途径:
    使用宏,分块输出。
    %macro xls_output_macro(sor_tab);
    %let flag = %sysfunc(open(&sor_tab,is));  
    %if &flag. eq 0 %then %do;  
        %put '数据集不存在';  
    %end;  
    %else %do;  
        %let close = %sysfunc(close(&flag.)); 
     data _null_;
      set &sor_tab. nobs=n;
      call symput('tot_page', ceil(n/65000));
      stop;
     run;
     
     libname xls excel "E:input_or_output_filetext.xls";
     %do ii = 1 %to &tot_page.;
      %let start_obs = %eval_r((&ii.-1)*65000+1);
      %let end_obs = %eval_r(&ii.*65000);
      data xls.page_&ii. (dblabel=yes);
       set &sor_tab.(firstobs=&start_obs. obs=&end_obs.);
      run;
     %end;
     libname xls clear;
    %end;
    %mend;
    *example: %xls_output_macro(sor_tab = test) ;

  • 相关阅读:
    面试精选:链表问题集锦
    经典排序算法总结与实现 ---python
    Python高级编程–正则表达式(习题)
    Python面试题汇总
    Python正则表达式
    Linux下的Libsvm使用历程录
    在 linux(ubuntu) 下 安装 LibSVM
    过拟合
    百度历年笔试面试150题
    MATLAB 的数据类型
  • 原文地址:https://www.cnblogs.com/wdkshy/p/12455656.html
Copyright © 2011-2022 走看看