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