sas中的proc tabulate功能比較強大,使用好了能節約不少時間而且不易出錯。
一句話:a procedure that displays descriptive statistics in tabular format。其中descriptive statistics可以理解為描述統計學,描述統計學就是這樣乙個工具,它對極其龐雜的資料進行描述、概括或刪減,使其變成能為人理解的東西。
詳細學習tabulate之前,先看乙個簡單的例子,表1是sas自帶的邏輯庫sashelp中的乙個資料集class,它包含了所有學生的性別、年齡、身高和體重資料:
現在的需求是:
按照性別分類、統計物件是年齡和身高、統計專案包括樣本數量、最大值、最小值和平均值,使用的程式如下:
proc tabulate data=sashelp.class ;
class ***;
var age height;
table (age height)*(n max min mean), ***;
run;
執行結果如表2所示:
當然,可以將table語句中的行列互換,修改為" table ***, (age height)*(n max min mean);" 執行結果如表3所示:
在介紹tabulate之前,先介紹幾個基本概念
表緯度有3個,分別是page、row和column,意思分別是頁、行和列,如圖2所示:
分類/種類,它是指tabulate語法中class變數不同值的組合。比如上面的例子中class指定的是***,即按性別進行分類,那麼category有男和女這兩種。
如果class指定的是age,那麼那麼category有11、12、13、14、15、16這6個值。
如果class指定的是*** age,那麼category就有2*6=12個值,分別如下
"男 11",
"男 12",
"男 13",
"男 14",
"男 15",
"男 16",
"女 11",
"女 12",
"女 13",
"女 14",
"女 15",
"女 16",
比如將上面的例子的要求改一下,要求按照姓別和年齡統計分類,統計每種分類的學生數量
proc tabulate data=sashelp.class ;
class *** age;
table ****age, n;
run;
輸出結果如表4所示:
完整的tabulate語法如圖3所示:
這裡先說幾個最重要的
class後跟分類變數(英文class variables),即按哪些變數做分類,這些變數決定了有多少個category。第1個例子中是姓別,它有兩個category。
var 後跟分析變數(英文analysis variables),即要統計分析哪些變數,第1個例子中,是年齡和身高。
table描述了要建立表的表結構,它有3個引數,分別描述page,row和column,引數間以逗號隔開,只有column是必選的引數。
如果有3個引數,那麼3個引數分別表示頁、行和列,輸出表是3維表。
如果有2個引數,那麼2個引數分別表示行和列,輸出是2維表。
如果有1個引數,那麼這個引數表示列。
注意:1. 出現在table 語句裡的變數,之前必須在class或者var語句裡出現過
2. 如果要建立多張表,可以使用多個table語句
table最多支援3維表,每個維度是由緯度表示式( dimension expressions)組成,而dimension expression又由element和operator組成
element可以是 analysis variables、class variables、all、statistics關鍵字、format modifiers、labels等組成;
operator可以是星號*、空白、括號、尖括號;
第乙個例子中的row expression如下:
(age height)*(n max min mean)
我畫了一張簡單的圖,如圖4所示,基本關係就是 tabulate主要有class、var和table語句, table語句由3個緯度表示式組成,每個緯度表示式由element和operator組成。
C PRIMER PLUS 學習筆記(0)
總之,從今天開始,我就算正式學習程式設計了。寫部落格主要還是彌補我差的可怕的記憶力,把自己的一些在看書時的想法記下來。哼,老子坐等腦機介面成熟的那一天,我看誰還背書 說實話,學了c 我才發現,我是所有語言都不想學,好在程式語言看上去結構比英語簡單點。本人懶的一批,之前的不想記,就從書的4.4開始吧。...
8086彙編學習筆記 0
mov ax,bx 將bx中的內容送到ax中 movax,ds address 將ds address所指向的資料送入ax中 乙個字,即兩個位元組。如果只要傳輸乙個位元組可以使用暫存器的高八位 ah 或者底八位 al 進行 movds address ax 將ax中的資料 乙個字單位 送出ds ad...
0 keras學習筆記
目前深度學習應用範圍很廣,為了更快捷的學習使用深度學習的成果,目前正準備學習一下深度學習框架keras 該框架keras是基於theano tensorflow實現的乙個框架,由於theano tensorflow使用較為麻煩,keras將其進行了封裝,便於使用。此外,最主要的一點是,研究科研期間做...