SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 875|回复: 4
打印 上一主题 下一主题

请教各位高手一个程序问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-6-20 09:52:45 | 只看该作者

请教各位高手一个程序问题

一个dbf数据集lbw,有189个观测。id,bwt,age,lwt,race smoke等总共11个变量。
问题:
      既往有吸烟史的母亲和无吸烟史的母亲,生育的婴儿出生体重有无差异?

data aa;
set bw;
keep smoke bwt;
if smoke=0 then g=1;
else g=2;
run;
proc print;
run;
proc univariate data=aa normal;
var bwt;
class g;
run;
proc ttest data=aa;
var bwt;
class g;
run;
运行的结果为什么说找不到变量g呢?我不是用if语句定义了吗?
但是把语句keep smoke bwt;去掉之后就没问题了,请问是为什么?我该怎么用keep语句啊?
各位高手,我最近刚学sas,还请大家帮我呀!!谢谢各位
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-6-20 11:32:36 | 只看该作者

Re: 请教各位高手一个程序问题

data aa;
set bw;
keep smoke bwt  g;
if smoke=0 then g=1;
else g=2;
run;
proc print;
run;
proc univariate data=aa normal;
var bwt;
class g;
run;
proc ttest data=aa;
var bwt;
class g;
run;
这里你的确创建了变量g,但是你使用了语句 keep smoke bwt  ;语句就是说你保存的数据集合只有smoke bwt  这两个变量,
其他都被删除了,你在keep语句中加入g变量,就没问题了,你试一下。看看对不对。如果集合中你不要smoke变量把它从
keep语句中删除就可以了。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-6-20 11:45:18 | 只看该作者

Re: 请教各位高手一个程序问题

谢谢xgghxkhuang,我运行了一下可以,完全正确,以后还请多多指教,谢谢!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-6-20 12:08:57 | 只看该作者

Re: 请教各位高手一个程序问题

或者你可以这样写:
data aa;
set bw (keep=smoke bwt );
if smoke=0 then g=1;
else g=2;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-6-21 10:04:57 | 只看该作者

Re: 请教各位高手一个程序问题

谢谢lili83xu,这样更简练哈谢谢!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 20:07 , Processed in 0.158071 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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