SPSS作為一款數據分析軟體,其實並不適合作數據錄入。目前,多數市場調研公司都使用EpiData軟體作問卷錄入,然後再將錄入結果導入SPSS中,而對於網際網路公司而言,更多的是使用資料庫或.CSV格式文件,SPSS默認讀取的文件類型有11種,本篇先從讀取EXCEL格式文件說起。
GUI操作嚮導方式讀取
SPSS讀取EXCEL格式文件採用嚮導的方式操作非常簡單,文件—打開—數據—EXCEL數據文件格式類型等,嚮導操作唯一值得注意的地方是表格與範圍的選擇以及是否從EXCEL表首行讀取變量名。嚮導讀取EXCEL文件的界面流程參見下圖:
語法方式讀取
利用Syntax語句從EXCEL中讀取數據並沒有太多的技巧,數據讀取過程可以簡單的分為2類,一類是讀取單表數據,另一類則是讀取多表數據(與從資料庫中讀取數據語法類似,只是/CONNECT語句稍有不同)。這裡主要說說怎樣利用syntax語法從單表中讀取數據,例如:從我的文檔中讀取名叫data的EXCEL工作薄中表salary的[A3:H160]的數據,且將讀取數據的第一行作為變量名,其Syntax代碼如下::
get data ①
/type=xls ②
/file="C:/mydocuments/data.xls". ③
/sheet=name 'salary' ④
/cellrange=range 'A3:H160' ⑤
/readnames=on. ⑥
註解:
***①告訴SPSS,你的目的—得到數據(get data)***.
***②讀的數據是什麼類型(.xls or .xlsx or .xlsm)***.
***③告訴SPSS文檔的位置***.
***④告訴SPSS你要讀取那個表(缺失時自動讀取第一個表)***.
***⑤告訴SPSS你要讀取表中那些數據,如果是全部數據則cellrange=fulll***.
***⑥將讀取數據的第一行設置為變量名***.
值得注意的是,上面語句中的④⑤⑥三個子語句都可省略,省略後SPSS將從工作薄中第一個表讀取所有數據,並將第一行默認為變量名,如果第一行為空,變量名則默認為V1,V2……,這一過程和利用菜單向導操作效果一樣。
如何一次讀取多個EXCEL工作表內容?
上面簡單的用語法介紹了如何讀取單張EXCEL表的數據,如果要讀取多張EXCEL表單的數據又該如何操作呢?(註:這裡的多個EXCEL表格必須在同一個工作薄中),其原理其實是將一個EXCEL工作薄當作一個資料庫,然後利用資料庫讀取的方式讀取,關於SPSS如何從資料庫中讀取文件以後再詳細介紹,這裡可以先看看如下範例:
GETDATA
/TYPE=ODBC
/CONNECT=
'DSN=ExcelFiles;DBQ=c:\examples\data\sales.xls;' +
'DriverId=790;MaxBufferSize=2048;PageTimeout=5;'
/SQL =
'SELECTLocation$.[Store Number], State, Region, City,'
' Power,Hand, Accessories,'
' Tires,Batteries, Gizmos, Dohickeys'
' FROM[Location$], [Tools$], [Auto$]'
' WHERE[Tools$].[Store Number]=[Location$].[Store Number]'
' AND[Auto$].[Store Number]=[Location$].[Store Number]'.
上面的代碼和從資料庫中讀取表數據完全一樣,只是在/CONNECT語句上做了些許變化,其他的並無區別,當然重點還是後面的提取數據變量語句/SQL,這裡要說明的是如果提取變量字符中含有空格的話就需要用[ ]給框起來了,正如上面示例代碼所示。
另外,不得不提的是從多表中讀取數據較從單表中讀取數據的一些局限性,比如不能像單表一樣隨意選擇數據讀取範圍;讀取表中的第一行非空字符都將強制讀取為SPSS中的變量;變量類型較單一,只提供了數字和字符兩種數據類型等等。
TIPs:不管採用何種方式讀取EXCEL文件,一定要注意變量格式問題。