我在 SAS 提供的逻辑回归建模课程中遇到了以下代码:
data dataset(drop=i);
set data;
array mi{*} mi_Ag mi_Inc
mi_WR;
array x{*} Ag Inc WR;
do i=1 to dim(mi);
mi{i}=(x{i}=.);
end;
run;
我需要明白两件事:
1.) 一旦运行此数据步骤,就会创建一个标题为“i”的列。这意味着什么以及为什么存在。删除“i”本质上是删除它,但如果我不使用删除选项,该列将保留在数据集中
2.) 此执行步骤将所有缺失值替换为 1,其余为 0。当执行步骤中没有明确指定需要做什么时,这是如何发生的。在我看来,“做 i=1 到暗淡(mi);mi{i}=(x{i}=.);” 只要在 x(i) 中找到点,就应该简单地将点放在 mi(i) 中。
第2部分:
在折叠分类变量时,使用了以下代码:
proc freq data=example1 noprint;
tables CLUSTER_CODE*TARGET_B / chisq;
output out=out_chi(keep=_pchi_) chisq;
run;
data ex_cutoff;
if _n_=1 then set out_chi;
set ex_cluster;
chisquare=_pchi_*rsquared;
degfree=numberofclusters-1;
logpvalue=logsdf('CHISQ',chisquare,degfree);
run;
n = 1 在做什么?还有,我们为什么要创建 chisquare=_pchi*rsquared。pchi已经是卡方了,那么将它与 R 方相乘有什么意义呢?
谢谢
PS代码来自SAS学习课程之一。希望我可以在这里分享它以进行讨论/学习。