Statistics 板


LINE

以下是很不正确的分解动作XD 因为SAS DATA STEP一次只读一行CASE 但是这样子举例比较方便 囧~ ※ 引述《kenshin528 (成立奥凶帝国!!)》之铭言: : DATA test; : SET origin; /*原始档*/ 做完这个步骤的资料(也就是原始资料) Obs ID year DUM1 1 A 2001 0 2 A 2002 1 3 A 2003 0 4 A 2004 0 5 B 1993 1 6 B 1994 0 7 B 1995 0 8 C 1996 0 9 C 1997 0 10 C 1998 1 11 C 1999 1 12 C 2000 0 : IF dum1 = 1 THEN dum2 = 1;/*产生一个新的变项作为对照组*/ Obs ID year DUM1 dum2 1 A 2001 0 . 2 A 2002 1 1 3 A 2003 0 . 4 A 2004 0 . 5 B 1993 1 1 6 B 1994 0 . 7 B 1995 0 . 8 C 1996 0 . 9 C 1997 0 . 10 C 1998 1 1 11 C 1999 1 1 12 C 2000 0 . : IF first.id THEN dum2 = dum1; 因为你有些变项第一个不是0 所以只好再补一条叙述 Obs ID year DUM1 dum2 1 A 2001 0 0 2 A 2002 1 1 3 A 2003 0 . 4 A 2004 0 . 5 B 1993 1 1 6 B 1994 0 . 7 B 1995 0 . 8 C 1996 0 0 9 C 1997 0 . 10 C 1998 1 1 11 C 1999 1 1 12 C 2000 0 . : RETAIN dum2 0; SAS处理资料是一次处理一行 retain dum2 0的意思是说, 当我在处理DUM2这个变项的时候,手里先拿着0, 如果该变项没有数值(DUM2为MISSING的时候),就把手上的0放进去, 如果那个dum2里面有数值,就把手上的0丢掉,把碰到的数值拿在手上, 如果下一行的dum2里面没有数值,就把手上的数值填进去。 by id的意思是说,遇到新的ID,就把之前拿到的数字丢掉,从0开始。 分解动作如下 手里>>0 Obs ID year DUM1 dum2 1 A 2001 0 0 <<有数值 就把手里的0丢掉,把里面的0拿起来 手里>>0 2 A 2002 1 1 <<又有数值,把手里的0丢掉,把1拿起来 手里>>1 3 A 2003 0 . <<挖,里面没有东西,就把1丢进去 3 A 2003 0 1 <<然後又把1拿起来 手里>>1 4 A 2004 0 . <<又没东西,就把手里的1丢进去 4 A 2004 0 1 <<把1拿起来 手里>>0 5 B 1993 1 1 <<ID换了,所以手里要拿0,然後又遇到1所以把1拿起来 >>以下以此类推@@ 6 B 1994 0 . 7 B 1995 0 . 8 C 1996 0 0 9 C 1997 0 . 10 C 1998 1 1 11 C 1999 1 1 12 C 2000 0 . : BY ID; : dum1=dum2; /*让旧变项等於新变项*/ : DELETE dum2; /*删去新变项*/ 上面两行不用解释吧? 就是把新的变项换成你要的DUM1而已 : RUN; : 你试试看吧 感觉起来应该有更简单的写法 : ※ 引述《paochien (烦躁的调子)》之铭言: : : ------------------------------------------------------------------------ : : [软体程式类别]: : : SAS : : [程式问题]: : : 资料处理 : : [软体熟悉度]: : : 新手(不到1个月) : : [问题叙述]: : : 我的资料是长这样 : : Obs ID year DUM1 : : 1 A 2001 0 : : 2 A 2002 1 : : 3 A 2003 0 : : 4 A 2004 0 : : 5 B 1993 1 : : 6 B 1994 0 : : 7 B 1995 0 : : 8 C 1996 0 : : 9 C 1997 0 : : 10 C 1998 1 : : 11 C 1999 1 : : 12 C 2000 0 : : Dum1是利用其他变数做为criteria而得的一个dummay variable : : 现在的问题是想要把同一间公司只要dum1是1之後的所有年份都该为1 : : 就会变成 : : Obs ID year DUM1 : : 1 A 2001 0 : : 2 A 2002 1 : : 3 A 2003 1 : : 4 A 2004 1 : : 5 B 1993 1 : : 6 B 1994 1 : : 7 B 1995 1 : : 8 C 1996 0 : : 9 C 1997 0 : : 10 C 1998 1 : : 11 C 1999 1 : : 12 C 2000 1 : : 我翻了一些书也找了一些网站,是过lag来加减看看 : : 可是最後的结果都会有一些被漏掉没改成1 : : 不知道各位前辈有没有比较好的办法可以指点一下<(_ _)> : : 新手很笨的问题请多包涵Orz -- (C)lass 【 分组讨论区 】 11 卡漫梦工厂 卡通, 漫画, 动画 [Ckmike] 4 C_J_Artist 作家 Σ日本漫画家专区 [Ckmike] 10 TakahasiShin 作家 ◎****高桥真作品讨论版**** kenshin528 http://kenshinsasstory.blogspot.com/ SAS Story --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.252.92.238
1F:推 paochien:好详细的解释!!! 真的很感谢你>///< 03/11 21:02
2F:→ kenshin528:有看懂就好XD~ 03/11 21:13
3F:→ kenshin528:最後要用DROP丢变项 囧 03/12 10:36







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP