我在一個庫中有100個數據集(稱爲DATA)。當我想將它們合併成一個數據集時,SAS會說一些被定義爲字符和數字的變量。所以我使用以下代碼通過更改變量的格式來修改問題。但是,SAS仍然報告了錯誤:當我嘗試更改格式時,變量已被定義爲字符和數字。SAS變量已被定義爲字符和數字
編輯:我改變了我的代碼,並使用input
函數來解決這個問題。然而,報告同樣的錯誤如圖所示圖:
%macro step1(sourcelib=,source=);
proc sql noprint; /*read datasets in a library*/
create table mytables as
select *
from dictionary.tables
where libname = &sourcelib
order by memname ;
select count(memname)
into:obs
from mytables;
%let obs=&obs.;
select memname
into : memname1-:memname&obs.
from mytables;
quit;
data
%do i=1 %to &obs.;
&source.&&memname&i
%end;
;
set
%do i=1 %to &obs.;
&source.&&memname&i
%end;
;
price1=input(price,best12.);
volume1=input(volume,best12.);
bid_imp__vol1=input(bid_imp__vol,best12.);
Ask_Imp__Vol1=input(Ask_Imp__Vol,best12.);
drop price volume bid_imp__vol ask_Imp__Vol;
run;
data
%do i=1 %to &obs.;
&source.&&memname&i
%end;
;
set
%do i=1 %to &obs.;
&source.&&memname&i
%end;
(rename=(price1=price volume1=volume bid_imp__vol1=bid_imp__vol Ask_Imp__Vol1=Ask_Imp__Vol));
run;
%mend;
%step1(sourcelib='DATA',source=DATA.);
bid_imp__vol1 = input(bid_imp__vol,best12。)我用來更改變量。但是,它仍然報告了同樣的錯誤。 – Neal801
爲了您的分離宏的建議,您能否提供更多信息? – Neal801
您必須在早期的datastep中執行該操作並刪除變量。 – Joe