insert - SAS 将小表连接(或插入)到大表
问题描述
我有小问题。我有大桌子和几张小桌子,其中小桌子包括大桌子的部分字段。我如何根据字段是否相同来插入(或联合)表 - 设置数据,如果小表没有来自大的字段 - 在大表中设置 null/0。
例子:
data temp1;
infile DATALINES dsd missover;
input a b c d e f g;
CARDS;
1, 2, 3, 4,5,6
2, 3, , 5
3, 3
4,,3,2,3,
;
run;
data temp2;
infile DATALINES dsd missover;
input a c e g;
CARDS;
5, 2, 3, 4
6, 3, , 5
7, 3
;
run;
是否有一种优雅的方法,如果我将 temp2 插入 temp1 - temp2 中缺少的字段将在 temp1 中设置 null 值?
谢谢你的帮助!
解决方案
我不太清楚您打算做什么操作,但一些初步想法是:
- 要比较两个数据集之间的列(并检查其中一个是否存在值),最好使用外连接。您可以通过
MERGE
数据步中的子句进行连接,或者更优雅地使用PROC SQL
. - 但是,无论使用哪种方法,您都必须指定其中的哪两行
temp1
并temp2
进行比较——您通常连接到两个表中都可用的列。
temp1
为了帮助我们解决您的问题,如果您在and上执行它,您能否为您所需的操作提供正确的输出temp2
?这将显示您探索了哪些选项以及需要修复的内容。
推荐阅读
- tensorflow - 对象检测 API 中默认配置文件中 box_code_size 的影响
- .net-standard-2.0 - netstandard 2 中的 System.Diagnostics.Debug.Listeners 属性在哪里?
- nuget - 将nuget包的内容文件复制到输出目录
- app-inventor - App Inventor 复制按钮,按下按钮
- java - 使用 com.sun.net.httpserver.HttpServer 时不调用 ServletContextListener
- jsp - 从上面的目录访问图像
- gps - 过滤掉相同半径内的 GPS 坐标
- php - laravel刀片中的嵌套foreach循环
- angular - 在一个组件中使用多个服务的最佳实践
- c# - 防止在监听器与 Firebase 连接时触发 ValueChanged