2013-07-23 123 views
0

我有以下示例數據和'proc means'命令。SAS:PROC MEANS分類變量

data have; 
input measure country $; 
datalines; 
250 UK 
800 Ireland 
500 Finland 
250 Slovakia 
3888 Slovenia 
34 Portugal 
44 Netherlands 
4666 Austria 
run; 
PROC PRINT data=have; RUN; 

以下PROC MEANS命令打印出上面每個國家的列表。在PROC MEANS步驟中,如何將其中一些國家(即英國&愛爾蘭,斯洛伐克/ SLovenia作爲中歐)分組,而不是添加另一個數據表來添加'case when'等?

proc means data=have sum maxdec=2 order=freq STACKODS; 
var measure; 
class country; 
run; 

感謝您的任何幫助。據我所知,您可以在PROC做各種事情設備發出指令本身(如通過這樣限制的國家數量:

proc means data=have(WHERE=(country not in ('Finland', 'UK') 

我想要做的PROC分組手段簡潔命令

感謝

回答

0

,這是非常容易的,需要一個CLASS語句中的任何PROC格式

只需建立一個格式,無論是與代碼或數據;然後應用格式的PROC MEANS語句

proc format lib=work; 
value $countrygroup 
"UK"="British Isles" 
"Ireland"="British Isles" 
"Slovakia","Slovenia"="Central Europe" 
; 
quit; 

proc means data=have; 
class country; 
var measure; 
format country $countrygroup.; 
run; 

通常情況下,國家的數字代碼會更好,然後將它們格式化爲任何時候需要的名稱集合,特別是大寫/等。是非常惱人的,但即使在這裏,這工作得很好。

PROC FORMAT中的CNTLIN=選項允許您從數據集中創建一個格式,其中FMTNAME作爲值語句,START作爲值到標籤,LABEL作爲標籤。 (END =數字結束範圍。)還有其他選項,documentation進一步詳細。