楼主: lifeng1982819
2551 1

如何对多个数据集批量增加变量 [推广有奖]

  • 0关注
  • 0粉丝

已卖:3份资源

大专生

5%

还不是VIP/贵宾

-

威望
0
论坛币
2973 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
300 点
帖子
40
精华
0
在线时间
42 小时
注册时间
2005-10-24
最后登录
2019-1-7

楼主
lifeng1982819 发表于 2016-4-17 17:07:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
各位好!
     我有一些数据集,数据集名是按照时间命名的,如mydata20130101,因为要将数据集合并,为了区分来自不同的时间,现在想在这些数据集中增加一列时间变量,该变量值等于所在数据集的变量名里的时间,请问如何写程序?
谢谢
二维码

扫码加我 拉你入群

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

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

关键词:数据集 Data 时间变量 变量值 各位好 如何 程序 命名

沙发
孤单的我们 发表于 2016-4-18 09:53:37
  1. /*假设mydata20130101等一系列数据集的路径为&path*/
  2. /*读取数据集的名称*/
  3. options noxwait noxsync;
  4. filename filelst pipe "dir ""&path"" /b ";
  5. data filelist;
  6.    infile filelst length=reclen ;
  7.    input name $varying1024. reclen ;
  8.    if scan(name,2,".")="sas7bdat" & substr(name,1,6)='mydata';
  9.    name=scan(name,1,".");
  10.    date=scan(name,1,"mydata");
  11. run;
  12. /*生成宏变量*/
  13. data _nul_;
  14.         set filelist nobs=nobs;
  15.         call symputx('nobs',nobs);
  16.         call symputx('name'||strip(put(_n_,best.)),strip(name)||"(in=in"||strip(put(_n_,best.))||") ");
  17.         call symputx('date'||strip(put(_n_,best.)),date);
  18. run;

  19. /*纵向合并*/
  20. %macro test;
  21.         data want;
  22.                 set %do i=1 %to &nobs; &&name&i  %end; ;
  23.                  %do j=1 %to &nobs;if in&j then date=input("&&date&j",yymmdd10.);%end;
  24.                  format date yymmdd10.;
  25.         run;
  26. %mend;
  27. %test;
复制代码

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

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