1. 程式人生 > >R語言之匯入資料來源(二)

R語言之匯入資料來源(二)

4 匯入XML資料

   R中有若干用於處理XML檔案的包。例如,由Duncan Temple Lang編寫的XML包允許使用者讀取、寫入和操作XML檔案。詳情參閱

5 從網頁抓取資料

在web資料抓取(Webscraping)的過程中,使用者從網際網路上提取嵌入在網頁中的資訊,並將其儲存為R中的資料結構以做進一步的分析。使用函式readLines()下載網頁,然後使用如grep()和gsup()一類的函式處理它。對於結構複雜的網頁,可以使用RCurl和XML包來提取其中想要的資訊。詳情參閱中的"Webscraping using readLines and RCurl"一文。

6 匯入SPSS資料

SPSS資料集可以通過foreign包中的函式read.spss()匯入R中,也可以使用Hmisc包中的spss.get()函式。spss.get()函式是read.spss()的一個封裝。程式碼:

> library(Hmisc)
載入需要的程輯包:lattice
載入需要的程輯包:survival
載入需要的程輯包:Formula
載入需要的程輯包:ggplot2

載入程輯包:‘Hmisc’

The following objects are masked from ‘package:base’:

    format.pval, round.POSIXt, trunc.POSIXt, units

> mydataframe<-spss.get("E:/SPSS案例資料/SPSS案例資料/激素水平.sav",use.value.labels=TRUE)
Warning message:
In read.spss(file, use.value.labels = use.value.labels, to.data.frame = to.data.frame,  :
  <span style="color:#ff0000;">E:/SPSS案例資料/SPSS案例資料/激素水平.sav: Unrecognized record type 7, subtype 18 encountered in system file</span>
> mydataframe
    id  group gender age weisuo changhua  jisu age.cls     lnjisu Rjisu cons
1  001 試驗組     男  42   中度       無  0.18  青年組 -1.7147984  33.5    1
2  002 試驗組     男  38   輕度     輕度  0.08  青年組 -2.5257286  19.0    1
3  003 試驗組     男  45   中度     中度  0.05  青年組 -2.9957323   5.5    1
4  004 試驗組     男  45   中度     輕度  0.43  青年組 -0.8439701  45.0    1
5  005 試驗組     男  43   中度     中度  0.16  青年組 -1.8325815  31.5    1
6  006 試驗組     女  44   重度     輕度  0.05  青年組 -2.9957323   5.5    1
7  007 試驗組     男  45   輕度       無  0.07  青年組 -2.6592600  17.0    1
7 匯入SAS資料

R中設計了foreign包中的read.ssd()和Hmisc包中的sas.get()。但是,對SAS9.1或更高版本並不適用。

   兩種解決方案:

 (1)將SAS資料集儲存為一個逗號分隔的文字檔案(.csv)再匯入R中;

 (2)Stat/Transfer(商業軟體)可將SAS資料集儲存為R資料框。

8 匯入Stata資料

程式碼如下:

> library(foreign)
> mydataframe<-read.dta("檔名(路徑)")
9 訪問資料庫管理系統
   R中有多種面向關係型資料庫管理系統(DBMS)的介面,包括SQL Server、Access、MySQL、Oracle、PostgreSQL、DB2、Sybase、Teradata、以及SQLite。其中一些包通過原生的資料庫驅動提供訪問功能,另一些則是通過ODBC或JDBC來實現訪問的。

 (1)ODBC介面

   第一步:針對你的系統和資料庫型別安裝和配置合適的ODBC驅動;

   第二步:在R中安裝RODBC包。

   R中RODBC包中包含的函式有:


 RODBC包允許R和一個通過ODBC連線的SQL資料庫之間進行雙向通訊。這意味著你不僅可以讀取資料庫中的資料到R中,同時也可以使用R修改資料庫中的內容。

 要將某資料庫中的表(Crime和Punishment)分別匯入為R中的兩個名為crimedat和pundat的資料框,程式碼如下:

> install.packages("RODBC")
> library(RODBC)
> myconn<-odbcConnect("orcl",uid="mydb",pwd="123456")
> crimedat<-sqlFetch(myconn,STUDENT)
> pundat<-sqlQuery(myconn,"select * from TIANCHI")
> close(myconn)
"orcl"是資料來源名稱,"mydb"是使用者名稱,"123456"是密碼,連線字串被傳遞給sqlFetch,它將表複製到R資料框crimedat中。

10 值標籤

   函式factor()可為類別型變數建立之標籤。假設有一個名為gender的變數,其中1表示男性,2表示女性。可以使用程式碼建立值標籤。

> patientdata$gender<-factor(patientdata$gender,levels=c(1,2),labels=c("male","female"))
   其中levels代表變數的實際值,而labels表示包含了理想值標籤的字元型向量。