解读SAS代码的含义

时间:2018-04-19 14:16:00

标签: sas

请帮我解释一下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”?

1 个答案:

答案 0 :(得分:1)

您的解释大致正确。你的问题也是我要问的问题。我会说这取决于此代码的目的;为了便于阅读,这可能是以这种方式编写的;如果你用英语说出这段代码的目的,或许就是你如何形容它。

我警告说这是相当糟糕的形式,特别是这一部分:

data sample;
  set sample;
  where ... ;

通常,当您做一些不可逆转的事情时,最好不要写入您正在阅读的同一数据集(因为您正在丢失数据)。 WHERE不仅适用于上述转换;它实际上过滤了进来的行,因此只有符合WHERE条件的行才会在输出数据集中结束。