SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 848|回复: 5
打印 上一主题 下一主题

又卡壳了。又遇到一个问题,请指点,多谢了

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-11-26 19:31:38 | 只看该作者

又卡壳了。又遇到一个问题,请指点,多谢了

又卡壳了。又遇到一个问题,想了很久,还是不懂如何解决   <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( --> 。 问题如下:

数据是这样的,有三个变量:House_ID (比如有3个家庭,1,2 和3),Date(比如总共样本期内有5天),Purchase (每天的花销金额)。

House_ID   Date    Purchase
1          1         71
1          2         59
1          3         53
1          4         49
1          5         51
2          1         13
2          3         20
2          5         19
3          2         36
3          3         41
3          4         39
3          5         34

我们注意到,House 1在每一天中都有观测值。而House 2却在Date 2中没有观测值;House 3在Date 1中没有观测值。请教,如何能够把我的数据转化成如下的形式:

House   Date    Var
1          1         71
1          2         59
1          3         53
1          4         49
1          5         51
2          1         13
2          2          .
2          3         20
2          4          .
2          5         19
3          1          .
3          2         36
3          3         41
3          4         39
3          5         34

即,就算某一天中没有观测值。我们也能够“插入一行”,这一行有日期以及用点&quot;.&quot;表示没有观测值。请各位多多帮忙,提供解法或者思路,我先说声谢谢了。  <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-11-26 19:46:12 | 只看该作者

Re: 又卡壳了。又遇到一个问题,请指点,多谢了

方法实在太多了,老掉牙的题目了。
方法一:data步
方法二:proc means。
方法三:proc expand
data步代码量多一点。
proc 的代码量少一点:
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-11-26 20:17:53 | 只看该作者

Re: 又卡壳了。又遇到一个问题,请指点,多谢了

To byes:多谢你的指点。
惭愧,试了一下,还是不懂。我会多找些例子看看,接着试。
对于proc expand或者proc means的方法,能否分别指点地具体一点?先说声谢谢了。  <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-11-26 20:58:43 | 只看该作者

Re: 又卡壳了。又遇到一个问题,请指点,多谢了

懂了懂了,多谢byes兄!!!   <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-11-27 08:59:25 | 只看该作者

Re: 又卡壳了。又遇到一个问题,请指点,多谢了

凑个热闹,加强一下记忆!~用proc freq作的!~
data raw;
input House_ID $ Date Purchase;
cards;
1 1 71
1 2 59
1 3 53
1 4 49
1 5 51
2 1 13
2 3 20
2 5 19
3 2 36
3 3 41
3 4 39
3 5 34
;
run;
proc freq data=raw noprint;
table House_ID*Date/sparse out=result(drop=percent rename=(count=purchase));
weight purchase;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2008-11-29 19:31:03 | 只看该作者

Re: 又卡壳了。又遇到一个问题,请指点,多谢了

to 缘来是你

多谢热心肠!   <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-5 05:20 , Processed in 0.067166 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表