【问题标题】:Merge SAS datasets but keep only the common observations合并 SAS 数据集,但只保留常见的观察结果
【发布时间】:2017-10-11 13:39:25
【问题描述】:

家庭作业问题。以下是问题:

一个。按以下方式合并 product_list 和 supplier Supplier_ID 以创建新数据集 work.prodsup。

b.提交程序并确认 work.prodsup 是用 556 创建的 观察。

c。修改 DATA 步以仅输出那些 product_list 中但不在 supplier 中的观察结果。

A 部分和 B 部分已完成,但 C 部分是我遇到的问题。

必须先对 product_list 进行排序

proc sort data=hw2.product_list;
   by Supplier_ID;
run;

data work.prodsup;
   merge hw2.product_list hw2.supplier;
   by Supplier_ID;
run;

修改输出以使其仅包含一个数据集中的观察结果而不包含另一个数据集的函数是什么?

【问题讨论】:

    标签: merge sas dataset


    【解决方案1】:

    您可以通过在合并语句中添加 in=X 来添加选择条件:

    data work.prodsup;
        merge hw2.product_list(in=a) hw2.supplier(in=b);
        by Supplier_ID;
        if a and not b;
    run;
    

    这正是您想要的,但您也可以比 proc sql 更快地执行诸如左连接之类的巧妙技巧。

    if a; /*Left join*/
    if a and b; /*Inner join*/
    if b; /*Right join*/
    

    在此处查看有关合并语句的更多信息:https://onlinecourses.science.psu.edu/stat481/node/18

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多