SAS中文论坛
标题:
请教各位高手一个程序问题
[打印本页]
作者:
shiyiming
时间:
2008-6-20 09:52
标题:
请教各位高手一个程序问题
一个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,还请大家帮我呀!!谢谢各位
作者:
shiyiming
时间:
2008-6-20 11:32
标题:
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语句中删除就可以了。
作者:
shiyiming
时间:
2008-6-20 11:45
标题:
Re: 请教各位高手一个程序问题
谢谢xgghxkhuang,我运行了一下可以,完全正确,以后还请多多指教,谢谢!!
作者:
shiyiming
时间:
2008-6-20 12:08
标题:
Re: 请教各位高手一个程序问题
或者你可以这样写:
data aa;
set bw (keep=smoke bwt );
if smoke=0 then g=1;
else g=2;
run;
作者:
shiyiming
时间:
2008-6-21 10:04
标题:
Re: 请教各位高手一个程序问题
谢谢lili83xu,这样更简练哈谢谢!!
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2