全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3186 6
2015-12-13
悬赏 5 个论坛币 未解决
实在不会了,在这里求助大家:
           我在做capm的验证,我现在有很多个数据集,每个数据集分别是一只股票几年的月度收益率,如何将这些数据集纵向合并,谢谢大家。

%macro a(x);
data abcress.a2;
set capm.a&x ;
run;
%mend a;
%include 'D:\Study\treasure\sas\小组作业\honga.txt';
这是我原来写的,honga是股票名字组成的txt文件,但是这样最后的结果是 abcress.a2只有最后一只股票的相关数据,求大家指教,不胜感激!!
二维码

扫码加我 拉你入群

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

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

全部回复
2015-12-13 20:47:55
顶啊啊啊
二维码

扫码加我 拉你入群

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

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

2015-12-13 22:31:54
没有看太明白楼主目前数据集的基本情况,包括honga.txt里面的内容
但是从楼主写的代码里看,肯定是没法实现纵向合并的
如果想实现纵向合并,一个set后面跟多个数据集就可以了
如果楼主考虑的是数据集太多不可能人工输入,可以考虑set语句里面嵌套一个循环宏
二维码

扫码加我 拉你入群

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

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

2015-12-14 00:12:54
Celsius256 发表于 2015-12-13 22:31
没有看太明白楼主目前数据集的基本情况,包括honga.txt里面的内容
但是从楼主写的代码里看,肯定是没法实现 ...
谢谢亲的帮助,因为有400多个数据集,显然是不能手写的,所以那个宏该如何做呢?
二维码

扫码加我 拉你入群

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

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

2015-12-14 09:25:25
%macro a(x);
data abcress.a2;
set %if %sysfunc(exist(abcress.a2,data)) %then abcress.a2; capm.a&x;;
run;
%mend a;
%include 'D:\Study\treasure\sas\小组作业\honga.txt';

二维码

扫码加我 拉你入群

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

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

2015-12-16 00:27:02
假设txt中的名字是一个一行的.

filename a'd:\a.txt';假设txt的文件名为a.txt, 给他一个逻辑名 a

data e;
infile a  ;
length a $20.; 注意此处看好文件名的最长的长度
input a $;
t=_n_;
call symput('a'||left(trim(t)),a);

run;
这样就根据文件名生成了一系列的宏变量, 分别为a1-a300, 假设一共有300个数据集.
%put _user_;

data s;
set  
    %do i=1 %to 300;

        a&i;
        %end;
        ;
run;

读进去了, 最终为s
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群