楼主: 人生海海
3485 3

[原创博文] (求助)如何提取每个数据集的最后一行,生成一个新的数据集 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

32%

还不是VIP/贵宾

-

威望
0
论坛币
360 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1722 点
帖子
81
精华
0
在线时间
181 小时
注册时间
2005-6-15
最后登录
2014-8-21

楼主
人生海海 发表于 2009-10-6 14:21:18 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
已经有这样一批数据集,每个数据集名为data&i,每个数据集行数不同

data1为
    rq                      mc          mr      
2009-01-06        1111        1233
2009-01-07        1611        1293     
2009-01-08        1311        1933     
2009-01-09        1121        1203     
2009-01-12        1115        1663


data2为
    rq                      mc          mr      
2009-01-15        1111        1233
2009-01-17        1211        1263     
2009-01-18        1311        1953     


请问如何提取每个数据集的最后一行,生成一个新的数据集test?谢谢!
二维码

扫码加我 拉你入群

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

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

关键词:如何提取 数据集 Data test Est 如何

回帖推荐

losttemple 发表于2楼  查看完整内容

常规当然是用macro咯,用call execute也是蛮好玩的 proc sql; create table dd as select memname from dictionary.tables where libname='WORK'/* or a permanent libref */ & memname like 'DATA%'; quit; data _null_; set dd; call execute('data '||'_'||strip(memname)||'; set '||memname||' end=eof; if eof then output; run;'); run; data _null_; set dd end=eof; if _n_=1 then cal ...

本帖被以下文库推荐

沙发
losttemple 发表于 2009-10-6 17:32:02
常规当然是用macro咯,用call execute也是蛮好玩的
proc sql;
  create table dd as
  select memname
  from dictionary.tables
  where libname='WORK'/* or a permanent libref */ & memname like 'DATA%';
quit;

data _null_;
  set dd;
  call execute('data '||'_'||strip(memname)||'; set '||memname||' end=eof; if eof then output; run;');
run;

data _null_;
  set dd end=eof;
  if _n_=1 then call execute('data test; set ');
  call execute('_'||strip(memname));
  if eof then call execute('; run;');
run;
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

藤椅
人生海海 发表于 2009-10-7 20:10:00
楼上高手,那用常规的macro怎么编呢?

板凳
xiaosanmao 发表于 2009-10-7 21:08:53
人生海海 发表于 2009-10-7 20:10
楼上高手,那用常规的macro怎么编呢?
data data1;
input
    rq yymmdd10.                     mc          mr     ;
format rq yymmdd10.;
cards;
2009-01-06        1111        1233
2009-01-07        1611        1293     
2009-01-08        1311        1933     
2009-01-09        1121        1203     
2009-01-12        1115        1663
;run;
data data2;
input
    rq yymmdd10.                     mc          mr     ;
format rq yymmdd10.;
cards;   
2009-01-15        1111        1233
2009-01-17        1211        1263     
2009-01-18        1311        1953     
;run;

%let num=2;
%macro x(num);
%do i=1 %to #
data temp&i;
set data&i end=p;
if p then output;
run;%end;
data final;
set %do i=1 %to #
  temp&i %end;;
run;%mend;
%x(&num);

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

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