j*****t 发帖数: 83 | 1 data nonresp(where=(ranuni(5555)<.1));
set acqmod.both(where=(respond^=1));
run;
data acqmod.model;
set acqmod.both(where=(respond=1)) nonresps;
if respond = 1 then smp_wgt = 1;
else smp_wgt = 10;
respond = (respond = 1);
run;
proc freq;
weight smp_wgt;
table respond activate /missing;
run;
以上为什么在读完数据之后来一个“respond=(respond=1);"?这是赋值语句吗?这是要
让所有的respond都等于1吗?
后面那个weight,实在是不知道用力干什么的,察看了帮助还是很疑惑。有没有达人可
以告诉一下加了这个weight statement和不加有什么区别?
谢谢! | q**j 发帖数: 10612 | 2 这两个问题都不算难吧?你自己用简单的数据试试不就好了?我猜第一个把respond从数
值变成了逻辑变量(0,1),第二个是用weight variable去乘frequency value。但是我不
肯定。你自己试试就好了。
【在 j*****t 的大作中提到】 : data nonresp(where=(ranuni(5555)<.1)); : set acqmod.both(where=(respond^=1)); : run; : data acqmod.model; : set acqmod.both(where=(respond=1)) nonresps; : if respond = 1 then smp_wgt = 1; : else smp_wgt = 10; : respond = (respond = 1); : run; : proc freq;
|
|