我正在研究SAS中的数据合并,并找到以下示例
data newdata;
merge yourdata (in=a) otherdata (in=b);
by permno date;
我不知道“(in = a)”和“(in = b)”是什么意思?谢谢。
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
语句控制将发生哪种“merge” 。例如,if ThisRecordIsFromYourData and ThisRecordIsFromOtherData
;将使SAS仅包括与两个输入数据集中的by变量匹配的行(例如内部联接)。
问题内容: 我有两个data1和data2 我从下面的代码合并它们: 结果:(我期待的不是内部联接结果) 内部联接的结果。 结果:(如内部联接所预期的那样) 我想知道SAS语句的 概念 和 STEP BY STEP的 工作,并证明上述结果。 PS:我已经读过了,上面写着 这些变量的一个明显用途是使用if语句来控制将发生哪种“合并”。例如,如果ThisRecordIsFromYourData和Thi
我正在从PowerShell生成SAS令牌,但当我试图从Azure Storage explorer访问该令牌时,它会产生问题“身份验证错误。签名字段格式不正确”。 下面是完整的Powershell命令:- $StorageAccountName=“xxxxxx” $ResourceGroup=“RemoteAccess” $CONTAINERNAME=“VHDS” $AZSTRCTX=new-A
问题内容: 这是输入的JSON文件。它必须在SAS数据集中解析。 我想要这样的SAS数据集中仅Address字段的输出: 我尝试了单独的方式,但没有类似的输出。甚至尝试过从PDF进行扫描…但无法获得所需的输出… 这是我的代码…和输出… 我 在文件中的 输出 问题答案: 要使用仅SAS的解决方案来回答您的问题,您有两个问题: 使用而不是获取未逗号/引号部分 是数字,因此您需要从输入中删除最后的引号。
问题内容: 如何为现有数据集创建一个新列,该数据集是一个现有列的运行总数-由某些标识符分区? 我曾经在SQL(Oracle)中使用简单的SUM()OVER()语句来完成此操作,但是显然PROC SQL不支持该语法。 如果可能的话,我想在PROC SQL中完成此工作(我对SQL的经验比对SAS编码的经验要多得多)。 谢谢! 麦克风。 问题答案: 乔-您的答案出于任何原因都没有用,但是却使我处于正确的
问题内容: 我有一个数据集,需要在其中查看来自另一个组的所有项目对。我在下面创建了一个玩具示例来进一步说明。 我想要的是列出所有可能的对,并对它们在一个束中一起出现的频率求和。理想情况下,我的输出将如下所示: 我的最终目标是制作一些最终可以导入Gephi进行网络分析的东西。为此,我需要一个Source和Target列(即上面的FRUIT1和FRUIT2)。 我认为还有一些其他方法也可以不使用PRO
在将excel文件导入SAS时,我发现由于变量格式错误,导入操作不正确。 尝试导入的表如下所示: 我使用的代码如下: 所发生的是“条形码”列已经超过12。因此,ID=4的格式和大小写会得到一个缺少的值('.'),因为它们最初同时包含字符和数字。 因为它是不可能改变一个变量的格式在程序步骤如何才能正确地导入文件,并只使用SAS编辑器? 编辑: 另一个可以完成一半工作并且可能会带来一些启发的选项是通过