我正在研究SAS中的数据合并,并找到以下示例
data newdata;
merge yourdata (in=a) otherdata (in=b);
by permno date;
我不知道“(in = a)”和“(in = b)”是什么意思?感谢。
答案 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变量匹配的行(如内部联接)。