天天看點

《R語言與資料挖掘最佳實踐和經典案例》—— 2.3 從SAS中導入資料

本節書摘來自華章出版社《r語言與資料挖掘最佳實踐和經典案例》一 書中的第2章,第2.3節,作者:(澳)yanchang zhao,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

foreign包[r-core,2012]提供了函數read.ssd(),該函數可以将sas中的資料集(.sas7bdat檔案)導入r中。下面是成功導入資料所需要遵循的幾個關鍵點:

你的計算機中必須成功安裝了sas,函數read.ssd()将調用sas來讀取sas資料集,并将讀取的資料集導入r中。

sas資料集的檔案名長度不能超過8個字元。否則,資料的導入将會失敗。而從.csv檔案中導入資料集時沒有該限制。

在資料導入的過程中,如果變量名超過8個字元将會被截斷為8個字元的長度,這樣将導緻無法正确了解變量的含義。一種解決辦法就是從.csv檔案中單獨地導入變量名,這樣可以保持完整的變量名。

一個隻包含了變量名的空.csv檔案可以通過以下方式建立。

1)從dumdata中建立一個空的sas表dumvariables:

《R語言與資料挖掘最佳實踐和經典案例》—— 2.3 從SAS中導入資料

2)将表dumvariables導出到一個.csv檔案中。

下面是示範從sas資料集導入資料的例子。假設在檔案夾“current working directory/data”中有一個名為“dumdata.sas7bdat”的sas資料檔案和一個名為“dumvariables.csv”的.csv檔案。

《R語言與資料挖掘最佳實踐和經典案例》—— 2.3 從SAS中導入資料
《R語言與資料挖掘最佳實踐和經典案例》—— 2.3 從SAS中導入資料

注意,上面例子中的變量名已經被截斷,完整的變量名使用下面的代碼從一個.csv檔案導入。

《R語言與資料挖掘最佳實踐和經典案例》—— 2.3 從SAS中導入資料

盡管可以将sas資料集先導入一個.csv檔案中再從.csv檔案導入r中,但是這種做法對于具有某種特定格式的資料存在一些問題,例如一個數值型變量的值為“$100 000”,這種情況下最好是從“.sas7bdat”檔案導入,但是變量名可能需要使用上面的方式單獨導入r中。

另一種從sas資料集中導入資料的方法是使用函數read.xport()來讀取一個sas轉換(xport)格式的檔案。

繼續閱讀