根据来自另一个数据集的 PROC SQL 的结果更新 SAS 数据集
Update SAS dataset based on results from a PROC SQL from another dataset
此处为 SAS 新用户:我有一个由 PROC SQL 语句创建的数据集 (table):
proc sql;
create table work.dm_1 as
select distinct a.subject, c.dsyn as DSYN_DS_1, d.dsyn as DSYN_DS_2
from s_raw.dm_1 a
left join work.edt_eg b
on a.subject=b.subjid
left join s_raw.ds_1 c
on a.subject=c.subject
left join s_raw.ds_2 d
on a.subject=d.subject
where c.DSYN='NO' and d.DSYN='NO';
quit;
使用此 table(工作。dm_1)的结果,我想修改另一个(现有的)table(work.edt_ecg,从先前的程序创建) select 匹配记录(在 dm_1 中使用 subjid,在 edt_eg 中使用 subjid)来自 table 在上面的 proc sql 中,并更新 table work.edt_ecg。我尝试了以下方法:
proc sql;
update table work.edt_eg as
select *
from work.edt_eg where subjid in (select distinct subject from work.dm_1);
quit;
但这对我不起作用!欢迎任何想法
您应该创建一个新的 table 或查看您需要的数据子集
create view work.edt_eg_wanted as
select *
from work.edt_eg
where subjid in (select distinct subject from work.dm_1);
或从现有 table
中删除所有不需要的观察结果 (1)
delete *
from work.edt_eg
where subjid not in (select distinct subject from work.dm_1);
(由于您没有提供示例数据,因此未测试此代码)
(1) 观察是 SAS 在 table 中用于行的词。这是因为 SAS 最初是由统计学家编写的。
此处为 SAS 新用户:我有一个由 PROC SQL 语句创建的数据集 (table):
proc sql;
create table work.dm_1 as
select distinct a.subject, c.dsyn as DSYN_DS_1, d.dsyn as DSYN_DS_2
from s_raw.dm_1 a
left join work.edt_eg b
on a.subject=b.subjid
left join s_raw.ds_1 c
on a.subject=c.subject
left join s_raw.ds_2 d
on a.subject=d.subject
where c.DSYN='NO' and d.DSYN='NO';
quit;
使用此 table(工作。dm_1)的结果,我想修改另一个(现有的)table(work.edt_ecg,从先前的程序创建) select 匹配记录(在 dm_1 中使用 subjid,在 edt_eg 中使用 subjid)来自 table 在上面的 proc sql 中,并更新 table work.edt_ecg。我尝试了以下方法:
proc sql;
update table work.edt_eg as
select *
from work.edt_eg where subjid in (select distinct subject from work.dm_1);
quit;
但这对我不起作用!欢迎任何想法
您应该创建一个新的 table 或查看您需要的数据子集
create view work.edt_eg_wanted as
select *
from work.edt_eg
where subjid in (select distinct subject from work.dm_1);
或从现有 table
中删除所有不需要的观察结果 (1)delete *
from work.edt_eg
where subjid not in (select distinct subject from work.dm_1);
(由于您没有提供示例数据,因此未测试此代码)
(1) 观察是 SAS 在 table 中用于行的词。这是因为 SAS 最初是由统计学家编写的。