楼主: calsunny
1113 4

请教SAS程序! [推广有奖]

  • 2关注
  • 5粉丝

讲师

84%

还不是VIP/贵宾

-

威望
0
论坛币
3460 个
通用积分
12.8619
学术水平
2 点
热心指数
5 点
信用等级
1 点
经验
1653 点
帖子
468
精华
0
在线时间
732 小时
注册时间
2007-4-3
最后登录
2019-12-3

楼主
calsunny 发表于 2015-7-14 01:32:12 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
  1. 请教SAS程序, 数据是这样的
  2. data aa;
  3. input obs  month $ p;
  4. cards;
  5. 1  Jan   0.5
  6. 1  Feb   0.4
  7. 1  March 0.6
  8. 1  April 0.3
  9. 2  Jan  0.2
  10. 2  Feb  0.8
  11. 2 March  0.4
  12. 3 Feb  0.6
  13. 3 March 0.8
  14. ;
  15. run;
复制代码
要求每个观察值的第一个作为 baseline, 用第二,三,四  ....,减去第一个,得到一个新变量. 新数据第一个观察值是这样:
obs month p new
1 Jan 0.5
1 Feb 0.4 -0.1(=0.4-0.5)
1 March 0.6 0.1(=0.6-0.5)
1 April 0.3 -0.2(=0.3-0.5)
先谢谢了!








二维码

扫码加我 拉你入群

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

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

关键词:sas程序 Baseline March April month 程序

沙发
不是吧258123 发表于 2015-7-14 09:04:03
不知道是四个一循环还是怎么样啊?第五个数据和第六个数据应该是什么样的

藤椅
Tigflanker 发表于 2015-7-14 09:45:26
  1. data want;
  2.   set aa;
  3.   by obs;

  4.   retain temp;
  5.   if first.obs then temp = p;
  6.     else chazhi = p - temp;

  7.   drop temp;
  8. run;
复制代码
by obs notsorted; maybe needed.

板凳
舍身卫道 发表于 2015-7-14 12:37:21
data aa;
input obs  month $ p;
cards;
1  Jan   0.5
1  Feb   0.4
1  March 0.6
1  April 0.3
2  Jan  0.2
2  Feb  0.8
2 March  0.4
3 Feb  0.6
3 March 0.8
;
run;


data want;
  set aa;
  by obs;
  retain temp;
  if first.obs then do; temp = p; chazhi=p;end;
    else chazhi = p - temp;
  drop temp;
run;
修改了一下

报纸
林和靖 在职认证  发表于 2015-7-16 17:52:44
楼上的程序不健壮,如果第一条record的obs值不是1的话,那就达不到楼主的要求了,
看下我这里的程序,由系统的自动变量_n_来进行处理。
data bb(drop = base);
   retain base;
   set aa;
   if _n_ = 1 then
      base = p;
   else
      p = p - base;
run;

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

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