我正在研究SAS中的数据合并,并找到以下示例
data newdata;
merge yourdata (in=a) otherdata (in=b);
by permno date;
Run Code Online (Sandbox Code Playgroud)
我不知道"(in = a)"和"(in = b)"是什么意思?谢谢.
yourdata(in=a)在程序数据向量中创建一个名为'a'的标志变量,如果记录来自您的数据则包含1,如果不是,则包含0.然后,您可以使用这些变量根据记录的来源执行条件操作.
如果你看到它可能会更容易理解
data newdata;
merge yourdata(in=ThisRecordIsFromYourData) otherdata(in=ThisRecordIsFromOtherData);
by permno date;
run;
Run Code Online (Sandbox Code Playgroud)
假设您需要在此步骤中操作数据中的记录,而不是来自其他数据的记录,您可以执行类似的操作
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;
Run Code Online (Sandbox Code Playgroud)
这些变量的一个显而易见的用途是使用if语句来控制将发生什么样的"合并" .例如,if ThisRecordIsFromYourData and ThisRecordIsFromOtherData;将使SAS仅包含与两个输入数据集中的by变量匹配的行(如内部联接).
| 归档时间: |
|
| 查看次数: |
12054 次 |
| 最近记录: |