原文鏈接:http:///?p=5211電子表格不是數(shù)據(jù)庫(kù)。但是,我們中的許多人使用電子表格就好像它們是數(shù)據(jù)庫(kù)一樣,然后當(dāng)電子表格布局不支持?jǐn)?shù)據(jù)庫(kù)樣式嚴(yán)格的可預(yù)測(cè)行,列和變量類型時(shí),我們就會(huì)掙扎 - 這是分析和報(bào)告所需的基本元素。如果您使用SAS從Microsoft Excel讀取數(shù)據(jù),當(dāng)您需要的數(shù)據(jù)不是從單元格A1開始時(shí),您可以做什么? 通過(guò)設(shè)計(jì),SAS可以從電子表格中的任何單元格范圍讀取數(shù)據(jù)。在本文中,我將介紹如何在PROC IMPORT中使用RANGE語(yǔ)句來(lái)獲取所需的數(shù)據(jù)。 對(duì)于SAS 9.4及更高版本,SAS建議使用DBMS = XLSX以獲得最大的靈活性。它適用于所有操作系統(tǒng),無(wú)需其他組件,如PC文件服務(wù)器。您的Excel文件必須采用Excel 2007或更高版本格式(XLSX)。你這樣做需要SAS / ACCESS到PC文件的許可證。(剛剛學(xué)習(xí)?這些DBMS = XLSX技術(shù)也適用于SAS大學(xué)版。) 如果您的Excel數(shù)據(jù)不是從單元格A1(導(dǎo)入過(guò)程的默認(rèn)起點(diǎn))開始,那么您可以添加包含特定單元格的RANGE =值。最簡(jiǎn)單的方法是在Excel中使用命名范圍來(lái)定義數(shù)據(jù)的確切邊界。 如何添加命名范圍要在Excel中定義命名范圍,請(qǐng)突出顯示要包括的單元格范圍,然后只需在“名稱框”中鍵入范圍的新名稱: 然后保存Excel文件。 然后要導(dǎo)入SAS,請(qǐng)?jiān)赗ANGE =選項(xiàng)中指定范圍名稱:
對(duì)單元格區(qū)域使用Excel表示如果您不提前知道范圍怎么辦?您可以使用PROC IMPORT讀取整個(gè)工作表,但結(jié)果將不包含所需的列標(biāo)題和類型??紤]這樣一張表: 這段代碼會(huì)讀它:
但結(jié)果將包含許多空單元格,并且值將作為所有字符類型讀?。?/p> 通過(guò)附加編碼,您可以使用DATA步驟將此結(jié)果“修復(fù)”到另一個(gè)傳遞中?;蛘?,如果您愿意為特定單元格區(qū)域添加帶有Excel表示法的RANGE選項(xiàng),則可以在第一遍中正確閱讀:
如何“發(fā)現(xiàn)”Excel文件的結(jié)構(gòu)您還可以使用LIBNAME XLSX從Excel中讀取整個(gè)工作表,或者只是作為發(fā)現(xiàn)步驟在運(yùn)行PROC IMPORT之前查看Excel文件包含的工作表。但是,LIBNAME XLSX不顯示Excel命名范圍。 在SAS for Windows系統(tǒng)上,您可以使用LIBNAME EXCEL(32位)或LIBNAME PCFILES(64位)來(lái)顯示有關(guān)Excel文件的更多信息。
請(qǐng)注意,DBMS = XLSX不支持我們?cè)谂f版DBMS = XLS(僅支持舊格式XLS文件)中看到的一些選項(xiàng),例如STARTROW和NAMEROW。DBMS = XLSX支持GETNAMES(將工作表或范圍的第一個(gè)記錄視為變量名稱)。 |
|
來(lái)自: 拓端數(shù)據(jù) > 《待分類》