楼主: huangtianxiao
1732 1

[问答] 怎么根据“目录”数据,读取对应文件名的数据? [推广有奖]

  • 1关注
  • 1粉丝

大专生

41%

还不是VIP/贵宾

-

威望
0
论坛币
212 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
384 点
帖子
38
精华
0
在线时间
42 小时
注册时间
2010-9-14
最后登录
2016-6-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我有很多很多的分开保存的数据文件,但是我只需要读取其中的一部分
这些我所需要的文件名被保存在一个单独的数据文件中
怎么编程实现根据这个好像“目录”一样的文件,读取我所需要的数据呢?

我的思路是用宏:
我是想一个一个处理这些文件
所以用宏的话应该是用一个循环,每次循环从目录文件中读取一个样本,然后再根据这个数据读取对应的文件名的数据。
但在读取目录文件的时候有两个地方卡住没有想法了
1.怎么读取指定序数的样本?
2.怎么将它保存到宏变量里去?

求各位高手指教~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:文件名 数据文件 数据读取 怎么编程 一个样 怎么编程 样本

沙发
yongyitian 发表于 2013-4-8 09:43:02 |只看作者 |坛友微信交流群

举个例子
下面是两个macro,第一个macro创建10个模拟数据集,和一个目录数据集。

第二个macro打印每一个数据集,并把所有的数据集 append 成一个数据集.

其中有怎么从目录文件中读取一个样本文件名. 可能对你有帮助.

%macro createSample;     /* create simulated 10 datasets */
       data myfiles;    /* create a dataset that hold the dataset names */
          do i=101 to 110;
            name='Data'||put(i,3.);
           output;
          end;
          drop i;
       run;

         proc sql;
           select name into :F_name separated by ' '
           from myfiles;
         quit;

    %let   N_file = %sysfunc(countw(&F_name));

    %do i=1 %to &N_file;
        %let data=%qscan(&F_name, &i, %str( ));
         data &data;
           do j=1 to 10;
             var=ranuni(&i);
             output;
           end;
         run;
    %end;

%mend createSample;
%createSample;

/* do some demo work such as print each dataset and append all the dataset together */
%macro Print_Append_data;   
    proc sql;
      select name into :F_name separated by ' '
      from myfiles;
    quit;

    %let N_file=%sysfunc(countw(&F_name));

        %do i=1 %to &N_file;
           %let data=%qscan(&F_name, &i, %str( ));
             proc print data=&data;
                run;
             proc append base=all data=&data;
                run;
             %let all=&data;
        %end;
%mend print_append_data;
%Print_Append_data;
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
huangtianxiao + 1 + 1 + 1 观点有启发,多谢!尤其是proc sql 、qscan.

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-19 01:43