作者tew (咖啡王子)
站内Statistics
标题Re: [程式] SAS分组的指令
时间Fri Apr 23 13:00:05 2010
※ 引述《hanjing (自知者明)》之铭言:
: 标题: [程式] SAS分组的指令
: 时间: Thu Apr 22 17:17:26 2010
:
: [软体程式类别]:
: ID region co-region_1 co-region_2 co-region_3
: A 101
: B 102
: C 103
: D 104
:
: 我想要新创co-region来进行分类
: 基本的想法如下
:
: data b;
: set a;
: select;
: when ( region=101 or region=102 ) co-region_1=1;
: otherwise co-region_1=0;
: when ( region=101 or region=102 or region=103 ) co-region_2=1;
: otherwise co-region_2=0;
: when ( region=102 or region=104 ) co-region_3=1;
: otherwise co-region_3=0;
: end;
: run;
: ID region co-region_1 co-region_2 co-region_3
: A 101 1 1 0
: B 102 1 1 1
: C 103 0 1 0
: D 104 0 0 1
:
这样的 coding 挺奇怪的
co_region_2 表示 美国、加拿大、墨西哥是一组的
依据是 因为 美国跟加拿大邻近 美国跟墨西哥邻近
亦即 你这样的coding 除非手头上有你的资料 否则 根本无法判断谁跟谁邻近
因为 加拿大跟墨西哥根本没有邻近
101 102 103 104
101 1 1 1 0
102 1 1 0 0
103 1 0 1 0
104 ? ? ? 1
我会这样codeing
101 1 1 1 这样就可以知道 以101为中心 101 102 103会是邻近国家
你原始的coding我真的掌握不住就是了
: → hanjing:唉~说到判断条件啊...其实就是邻近区域的判别,例如美国的 04/22 21:46
: → hanjing:邻国是加拿大和墨西国,所以我就将他们整理在第一组 04/22 21:47
: → hanjing:而加拿大的邻国只有美国,所以这一组就是第二组..所以啊 04/22 21:47
: → hanjing:你想到非洲,南美洲啊...就知道很难整理了 04/22 21:48
: 推 tew:简单的做法是 先做国家的coding 04/22 22:04
:
: 嗯,根据TEW版友的说法
: 其实我已经有完成各国家coding
: 而且也将该国与邻国的coding整理在一起
: 像是
:
: 国家 代码 邻近国家
: 美国 101 102,103
: 加拿大 102 101
: 墨西哥 103 101
:
: 而我希望分组就是要将美国,加拿大,墨西哥三个国家框在同一组
: 而将美国,加拿大框在另一组
: 以上这个表我有另外整理在excel档里面
: 但似乎对我在sas将他们分组没有很大的帮助
: 我目前只能笨笨的
: select;
: when ( coding=101 or coding=102 or coding=103 ) co-coding=1;
: otherwise co-coding=0;
: end;
:
: 嗯...就是这样
: 感谢版友的支持
: ※ 编辑: hanjing 来自: 140.138.153.11 (04/23 10:10)
: 推 kenshin528:与其要这样写语法 真的不如手动CODEING 还比较快... 04/23 10:50
: → lin15:美国,加拿大,墨西哥三个国家框在同一组 然後又美国加拿大一 04/23 11:57
: → lin15:组? 好怪? 04/23 11:57
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 134.208.29.183
1F:推 hanjing:嗯~我了解t大的想法,但因为用when分组之後,我还要依据分组 04/23 14:06
2F:→ hanjing:进行其他的敍述统计工作,也就是要用proc mean 然後by分组 04/23 14:07
3F:→ hanjing:所以才没有采用t大的coding方法,感谢t大的热心~~ 04/23 14:08