关于SAS中的“数据合并”

时间:2011-01-20 22:04:31

标签: sas

我正在研究SAS中的数据合并,并找到以下示例

data newdata;
merge yourdata (in=a) otherdata (in=b);
by permno date;   

我不知道“(in = a)”和“(in = b)”是什么意思?感谢。

1 个答案:

答案 0 :(得分:7)

yourdata(in=a)在程序数据向量中创建一个名为'a'的标志变量,如果记录来自您的数据,则包含1,如果不是,则包含0。然后,您可以使用这些变量根据记录源执行条件操作。

如果你看到了

,可能会更容易理解
data newdata;
merge yourdata(in=ThisRecordIsFromYourData) otherdata(in=ThisRecordIsFromOtherData);
by permno date;
run;

假设您需要在此步骤中操作您的数据中的记录,而不是来自其他数据的记录,您可以执行类似

的操作
data newdata;
merge yourdata(in=ThisRecordIsFromYourData) otherdata(in=ThisRecordIsFromOtherData);
by permno date;
if ThisRecordIsFromYourData then do;
  * some operation here for yourdata records only ;
end;
run;

这些变量的一个显而易见的用途是使用if语句控制将发生何种“合并”。例如,if ThisRecordIsFromYourData and ThisRecordIsFromOtherData;将使SAS仅包含与两个输入数据集中的by变量匹配的行(如内部联接)。