【发布时间】:2011-01-20 22:04:31
【问题描述】:
我正在研究SAS中的数据合并,找到下面的例子
data newdata;
merge yourdata (in=a) otherdata (in=b);
by permno date;
我不知道“(in=a)”和“(in=b)”是什么意思?谢谢。
【问题讨论】:
标签: sas
我正在研究SAS中的数据合并,找到下面的例子
data newdata;
merge yourdata (in=a) otherdata (in=b);
by permno date;
我不知道“(in=a)”和“(in=b)”是什么意思?谢谢。
【问题讨论】:
标签: sas
yourdata(in=a) 在程序数据向量中创建一个名为“a”的标志变量,如果记录来自 yourdata,则该变量包含 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 变量匹配的行(如内连接)。
【讨论】: