楼主: h52101019
3597 11

Create a dummy variable using SAS [推广有奖]

  • 0关注
  • 0粉丝

大专生

5%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
166 点
帖子
27
精华
0
在线时间
46 小时
注册时间
2009-9-30
最后登录
2019-2-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我想要寫的新的dummy variable.
我的原始data是
gvkeys_yearlavishSF3

1078

1989

1

0

0

1078

1999

1

1

0

1161

1969

0

0

0

1161

2002

1

1

0

1230

1995

0

0

0

1230

2002

0

1

0

1279

1996

0

0

0

1279

2003

0

1

0


以gvkey和S為pair (一個pair裡有S=0與S=1,所以現在4個pair)。撰寫程序的問題如下:
1. 如果S=1而且lavish=1,那此pair的兩個new_type都等於1。此外,其他的new_type = 0。
2. 如果pair裡的lavish的數值相同,則change = 0。此外,change = 1。

所以將會變成
gvkeys_yearlavishSF3new typechange

1078

1989

1

0

0

1

0

1078

1999

1

1

0

1

0

1161

1969

0

0

0

1

1

1161

2002

1

1

0

1

1

1230

1995

0

0

0

0

0

1230

2002

0

1

0

0

0

1279

1996

0

0

0

0

0

1279

2003

0

1

0

0

0


感謝大家的幫忙:)
二维码

扫码加我 拉你入群

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

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

关键词:Variable Create Dummy creat Using Create 1230 而且

沙发
hello_fj 发表于 2014-7-29 10:47:51 |只看作者 |坛友微信交流群
proc sort data=test;
by gvkey descending lavish;
run;

data wanted;
  set test;
  by gvkey;
  if first.gvkey then do;
    if lavish=1 then new_type=1;
        else new_type=0;
  end;
  else new_type+0;
  if lavish=S then change=0;
  else change=1;
run;

使用道具

藤椅
freerunning_sky 在职认证  发表于 2014-7-29 11:15:59 |只看作者 |坛友微信交流群
  1. data in;
  2. input gvkey s_year lavish S F3;
  3. cards;
  4. 1078        1989        1        0        0
  5. 1078        1999        1        1        0
  6. 1161        1969        0        0        0
  7. 1161        2002        1        1        0
  8. 1230        1995        0        0        0
  9. 1230        2002        0        1        0
  10. 1279        1996        0        0        0
  11. 1279        2003        0        1        0
  12. ;
  13. run;

  14. proc sql;
  15.         create table out as
  16.         select a.*,max(a.s=a.lavish & a.s=1) as new_type,^(min(lavish)=max(lavish)) as change from in a
  17.         group by gvkey;
  18. quit;
复制代码

使用道具

板凳
h52101019 发表于 2014-7-29 16:21:30 |只看作者 |坛友微信交流群
freerunning_sky 发表于 2014-7-29 11:15
你好! 感謝幫忙:)
我用了你的code,但是我的變數S的順序都亂了,這是為什麼呀?

使用道具

报纸
freerunning_sky 在职认证  发表于 2014-7-29 16:58:53 |只看作者 |坛友微信交流群
h52101019 发表于 2014-7-29 16:21
你好! 感謝幫忙:)
我用了你的code,但是我的變數S的順序都亂了,這是為什麼呀?
?没有明白,是说记录的顺序么?如果是记录的顺序变了,排个序就好了,变量S的值不会变啊

使用道具

地板
h52101019 发表于 2014-7-29 17:31:00 |只看作者 |坛友微信交流群
freerunning_sky 发表于 2014-7-29 16:58
?没有明白,是说记录的顺序么?如果是记录的顺序变了,排个序就好了,变量S的值不会变啊
變量S的順序變了,順序應該是0 1 0 1這樣下去。

使用道具

7
freerunning_sky 在职认证  发表于 2014-7-29 18:48:26 |只看作者 |坛友微信交流群
h52101019 发表于 2014-7-29 17:31
變量S的順序變了,順序應該是0 1 0 1這樣下去。
排个序就好了

使用道具

8
h52101019 发表于 2014-7-29 19:01:19 |只看作者 |坛友微信交流群
freerunning_sky 发表于 2014-7-29 18:48
排个序就好了
對不起,我說錯了,是變數S的數值改變了,我不知道為什麼。

使用道具

9
freerunning_sky 在职认证  发表于 2014-7-29 19:36:34 |只看作者 |坛友微信交流群
h52101019 发表于 2014-7-29 19:01
對不起,我說錯了,是變數S的數值改變了,我不知道為什麼。
你看一下年份s_year

使用道具

10
h52101019 发表于 2014-7-29 20:16:46 |只看作者 |坛友微信交流群
freerunning_sky 发表于 2014-7-29 19:36
你看一下年份s_year
我重run一次變數S,數值就跑回來了。
感謝幫忙,真的很感謝。

使用道具

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

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

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

GMT+8, 2024-4-28 21:31