我沒有SAS的工作知識,但我有一個需要導入和使用的excel文件。在excel文件中有大約100行(觀察值)和7列(數量)。在某些情況下,某個特定的觀察可能沒有任何一列中的數據。在將數據讀入SAS時,我需要完全忽略這一觀察。我想知道這是什麼命令。IGNORE SAS數據導入EXCEL
一個明顯便宜的解決方案是刪除excel文件中缺少數據的行,但我想用SAS命令來做這件事,因爲我想學習一些SAS。
謝謝!
我沒有SAS的工作知識,但我有一個需要導入和使用的excel文件。在excel文件中有大約100行(觀察值)和7列(數量)。在某些情況下,某個特定的觀察可能沒有任何一列中的數據。在將數據讀入SAS時,我需要完全忽略這一觀察。我想知道這是什麼命令。IGNORE SAS數據導入EXCEL
一個明顯便宜的解決方案是刪除excel文件中缺少數據的行,但我想用SAS命令來做這件事,因爲我想學習一些SAS。
謝謝!
如果您有「授權給PC文件的SAS/ACCESS接口」(提示:proc setinit),則可以使用此代碼導入Excel文件。在這裏選項讓你選擇你想要的行保留,在這個例子中,你將保持行,其中列「名」不爲空:
proc import
DATAFILE="your file.xlsx"
DBMS=XLSX
OUT=resulttabel(where=(name ne ""))
REPLACE;
MIXED=YES;
QUIT;
導入不過你想要的數據,例如與IMPORT程序,如Stig Eide所述。
proc import
datafile = 'C:\...\file.xlsx'
dbms = xlsx
out = xldata
replace;
mixed = YES;
getnames = YES;
run;
說明:
如果我理解正確的話,你想刪除每一個觀察值在具有在七列的任何缺失值的數據集。有發燒友方法可以做到這一點,但我推薦一個簡單的方法是這樣的:
data xldata;
set xldata;
where cmiss(col1, col2, ..., col7) = 0;
run;
的CMISS函數計算遺漏值在你每個觀察指定變量的數量,而不管數據類型。由於我們使用的是WHERE CMISS()= 0,所以得到的數據集將只包含沒有任何七列中任何一個缺失數據的記錄。
如有疑問,請嘗試瀏覽SAS online documentation。這是非常徹底的。
由於'IMPORT'不是一個交互式程序,因此該步驟應該以'RUN'而不是'QUIT'來終止。 – 2014-11-17 22:23:42