zoukankan      html  css  js  c++  java
  • 学习SAS_001_循环语句中读取数据文件

    问题:有4个TXT文件,每个文件中1个数值变量,共5个观测(如1 2 3 4 5),数据分析前,需要先用循环语句对这几个文件的数据预处理,然后用SAS语句读取文件。

    解决:

     1 data temp;
     2  do in=1 to 4;
     3  fname=cats('c:',in,'.txt');
     4  do until(last);
     5  infile XXX filevar=fname end=last;
     6  input v;
     7  output;
     8  end;
     9  end;
    10  stop;
    11  run;

    注意:
    1.DO循环:很巧妙的注意到了C盘下TXT文件名的规律性,都是一个数字命名的文件名,用变量IN,采用CATS字符串连接函数,循环创建D盘下的TXT文件名变量FNAME;
    2.在读取文本数据时,很多人都知道用INFILE,以及INFILE基本参数,XXX是文件名,filevar是打开或者关闭指定的文件名,end=last是定义一个变量了解是否读到文件的结尾处,这里的LAST与until里面的last保持一致
    3.STOP,这里为什么用STOP,这个很重要,如果去掉STOP,那么就会无线循环下去。所以当我们在DATA步里面制定读取的数据是以随机方式读取的时候,例如这个里面的IN,或者是在SET里面的POINT等,需要用STOP。Because SAS does not detect an end-of-file with this access method, you must include program statements to prevent continuous processing of the DATA step.

  • 相关阅读:
    C#: Create a WebRequest with HTTP Basic Authentication
    C# 集合
    BAT CMD 批处理文件脚本 -2
    年龄排序
    士兵买香蕉
    ACM交换生问题
    ACM卡片游戏
    ACM费马大定理
    ACM定外卖问题
    ACM汽车行程问题求最少的支付钱数
  • 原文地址:https://www.cnblogs.com/qiangshu/p/2474371.html
Copyright © 2011-2022 走看看