我試圖在SAS中構建一個循環來上傳幾個文件,並且遇到了幾個需要解決的問題。當前代碼:SAS:試圖構建一個循環來上傳多個文件
%Macro Weatherupload(File=, output=);
proc import datafile = &File;
out = &output;
dbms=dlm replace;
delimiter= ",";
getnames=yes;
guessingrows = 1000;
run;
%Mend Weatherupload;
%Macro WeatherPrepare(input=, output=);
data &output (keep=Wban_Number _YearMonthDay DewPoint Temp _Avg_Dew_Pt _Avg_Temp year month day);
set &input;
DewPoint = Input(compress(_Avg_Dew_Pt,"*"), 3.);
Temp = Input(compress(_Avg_Temp,"*"), 3.);
year = (_yearmonthday - mod(_yearmonthday, 10000))/10000;
month = ((_yearmonthday - mod(_yearmonthday, 100)) - (_yearmonthday - mod(_yearmonthday,10000)))/100;
day = mod(_yearmonthday, 100);
drop _Avg_Dew_Pt _Avg_Temp _YearMonthDay;
run;
%Mend WeatherPrepare;
data temperatures;
do i = 1999 to 2015;
do j = 1 to 12;
name = 'C:\Users\DILLON.SAXE\Documents\'||i||j||'.tar'||' \'||i||j||'daily.txt';
output = i||j||'weather';
final = i||j||'final';
%Weatherupload(File=name, output=output)
%WeatherPrepare(input=output, output=final)
end;
end;
run;
的目標是通過幾個文件來運行,在多個文件夾,在月+日+標題的其餘部分列出,(目前)上傳數據的兩個變量從他們。後來我會想要添加合併文件,並做更多的數據工作,但目前這是宏觀問題和上傳的問題。
有沒有辦法在循環中使用proc上傳,或者在循環中使用另一個數據步驟?
我得到的錯誤「比(某物)更多的位置變量」(我忘記了確切的錯誤,但它列出了位置變量)。我試過在宏中添加和刪除逗號,但一直無法擺脫這個錯誤。有任何想法嗎?
沒有我熟悉的proc上傳。 – Reeza
@Reeza [PROC UPLOAD](http://support.sas.com/documentation/cdl/en/connref/61908/HTML/default/viewer.htm#a002558373.htm)是SAS/Connect的一部分。它不再被廣泛使用。 – Joe
上傳哪裏? SAS服務器,FTP,HTTP? – vasja