2014-03-27 76 views
0

我想從proc freqproc tabulate或者從我的數據集類似的東西在那裏我有三個變量創建一個類似如下的表:andel(股),Aar(年)和Gruppe(組) 。SAS的PROC頻率總結第三個變量

在我的數據集中,我有大約50萬觀察值,其中1個觀察值表示一個人。

如何創建表格而不必通過大量數據集編程?

我曾嘗試:

proc freq data= data; 
Tables Aar*gruppe*andel/nopercent norow nocol nocum ; 
run; 

proc tabulate data= data missing; 
class gruppe aar andel ; 
Table aar*gruppe*andel , all/ rts=180; 
run; 

但沒有這項工作的 - 這是因爲我希望股份(可變andel)做個總結,而不是計算每個組gruppeaar年。而且我不想爲每個gruppe總計andel每年的一張表(6張桌子)。

enter image description here

回答

1

PROC TABULATE可能是走在正確的地方。它有classvar的概念。 Class是用來分組的東西; var要做些什麼計算上(總和,平均等)

proc tabulate data= data missing; 
class gruppe aar ; 
var andel; 
Table gruppe,aar*andel*sum/ rts=180; 
run; 

類似的東西應該是你的出發點。逗號從表中分隔行和列;最右邊是列,第二個最右邊是行,第三個最右邊是頁面(最左邊)。明星結合元素;在這裏,這說

Create a table where rows are groups and columns are years, and for each year/group combination, display the sum of shares.

的*溫安洛*總和既可以後GRUPPE或AAR之後,它在很大程度上也無所謂去(也有一些時候,它可以有所作爲,而且傳統上它被放置在列變量後當它不重要時,但在這種情況下它將是相同的),除了標籤所在的位置,表明分析變量是什麼(如果您需要 - 可以將其刪除)。

+0

感謝您的消化。我試過你的代碼,但SAS給了我這個錯誤:錯誤:名稱類型(andel)未知。反之,我在類聲明中添加了「andel」,然後SAS給了我這個錯誤:錯誤:除N之外的統計信息在下面的嵌套中沒有分析變量:gruppe * aar * andel * Sum。我還不是很瞭解日誌 - 任何建議? – user1626092

+0

HALLELUJA - 現在起作用了。語法是:proc tabulate data = data missing; var andel; class gruppe aar; Table gruppe,aar * andel/rts = 180; 跑; – user1626092

+1

啊,是的。我錯過了VAR聲明,對不起! – Joe