请帮我解释一下SAS代码(我对sas很新):
DATA sample;
SET sample;
v_eq = mve;
est_v_eq = v_eq;
sig_eq = sige;
WHERE optosey > 0 AND
optprcey > 0;
RUN;
解释:使用“示例” - 数据库。定义“v_eq = mve”,“est_v_eq = v_eq”,“sig_eq = sige”仅适用于具有optosey的观察> 0 AND optprcey> 0,我是对的吗?令人困惑的是,为什么“他们”定义“v_eq = mve”,“est_v_eq = v_eq”而不是直接“v_eq = mve”?
答案 0 :(得分:1)
您的解释大致正确。你的问题也是我要问的问题。我会说这取决于此代码的目的;为了便于阅读,这可能是以这种方式编写的;如果你用英语说出这段代码的目的,或许就是你如何形容它。
我警告说这是相当糟糕的形式,特别是这一部分:
data sample;
set sample;
where ... ;
通常,当您做一些不可逆转的事情时,最好不要写入您正在阅读的同一数据集(因为您正在丢失数据)。 WHERE
不仅适用于上述转换;它实际上过滤了进来的行,因此只有符合WHERE
条件的行才会在输出数据集中结束。