【问题标题】:How does SAS match columns in a set statementSAS如何匹配set语句中的列
【发布时间】:2016-07-15 15:32:31
【问题描述】:

当我们这样做时:

data test;
   set temp1 temp2;
run;

它是否按列名或列位置匹配 temp1temp2

我的猜测是列名,但找不到确认。

如果有一个列存在于temp1 而不是temp2,会发生什么情况?

【问题讨论】:

  • 请注意,如果您要追加表格,使用 Proc Append 会更快,因为它不会逐行读取表格。

标签: dataset sas


【解决方案1】:

按名称。不在两个表上的列都存在于输出表上,但来自不存在的源表的行缺少值。这非常容易测试。

data d1;
    input var1 $ var2 $ var3;
    datalines;
e j 1
e k 2
e l 3
;
run;

data d2;
    input var2 $ var1 $ var5;
    datalines;
e j 1
e k 2
e l 3
;
run;

data d3;
    set d1 d2;
run;

proc print data=d3;
run;

结果:

Obs var1 var2 var3 var5

 1   e    j     1    . 
 2   e    k     2    . 
 3   e    l     3    . 
 4   j    e     .    1 
 5   k    e     .    2 
 6   l    e     .    3 

如果存在变量类型冲突,SAS 将抛出错误或警告。

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    相关资源
    最近更新 更多