楼主: hlfjacky
3633 2

SAS请教:这个创建dummy variable的程序错在哪里 [推广有奖]

  • 2关注
  • 0粉丝

大专生

83%

还不是VIP/贵宾

-

威望
0
论坛币
861 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
660 点
帖子
80
精华
0
在线时间
25 小时
注册时间
2013-1-13
最后登录
2020-4-21

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
period.rar (565 Bytes) 本附件包括:
  • period.sas7bdat
我想根据不同的时间阶段(每个时间阶段都是往前rolling一年),创建不同的dummy variable, 一共创建了7个时间dummy, 但是,只有最后一个dummy有数值,其他的还是为缺失值(如图所示)。请教大家,怎么修改这个错误,或者有其他更好的办法。谢谢!

我的思路是:第一步先建7个dummy, 所有值为缺失; 第二步是根据设定的时间条件来替换那些缺失值。

*step 1: create  7 dummy varialbes with missing value;
data bbb (DROP = i);
  set period;
  array A {*} period_1 - period_7;
  do i = 1 to 7;
     A(i) = . ;
  end;
run;

*step 2: replace all missing values accoring to different time conditions;

%macro perioddummy;
%do count = 1 %to 7;

data ccc;
  set bbb;
  if (1993 + &count) <= year <= (1995 + &count) then period_&count=0;
  else if (1996 + &count) <= year <= (1998 + &count) then period_&count=1;
  else period_&count=2;
run;

%end;
%mend;
%perioddummy;



result.png
二维码

扫码加我 拉你入群

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

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

关键词:Variable Dummy ABLE ABL IAB 程序 different replace period create

沙发
frankzhao0829 发表于 2014-4-13 05:43:45 |只看作者 |坛友微信交流群
因为7 次 do loop 中的 data set 输出的ccc 会覆盖前六次do loop中创建的ccc。 所以最终结果只有当i =7, 也就是ccc 中只有period_7有值,其他的period_i 都还只是你在bbb 中设定的missing value.
1. 可以在step1 后面添加如下code: proc sql; create table ccc as select * from bbb; quit;
2. step2 用proc sql 中的 update 语句 populate ccc table:
%macro perioddummy;
proc sql; %do count = 1 %to 7; update ccc set period_&count = case
  when (1993 + &count) <= year <= (1995 + &count) then 0
  when (1996 + &count) <= year <= (1998 + &count) then 1
  else period_&count=2 end; %end; quit;
%mend;
%perioddummy;
已有 1 人评分论坛币 收起 理由
admin + 100 热心帮助其他会员

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

使用道具

藤椅
hlfjacky 发表于 2014-4-20 07:31:49 |只看作者 |坛友微信交流群
frankzhao0829 发表于 2014-4-13 05:43
因为7 次 do loop 中的 data set 输出的ccc 会覆盖前六次do loop中创建的ccc。 所以最终结果只有当i =7, 也 ...
非常感谢你的帮忙 我好好消化消化。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 11:48