搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  @@@@@Changing Data Set Variables into Macro Variables.pdf
资料下载链接地址: https://bbs.pinggu.org/a-393932.html
附件大小:
我需要把网上下载的金融数据库的csv 文件分拆成以每家公司为单位的年数据集。由于从网上下载的csv文件长短不一,所谓长短不一,指的是包括数量不等的公司年数据。另外,我可能会面临处理许多个这样的csv文件(这个csv的数量我手工填,不用编程)。


我的目标:把这些CSV文件放在一个PC文件夹里。编号1-N。然后,运行程序。将这多个文件(这次是16个)中的67家公司分解开,并形成67个数据集,统一编号,放在一个文件夹内。



下面是我的半手工的两段程序。2段程序的最后输出是:16个文件夹里放着总数为67个 文件名重复的 公司数据集。程序结束后,我要在操作系统下,再次把他们改名,并放到一个文件夹里。很蠢。




第一段:我手工把这些文件放在不同的文件夹里,目前是16个,也就是说,这次我从网上下载了16个csv文件。困境是,在形成公司的文件时,我无法把这16个文件中的67家公司连续编号,所以出此下策。我只好手工修改每次的子文件夹地址,运行这段程序。读入一个csv文件,并计数这个文件包含的公司数目。真蠢!干了2个小时。

filenumber 指:我事先编好的csv文件号:data1-data16.虽然用了do语句,其实每次只运行一遍。本来想编个通用的,发现实在费劲,所以暂时放弃,拿到网上来求大家帮忙!




macro
company_sepereation (filenumber,filename);
%do number=16 % to &filenumber;

/*程序中间的 data16都是手工改的,一共改了16次。*/

data data16.sample;
informat
RIC
$9.
date date10. /* $10. ddmmyy10.*/
Time
$10./* time10.1 */
M 4.
type $5.
price 4.
Bidprice 4.
askprice 4.
QUALIFIERS $29.
;

infile
"D:\Copy of data\data16\&filename&number..csv" firstobs=2 missover dsd;
input RIC $ DATE $ Time $ M type $ PRICE BIDPRICE Askprice QUALIFIERS $@;
run;

/*按照公司代码,编上顺序号*/
proc sort data=data16.sample;
by ric;
run;

data data16.sample1;
set data16.sample;
by ric;
if first.ric=
1 then do;
companynum+
1;
output data16.sample1 ;
end;
else do
companynum=companynum;
output data16.sample1;
end;
run;

/*通过形成每个公司摘一条记录的方法,形成一个计数数据集*/

data data16.samplecompanycount;
set data16.sample1;
by companynum;
if first.companynum=
1;
run;
data _null_;
set data16.samplecompanycount end=last;
if last then do;

/*输出这个计数,以便我可以手工利用这个计数*/
put _n_=;
end;
run;
%end;
%mend ;

%company_sepereation (
16,data);

Run;


第二段程序,转到19楼。






    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

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

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

GMT+8, 2026-1-17 19:15