数据步骤中的 SAS 格式
SAS format in data step
我有一个包含 30 多列的 WORK 数据集,但其中只有 2 列是日期字段。 (开始日期和结束日期)。我希望永久数据集中的日期格式是最新的。而不是在 yymmdd10 中。这是工作数据集中的当前格式。当我使用下面的代码时,两个日期字段占据了前两个位置。我不想重新排列位置,同时也不想提及所有 30 多列的格式。如果有任何办法,有人可以帮助我吗?
data DLR.DEALER;
set work.dealer_invoices; * this dataset contains more than 30 columns;
format start_dt end_dt date.;
run;
我在我们的网站上找不到任何解决方案。非常感谢任何帮助,而不仅仅是让我提及格式声明中的所有列 :) 提前致谢。
当然,格式声明不应该对给定其位置的排序产生任何影响。
解决方法是使用 PROC DATASETS
来更改格式,而不是在数据步骤中。
您也可以 "mention all columns" 相当轻松。
proc sql;
select name into :namelist separated by ' '
from dictionary.columns
where libname='WORK' and memname='DEALER_INVOICES'
order by varnum;
quit;
然后
data DLR.DEALER;
retain &namelist;
set work.dealer_invoices;
format...;
run;
我有一个包含 30 多列的 WORK 数据集,但其中只有 2 列是日期字段。 (开始日期和结束日期)。我希望永久数据集中的日期格式是最新的。而不是在 yymmdd10 中。这是工作数据集中的当前格式。当我使用下面的代码时,两个日期字段占据了前两个位置。我不想重新排列位置,同时也不想提及所有 30 多列的格式。如果有任何办法,有人可以帮助我吗?
data DLR.DEALER;
set work.dealer_invoices; * this dataset contains more than 30 columns;
format start_dt end_dt date.;
run;
我在我们的网站上找不到任何解决方案。非常感谢任何帮助,而不仅仅是让我提及格式声明中的所有列 :) 提前致谢。
当然,格式声明不应该对给定其位置的排序产生任何影响。
解决方法是使用 PROC DATASETS
来更改格式,而不是在数据步骤中。
您也可以 "mention all columns" 相当轻松。
proc sql;
select name into :namelist separated by ' '
from dictionary.columns
where libname='WORK' and memname='DEALER_INVOICES'
order by varnum;
quit;
然后
data DLR.DEALER;
retain &namelist;
set work.dealer_invoices;
format...;
run;