楼主: leeiflife
1712 5

[问答] 关于last的使用 [推广有奖]

  • 0关注
  • 0粉丝

已卖:1份资源

本科生

26%

还不是VIP/贵宾

-

威望
0
论坛币
596 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1206 点
帖子
55
精华
0
在线时间
112 小时
注册时间
2010-1-30
最后登录
2025-4-23

楼主
leeiflife 发表于 2014-3-27 21:15:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问,

现在我有一列数列是日期,想在后面加一列数据,为到期日(即原有数列的最后一个日期值),是不是用last来实现?该如何实现呢?

比如:
date
20130309
20130310
20130311
20130312
20130313
20130314
20130315

在后面新加一列数d,应该都是取20130315这样。

thx!!

二维码

扫码加我 拉你入群

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

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

关键词:Last date 如何实现 最后一个 ATE 如何

沙发
intheangel 学生认证  发表于 2014-3-27 21:24:50
我觉得根据你所说不是用last;
last的用法是分组变量的最后一个,你这个没有分组,就是观测值的最后一个;
  1. data z;
  2. input date;
  3. cards;
  4. 20130309
  5. 20130310
  6. 20130311
  7. 20130312
  8. 20130313
  9. 20130314
  10. 20130315
  11. ;
  12. run;

  13. data k;
  14. set z end=l;
  15. if l then x=date;
  16. run;
复制代码
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

藤椅
intheangel 学生认证  发表于 2014-3-27 21:34:31
对不起,没看清要求,随手加了个宏,可能做复杂了
  1. data z;
  2. input date;
  3. cards;
  4. 20130309
  5. 20130310
  6. 20130311
  7. 20130312
  8. 20130313
  9. 20130314
  10. 20130315
  11. ;
  12. run;

  13. data k(keep=d);
  14. set z end=l;
  15. if l then d=date;
  16. if d=. then delete;
  17. call symput('d',d);
  18. run;

  19. data z;
  20. set z;
  21. d=&d;
  22. run;
复制代码
我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

板凳
intheangel 学生认证  发表于 2014-3-27 21:37:28
如果你要用last做,必须先加一个分组变量;
你可以都看看,就明白last和end这种自带变量的用法了
  1. data z;
  2. input date;
  3. cards;
  4. 20130309
  5. 20130310
  6. 20130311
  7. 20130312
  8. 20130313
  9. 20130314
  10. 20130315
  11. ;
  12. run;

  13. data z;
  14. set z;
  15. i=1;
  16. run;

  17. data z(drop=i);
  18. set z;
  19. by i;
  20. if last.i then d=date;
  21. run;
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 100 热心帮助其他会员

总评分: 论坛币 + 100   查看全部评分

我是一只瘦瘦的小猪~~~
╭︿︿︿╮
{/-◎◎-/}
( (oo) )
  ︶︶︶

报纸
leeiflife 发表于 2014-3-27 22:18:41
intheangel 发表于 2014-3-27 21:37
如果你要用last做,必须先加一个分组变量;
你可以都看看,就明白last和end这种自带变量的用法了
我的确是新手^^ 好强大!多谢赐教,我来研究研究!

地板
遇女心惊 发表于 2014-3-29 12:20:05
  1. data a;
  2.         date="20130309"; output;
  3.         date="20130310"; output;
  4.         date="20130311"; output;
  5.         date="20130312"; output;
  6.         date="20130313"; output;
  7.         date="20130314"; output;
  8.         date="20130315"; output;
  9. ;run;

  10. data b;
  11.         set a nobs=pt;
  12.         set a(rename=(date=d)) point=pt;
  13. run;
复制代码

楼主应该是想得到d变量,对于每条记录都是20130315吧。
用merge,或者用上面的set set语句吧。

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

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