The Little SAS Book 閱讀筆記:
第一章 SAS軟件入門(mén)
1.1 SAS語(yǔ)言
許多軟件要么是菜單驅(qū)動(dòng)缩膝,要么是命令驅(qū)動(dòng)(輸入命令——看結(jié)果)管嬉。SAS兩者都不是秩铆,在SAS中倒庵,你用一個(gè)叫做SAS程序的一系列指令語(yǔ)句怕午,這些程序可以表達(dá)出你想做的事情陋守,并用SAS語(yǔ)言寫(xiě)下來(lái)震贵。
一個(gè)SAS程序就是一個(gè)按順序執(zhí)行的語(yǔ)句序列,一個(gè)語(yǔ)句給SAS下達(dá)信息和指令水评,且必須要正確的安放猩系。一個(gè)常用來(lái)與SAS程序做類(lèi)比的例子是去銀行取款,你進(jìn)入銀行中燥、排隊(duì)寇甸、輪到你,那么你會(huì)對(duì)柜臺(tái)誰(shuí)你想做的事疗涉,敘述語(yǔ)句可能會(huì)是這樣:
I would like to make a withdrawal.
My account number is 0937.
I would like$200.
Give me five 20s and two 50s.
注意第一句話說(shuō)了你想做的事情拿霉,之后把相關(guān)信息傳遞給柜臺(tái)并幫你完成要求。這里信息傳遞的順序不重要咱扣,重要的是在你的敘述中绽淘,首先要說(shuō)明你要做什么。你不能先說(shuō):“Give me five 20s and two 50s.”這會(huì)使柜臺(tái)小姐一頭霧水闹伪。此外沪铭,你必須確保后面的語(yǔ)句都圍繞第一句展開(kāi)壮池。
SAS語(yǔ)句 像任何語(yǔ)言一樣,SAS語(yǔ)句的編寫(xiě)也需要遵守一些語(yǔ)法規(guī)則杀怠。幸運(yùn)的是椰憋,相比英語(yǔ)來(lái)說(shuō),SAS語(yǔ)句的規(guī)則不僅少赔退,而且簡(jiǎn)單橙依。
最重要的規(guī)則是:
每一個(gè)SAS語(yǔ)句都由一個(gè)分號(hào)結(jié)尾
聽(tīng)起來(lái)很簡(jiǎn)單,但即使最富有經(jīng)驗(yàn)的SAS程序員也會(huì)偶然忘記分號(hào)离钝。如果你能記住這個(gè)規(guī)則票编,再來(lái)看看另外兩個(gè)規(guī)則吧。
SAS程序布局 讓每一條語(yǔ)句看起來(lái)整潔卵渴、用縮進(jìn)來(lái)表現(xiàn)語(yǔ)句的各個(gè)部分慧域,這是很有用的,但不是必須的:
? SAS語(yǔ)句不區(qū)分大小寫(xiě)浪读。
? 一條語(yǔ)句可以持續(xù)到第二行(只要不把一個(gè)單詞分開(kāi))昔榴。
? 幾條語(yǔ)句可以用一行。
? 可以在任何一列中開(kāi)始一條語(yǔ)句
注釋 可以在你的程序中插入一些注釋碘橘,讓它更容易明白互订。即使你插入一些你喜歡的食物品名也不會(huì)對(duì)程序有所影響,因?yàn)镾AS不讀取注釋痘拆。但不要忘記注釋是為了讓某人更輕松的學(xué)習(xí)你的程序仰禽,并明白你為什么這么做。
*Read animals’weights from file;
DATA animals;
INFILE’c:\MyRawData\Zoo.dat’;
INPUT Lions Tigers;
PROC PRINT DATA=animals; /*Print the results*/
RUN;
有兩種注釋方法纺蛆,一種是*號(hào)和吐葵;號(hào);一種是用/* */表示桥氏,注意第二種注釋方法不能放在第一列
錯(cuò)誤 SAS程序通常將執(zhí)行的錯(cuò)誤標(biāo)注為醒目的紅色字母温峭,你可能忘了分號(hào),拼錯(cuò)了字母字支,按錯(cuò)了鍵盤(pán)凤藏,一個(gè)小錯(cuò)誤會(huì)使得整個(gè)程序無(wú)法運(yùn)行。
1.2 SAS數(shù)據(jù)集
在你進(jìn)行分析堕伪、撰寫(xiě)報(bào)告揖庄、對(duì)你的數(shù)據(jù)進(jìn)行任何處理之前,SAS必須能夠處理你的數(shù)據(jù)欠雌,你的數(shù)據(jù)必須是一種叫SAS數(shù)據(jù)集的特殊形式抠艾。因?yàn)镾AS非常靈活,能夠讀取任何形式的數(shù)據(jù)桨昙,所以將你的數(shù)據(jù)變成SAS數(shù)據(jù)集是一件非常簡(jiǎn)單的事检号。
變量和觀測(cè)值 在傳統(tǒng)的SAS術(shù)語(yǔ)中,數(shù)據(jù)包括變量和觀測(cè)值蛙酪。采用相關(guān)的數(shù)據(jù)庫(kù)的術(shù)語(yǔ)齐苛,SAS數(shù)據(jù)集也被叫做表、觀測(cè)值也被叫做行桂塞、變量也被叫做列凹蜂,你可以看到下面這個(gè)包含一些數(shù)據(jù)的表。
數(shù)據(jù)類(lèi)型 ?未加工的數(shù)據(jù)有多種形式阁危,但SAS 將其簡(jiǎn)單化玛痊。在SAS 中只有兩種數(shù)據(jù)類(lèi)型——數(shù)值型和字符型。數(shù)值型完全是數(shù)據(jù)狂打,可以被加減乘除擂煞、可以是正負(fù)且是小數(shù)。字符變量是除數(shù)值之外的類(lèi)型趴乡,可以是數(shù)值对省、字母、和一些特殊的字符(¥晾捏、]锵选),最多可以占用32767個(gè)字節(jié)長(zhǎng)度惦辛。如果一個(gè)變量既包括數(shù)字又包括字符劳秋,那么它一定是字符變量。如果只包括數(shù)字胖齐,可能是字符變量也可能是數(shù)值變量玻淑。在上面這個(gè)表中,姓名是字符變量市怎,身高和體重是數(shù)值變量岁忘,ID,既可能是數(shù)值有可能是字符区匠,依據(jù)你的選擇干像。
缺失值 ? 數(shù)據(jù)有時(shí)會(huì)有些不完美,某些變量的個(gè)別觀測(cè)值會(huì)缺失驰弄。字符變量的缺失值用空格表示麻汰,數(shù)值變量的缺失值用句號(hào)(.)表示。上表中戚篙,體重的第五個(gè)觀測(cè)值缺失五鲫,用.表示。姓名的第六個(gè)觀測(cè)值缺失岔擂,用空格表示位喂。
SAS 數(shù)據(jù)集的大小 ?在SAS 9.1 之前(prior to SAS 9.1)浪耘,SAS 數(shù)據(jù)集可以包含32767 個(gè)變量,從SAS 9.1 開(kāi)始(beginning with SAS 9.1)塑崖,SAS 可包含的最多變量數(shù)由你的電腦可用資源決定(內(nèi)存七冲,CUP?)规婆。但是超過(guò)32767 個(gè)變量的SAS 數(shù)據(jù)集不能用在早期的SAS 版本上澜躺。
SAS 命名規(guī)則? 為你的變量和數(shù)據(jù)集命名,使它們?nèi)菀妆槐鎰e抒蚜。A,B,C 這樣的名字可能看起來(lái)很完美掘鄙,寫(xiě)程序的時(shí)候也很方便,但當(dāng)你6 個(gè)月后再使用這些數(shù)據(jù)時(shí)嗡髓,你會(huì)發(fā)現(xiàn)name操漠,height,weight 這樣的名字更有用器贩。為變量和數(shù)據(jù)集命名時(shí)要遵守如下規(guī)則:
? 名字的長(zhǎng)度要小于等于 32 個(gè)字節(jié)颅夺。
? 以字母或下劃線開(kāi)頭。
? 可以包含字母蛹稍、數(shù)字吧黄、或者是下劃線,不能是%$!*&#@唆姐。
? 可以是小寫(xiě)或大寫(xiě)字母拗慨,且不區(qū)分大小寫(xiě)。
SAS 數(shù)據(jù)集儲(chǔ)存的文件 SAS 數(shù)據(jù)集包含了一些類(lèi)似名稱奉芦、創(chuàng)建日期赵抢、創(chuàng)建用的SAS 版本等信息。SAS 也儲(chǔ)存了每個(gè)變量的信息声功,包括名稱烦却、類(lèi)型、長(zhǎng)度先巴、數(shù)據(jù)集中的位置其爵。這些信息叫做數(shù)據(jù)集的描述部分,它使得數(shù)據(jù)集可以自我編制(self-documenting)伸蚯。