【发布时间】:2015-10-19 14:58:51
【问题描述】:
我想知道如何使用第一个数据集中的变量值在 SAS 中合并两个数据集,以选择和测试第二个数据集中的变量。
以两个数据集为例。第一个数据集包含四个婴儿的名字和他们出生的日子。第二个数据集包含三位医生和一组指示变量,记录每位医生是否在特定日期工作。例如,史密斯博士仅在第 2 天和第 3 天工作。我想创建一个数据集,列出婴儿出生当天医生正在工作的所有可能的婴儿医生组合。
data babies;
input baby_name $ birth_day;
datalines;
Jake 1
Sonny 4
North 5
Apple 6
;
run;
data doctors;
input DrLastname $ day1 day2 day3 day4 day5 day6;
datalines;
Jones 1 0 0 1 1 1
Smith 0 1 1 0 0 0
Lewis 1 1 1 0 0 0
;
run;
解决方案似乎应该是这样的
proc sql;
create table merged as
select babies.*, doctors.*
from babies, doctors
where doctors.day(babies.birth_day) = 1; *<--- incorrect;
quit;
输出应该是:
baby_name birth_day DrLastName
Jake 1 Jones
Jake 1 Lewis
Sonny 4 Jones
North 5 Jones
Apple 6 Jones
我遇到过几次这个问题,很想知道在 SAS 中是否可以进行这种合并。感谢您提供的任何帮助。
【问题讨论】: