SAS中文论坛
标题:
有一个变量是家庭代号,另一个是家庭人数,想根据前两个变量创造
[打印本页]
作者:
shiyiming
时间:
2005-4-3 01:40
标题:
有一个变量是家庭代号,另一个是家庭人数,想根据前两个变量创造
有一个变量是家庭代号,另一个是家庭人数,想根据前两个变量创造一个个人ID的变量应该怎样作?比如:
FamilyCode Size
1001 2
1002 3
1003 4
......................
5003 6
想变成这样的
FamilyCode Size Personal ID
1001 2 10011
1002 3 10012
1003 4 10021
........... 10022
........... 10023
.......................................
如果反向操作呢?利用Personal ID 已经有的这个变量和每个人的收入水平,创造出整个家庭的收入水平和家庭平均收入水平应该怎样操作?非常感谢!
PersonalID Income
10011 600
10012 300
..............................
创造出
FamilyCode FamilyTotalIncome FamilyAverageIncome
1001 900 450
1002 990 330
多谢各位了!
作者:
shiyiming
时间:
2005-4-3 08:54
标题:
第一个。
data ori;
input FamilyCode Size ;
drop i;
do i=1 to size;
id=familycode||left(i);
output;
end;
cards;
1001 2
1002 3
1003 4
5003 6
run;
proc print;
run;
这是第一个问题,你的问题描述的第二段的数字都是错的。
还好我看出来了。
作者:
shiyiming
时间:
2005-4-3 09:01
标题:
第二个问题
data ori;
input ID$ Income ;
cards;
10011 600
10012 300
10021 400
10022 700
10023 400
;
run;
proc sql;
select distinct substr(ID,1,4) as familyid,sum(income)as familyincome,mean(income) as familyincome
from ori
group by substr(ID,1,4)
;
作者:
shiyiming
时间:
2005-4-4 00:20
标题:
ahuige感谢你啊
太感谢ahuige兄的帮助了,对SAS的数据处理不熟悉,还有一个小问题,如果知道家庭总收入,家庭人数,怎样在创造个人ID的时候也创造出平均个人收入水平变量呢?
FamilyCode Size TotalIncome
1001 2 1000
1002 3 1200
...........................求出
PersonalId AverageIncome
10011 500
10012 500
10021 400
10022 400
10023 400
多谢拉!
作者:
shiyiming
时间:
2005-4-4 00:38
标题:
再次感谢!
ahuige兄,刚才弄了一下,后面那个请求不用麻烦了。多谢啊
欢迎光临 SAS中文论坛 (http://mysas.net/forum/)
Powered by Discuz! X3.2