SAS 列名替换方案



我有一个使用proc sql的传递查询(摘录如下(,其中一些结果名称被修改,因为它们不是有效的 SAS 名称。1A_A取代,2A_A0取代,并进行一些其他的更改。我的问题是:

  • 是否有文件解释名称替换规则,例如2A变得_A0
  • 我可以更改 SAS 更正名称的方式吗?例如,我可以让1A成为_1A而不是_A吗?

.

proc sql;
connect to oracle as clc([omitted]);
CREATE table out.bk_ald as
SELECT *
FROM connection to bpm (
SELECT
, "1A"
, "1B"
, "1C"
, "1D"
, "1E"
, "2A"
, "2B"
, "2C"
...

您无法更改算法,我不确定它是否已发布。 但是,您可以在 Oracle 端自行重命名该列。

select * from connection to oracle (select "1A" as "_1A", ...);

或者在 SAS 端重命名。SAS 会将原始名称存储为变量的标签。 您可以查询元数据并使用它来重命名变量。

proc contents data=bk_ald noprint out=contents; run;
proc sql noprint ;
select catx(name,'=',cats('_',label)) into :rename separated by ' '
from contents 
where upcase(name) ne upcase(label)
;
quit;
data want ;
set bk_ald;
rename &rename ;
run;

相关内容

  • 没有找到相关文章

最新更新