我有一個每年生成一次的報告。每個報告都有名稱內的年份形式 - report-2011.xls,report-2012.xls等。每個報告包含以下變量:ID,SAL =當年平均月薪,性別(0 =男性,1 =女性),已婚(0 =未結婚,1 =已婚),我需要創建一個宏,根據性別類型和已婚類型計算每年工資的平均值,最小值和最大值。在宏中,我需要包含相關年份的參數。 如何在計算這些參數時分別參考每種類型? 以及如何爲年份var創建單獨的參數?在sas中創建一個宏
0
A
回答
0
proc summary允許您準確控制想要跨越數據的方式。
%macro report(year);
proc import datafile="/path/to/report-&year..xls"
out= salary_data
dbms=csv replace ;
proc summary data = salary_data;
class married gender;
types married gender married*gender;
var sal;
output out = salary_results mean(sal) = mean_salary std(sal) = std_salary;
* Print the summary;
proc print;
* Delete the data and summary after using them;
proc delete data= salary_data salary_results; run;
%mend report;
請注意,proc彙總會產生其他有用的信息,您可以閱讀有關here的其他信息。如果你不需要它們,你可以放下它們。
0
%macro reporting(year, gender, marital_status);
proc means data=data&year min max std; * <== you should have separate datasets for different years
class gender married ;
%mend reporting
%reporting(2015, 1, 1)
這是你正在尋找的東西嗎?
+0
by%reporting(2015,1,1)實際上,我從2015年起生成一份報告所需的統計數據,其中女性已婚?但我實際上需要創建一個宏來分別爲女性和男性分別計算(平均,最小,最大和標準)薪金變量(婚姻狀況也一樣)。 – user3581800
+0
在這種情況下,使用'class'將不那麼麻煩。 – yukclam9
0
我的宏只是一種生成代碼的方法。所以首先設計你想要它產生的代碼。然後你可以弄清楚它的哪些部分有所不同,並用宏變量引用替換它們。宏變量然後成爲您的宏的參數。
proc import datafile="report-2011.xls" out=report_2011 ; run;
proc means data=report_2011 ;
class gender married;
run;
相關問題
- 1. 創建SAS宏以創建一個宏變量
- 2. SAS創建使用宏
- 3. SAS:寫一個宏...
- 4. SAS - 一個宏,在宏中調用一個proc sql
- 5. 創建一個表與SAS
- 6. SAS - 從變量創建宏名稱
- 7. SAS宏:循環來創建變量
- 8. 使用SAS sql創建宏變量
- 9. SAS - 宏調用另一個宏
- 10. SAS:從Proc SQL中創建變量以便在宏中使用
- 11. 如何在另一個宏中反覆執行sas宏?
- 12. 創建一個Excel宏
- 13. sas如何在宏本地中創建所有變量?
- 14. 使用SAS宏變量在PROC中創建變量名稱SQL
- 15. SAS:創建一個爲數據集中的變量添加後綴的宏
- 16. 使用多個宏變量作爲值創建SAS數據集
- 17. SAS-如何PROC EXPORT由宏創建的多個PROC FREQ?
- 18. SAS宏來創建新的變量與64個前綴
- 19. SAS宏:在宏程序中使用sql
- 20. sas宏調用宏
- 21. SAS:創建一個頻率變量
- 22. 從條件創建一個變量sas
- 23. 如何創建一個在SISC/Scheme中生成另一個宏的宏?
- 24. SAS中的Bootstrap宏
- 25. 檢查在SAS-宏
- 26. sas宏在proc sql
- 27. 宏創建宏?
- 28. SAS調用一個宏變量
- 29. 基於SAS中的日期值的宏變量創建
- 30. SAS創建多個表
也許您可能需要一個infile語句/ pipe語句來讀取excel文件,併爲1)year = 2011,2012 ...建立宏,2)其中gender = 1/0的數據步驟3)已婚類型= 1/0,4)調用symputx報告答案。請先顯示你先試過的東西。 – yukclam9
我沒有數據的特定文件以便將其讀入sas,問題是我需要創建一個宏,它將根據定義的參數來模擬此過程。是否有可能沒有一個實際的文件? – user3581800