Sas 使用具有灵活名称和LIB的PROC copy创建表的副本
我读到Sas 使用具有灵活名称和LIB的PROC copy创建表的副本,sas,copy,Sas,Copy,我读到PROC COPY比DATA步骤快 我理解以下工作原理: proc copy in=lib1 out=lib2; select have; run; 但是,我希望在输出的名称上有一些灵活性,主要是因为我希望复制源所在库中的表 基本上,我想要(如果可能的话)更高效的版本: DATA lib1.have; set lib2.want; run; 如果PROC COPY比数据步骤快,可能是因为它知道在写回数据之前不需要操作数据 为什么不使用PROC APPEND实现您想要的功能?使用
PROC COPY
比DATA
步骤快
我理解以下工作原理:
proc copy in=lib1 out=lib2;
select have;
run;
但是,我希望在输出的名称上有一些灵活性,主要是因为我希望复制源所在库中的表
基本上,我想要(如果可能的话)更高效的版本:
DATA lib1.have;
set lib2.want;
run;
如果PROC COPY比数据步骤快,可能是因为它知道在写回数据之前不需要操作数据 为什么不使用PROC APPEND实现您想要的功能?使用BASE=选项设置目标表,使用DATA=选项设置源表
proc append data=lib1.have base=lib2.want ;
run;
如果要确保尚未存在表lib2.want
,请在其前面添加proc delete
步骤
proc delete data=lib2.want;
run;
正是我要发布的内容。日志将显示基本数据不存在,因此正在复制该表。我总是在
proc datasets
中使用前面的delete
语句来执行此操作,以防append多次运行