1. 程式人生 > >R語言如何匯入資料

R語言如何匯入資料

      在使用R的時候,我們肯定需要匯入資料,現在總結一下如何匯入不同型別的資料:

1.使用鍵盤輸入資料

        在匯入資料比較少的時候,我們使用這種方法。R中的函式 edit() 會自動呼叫一個允許手動輸入資料的文字編輯器。具體步驟如下:
(1) 建立一個空資料框(或矩陣) ,其中變數名和變數的模式需與理想中的最終資料集一致;
(2) 針對這個資料物件呼叫文字編輯器,輸入你的資料,並將結果儲存回此資料物件中。在下例中,你將建立一個名為 mydata 的資料框,它含有三個變數: age (數值型) 、 height(字元型)和 weight (數值型) 。然後通過edit()函式呼叫文字編輯器,鍵入資料,最後儲存結果。編輯器介面如下,我們在這個介面可以輸入變數值,也可以改變變數型別。

mydata<-data.frame(age=numeric(0),height=numeric(0),weight=numeric(0))
edit(mydata)


        需要注意的是函式 edit() 事實上是在物件的一個副本上進行操作的。如果你沒有將它其賦值到一個物件,你的所有修改將會全部丟失!

2.匯入帶分隔符的文字檔案資料/CSV檔案

       read.table() 可以從帶分隔符的文字檔案中匯入資料。此函式可讀入一個表格格式的檔案並將其儲存為一個數據框。其語法如下:

read.table(file,header=value,sep="delimter",row.names="name"

)

file表示檔名,header表示表的首行是否包含變數值的邏輯值,sep 用來指定分隔資料的分隔符, row.names 用以指定一個或多個表示行識別符號的變數,是個可選參數,他還有許多引數,可以通過幫助文件進行檢視。

3.匯入Excel資料

       雖然Excel可能是世界上最流行的資料分析工具,但R如果直接讀取Excel資料還是比較困難的。

但我們可以在Excel中將資料將其匯出為一個逗號分隔檔案(csv) ,並使用前文描述的方式將其匯入R中。在Windows系統中,你也可以使用 RODBC 包來訪問Excel檔案。但它好像只能在32位的R軟體上面使用。雖然也有一些包可以這些問題,比如gdata,XLConnect,xlsReadWrite等,但它的有許多前提要求,比如java環境,Per,或者32-bit R。因此一般情況將資料轉換為csv檔案或者將資料匯入到資料庫在匯入在R。

4.匯入XML資料

       強大的R中有若干用於處理XML檔案的包。 XML 包允許使用者讀取、寫入和操作XML檔案。因為我還沒有遇到這種資料,因此還不太清楚xml包大體如何使用,感興趣的朋友可以下載xml包,通過幫助文件進行學習。

5.從網頁抓取資料

        不僅python可以爬取網頁資料,R也可以在Web資料抓取。在這個的過程中,使用者可以從網際網路上提取嵌入在網頁中的資訊,並將其儲存為R中的資料結構以做進一步的分析。 完成這個任務的一種途徑是使用函式 readLines()下載網頁,然後使用如 grep() 和 gsub() 一類的函式處理它。對於結構複雜的網頁,可以使用RCurl 包和 XML 包來提取其中想要的資訊。也可以在這裡瞭解更多資訊http://www.programmingr.com/

6.匯入SPSS資料

         我們可以呼叫通過 foreign 包中的函式 read.spss() 將SPSS資料集可以匯入到R中,也可以使用 Hmisc 包中的 spss.get() 函式。函式 spss.get() 是對 read. spss() 的一個封裝,它可以為你自動設定後者的許多引數,讓整個轉換過程更加簡單一致,最後得到資料分析人員所期望的結果。使用的時候我們只需要安裝Hmisc 包,在較新的R中foreign 包已被預設安裝。

 mydata<-spss.get("data.sav",use.value.labels=TRUE)

      這段程式碼中,data.sav 是要匯入的SPSS資料檔案, use.value.labels=TRUE 表示讓函式將帶有值標籤的變數匯入為R中水平對應相同的因子, mydataframe 是匯入後的R資料框。

7.讀入資料庫資料

      在訪問資料庫的時候,我們都需要一個odbc驅動 我們需要下載安裝RODBC包。這一塊可以參考我寫的另一篇博文。如何使用R來連線各個資料庫