在 SAS 中附加 csv 文件

发布于 2024-10-16 18:37:16 字数 963 浏览 5 评论 0原文

我有一堆 csv 文件。每个数据集都有不同时期的数据:

filename file1 'JAN2011_PRICE.csv';
filename file2 'FEB2011_PRICE.csv';
...

我是否需要手动创建中间数据集,然后将它们全部附加在一起?有更好的方法吗?

解决方案

从文档中最好使用:

data allcsv;
       length fileloc myinfile $ 300;
       input fileloc $ ; /* read instream data       */

      /* The INFILE statement closes the current file 
         and opens a new one if FILELOC changes value 
         when INFILE executes                        */
       infile my filevar=fileloc 
              filename=myinfile end=done dlm=','; 

      /* DONE set to 1 when last input record read  */
       do while(not done);
      /* Read all input records from the currently  */
      /* opened input file                          */
         input col1 col2 col3 ...;
         output;
       end;
       put 'Finished reading ' myinfile=; 
datalines;
path-to-file1
path-to-file2
...
run;

I have a bunch of csv files. Each has data from a different period:

filename file1 'JAN2011_PRICE.csv';
filename file2 'FEB2011_PRICE.csv';
...

Do I need to manually create intermediate datasets and then append them all together? Is there a better way of doing this?

SOLUTION

From the documentation it is preferable to use:

data allcsv;
       length fileloc myinfile $ 300;
       input fileloc $ ; /* read instream data       */

      /* The INFILE statement closes the current file 
         and opens a new one if FILELOC changes value 
         when INFILE executes                        */
       infile my filevar=fileloc 
              filename=myinfile end=done dlm=','; 

      /* DONE set to 1 when last input record read  */
       do while(not done);
      /* Read all input records from the currently  */
      /* opened input file                          */
         input col1 col2 col3 ...;
         output;
       end;
       put 'Finished reading ' myinfile=; 
datalines;
path-to-file1
path-to-file2
...
run;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

给妤﹃绝世温柔 2024-10-23 18:37:16

要将一堆 csv 文件读入单个 SAS 数据集,您可以使用 SAS 文档中所述的单个数据步骤 此处。您需要本节中的第二个示例,该示例使用 filevar= infile 选项。

没有理由创建中间数据集。

To read a bunch of csv files into a single SAS dataset, you can use a single data step as described in the SAS documentation here. You want the second example in this section which uses the filevar= infile option.

There should be no reason to create intermediate datasets.

戒ㄋ 2024-10-23 18:37:16

最简单的方法是使用通配符。

filename allfiles '*PRICE.csv';

data allcsv;
 infile allfiles end=done dlm=',';
 input col1 col2 col3 ...;
run;

The easiest method is to use a wildcard.

filename allfiles '*PRICE.csv';

data allcsv;
 infile allfiles end=done dlm=',';
 input col1 col2 col3 ...;
run;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文