楼主: wufeifeilinu
3262 6

如何利用宏进行纵向合并 [推广有奖]

  • 0关注
  • 2粉丝

已卖:2452份资源

本科生

63%

还不是VIP/贵宾

-

威望
0
论坛币
21756 个
通用积分
13.5964
学术水平
3 点
热心指数
3 点
信用等级
2 点
经验
755 点
帖子
36
精华
0
在线时间
149 小时
注册时间
2014-3-23
最后登录
2024-5-15

楼主
wufeifeilinu 学生认证  发表于 2015-12-13 20:46:05 |AI写论文
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只有最后一只股票的相关数据,求大家指教,不胜感激!!

关键词:Treasure include study Macro Hong 不胜感激 include 收益率 如何

沙发
wufeifeilinu 学生认证  发表于 2015-12-13 20:47:55
顶啊啊啊

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

板凳
wufeifeilinu 学生认证  发表于 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

7
67890 发表于 2015-12-16 03:36:44
try try proc append?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 17:57