R語言之讀取Excel及csv資料
1、讀取R內建資料 data()
data() #檢視資料集列表
data(mtcars) #載入資料集
如用library()載入程式包後,可用data(package=”“)檢視包內附帶的資料集。
library(vcd)
data(package="vcd") #檢視vcd包中的資料集
data(Arthritis,package = "vcd") #載入資料集Arthritis
2、鍵盤輸入資料
a、呼叫文字編輯器edit()。
首先必須建立一個空的資料框或者矩陣,且資料框或者矩陣中的變數名與變數型別必須與最終資料集一致。下列程式碼建立了一個名為mydata的資料框,資料框裡儲存了姓名,英語成績,數學成績三個變數,且通過呼叫文字編輯器edit()
mydata<-data.frame(name=character(0),English=numeric(0),Math=numeric(0)) #建立一個空的資料框
mydata<-edit(mydata)
mydata
程式執行結果如下:
可在此資料編輯器中直接輸入資料,或者通過單擊來修改變數名或者變數型別,也可以增加變數。
b、直接在程式中嵌入資料,程式碼如下:
> mydatatext<-"
+ name English Math
+ 張三 92 93
+ 李四 80 92
+ "
> mydata<-read.table(header=T,text=mydatatext)
> mydata
name English Math
1 張三 92 93
2 李四 80 92
3、匯入帶分隔符的文字檔案(ASCII)
使用read.table()匯入一個帶分隔符的文字檔案,其輸出型別為資料框。語法如下:
read.table(file , header=F , sep=”” ,quote , row.names , col.names , na.strings=”NA” , colClasses , skip , stringsAsFactors=T, blank.lines.skip=T, strip.white=F, text,…)
引數 | 引數的解釋 |
---|---|
file | 需要讀入的檔名或者路徑。當需要讀入的檔案在R的工作目錄下時,file=files.name,否則file=”檔案的儲存路徑”,如以下程式碼中所示。也可以更改需讀入檔案的儲存目錄為R的工作目錄,然後file=file.names即可讀入檔案,但此法比較繁瑣,一般不推薦。 |
header | 是否檔案的讀入第一行,預設值為FALSE。 |
sep | 檔案中分開資料的分隔符。預設為sep=”“,表示分隔符為一個或多個空格、換行或回車。若分隔符為逗號,則sep=”,”;若為製表符,則sep=”\t”。 |
quote | 設定如何引用字元型變數。若沒有分隔符,則quote=”\”。 |
row.names | 用於指定行名的可選引數。 |
col.names | 若header=F,用於指定列名的可選引數.如col.names=c(“name”,”English”)。 |
na.strings | 用於表示缺失值的字元向量。預設為NA。即將NA判斷為缺失值,也可自行定義表示缺失值的字元。 |
colClasses | 每一列的變數型別。如colClasses=c(“numeric”,”character”)表示將第一列定義為數值型,第二列定義為字元型。 |
skip | 讀取資料前跳過的行數。 |
stringsAsFactors | 字元向量是否需轉化為因子,預設值為T,可能會被colClasses所覆蓋。處理大型文字檔案時,設定為F可提高處理速度。 |
blank.lines.skip | 是否跳過空白行,預設值為T。 |
strip.white | 是否消除空白字元,預設值為F。 |
text | 一個指定文字進行處理的字串。若text被設定了,則無需設定file,如以上直接在程式中嵌入資料集的程式碼所示。 |
下面使用read.table()來讀取一個分隔符為逗號,名為“分數”的csv檔案,程式碼如下:
>mydata<-read.table(header=T,file="C:\\Users\\mx\\Desktop\\分數.csv",sep=",") #路徑中的單右斜槓“\”需換成雙右斜槓“\\”或者單左斜槓“/”。檔名後一定要加上副檔名
> mydata
name English Math
1 張三 92 93
2 李四 80 92
與read.table()用法類似的函式還有read.csv(),read.delim()。
*
*4、讀取Excel資料read.xlsx()
a、將其儲存為csv格式,用前文所描述的方法讀取
b、直接用read.xlsx()讀取。讀取前確保已安裝“xlsxjars”,”rJava”,”xlsx”包,且第一次使用前需確保配置了Java環境。下載安裝的Java的位數必須與電腦位數、R的位數一致。
語法: read.xlsx(file, n),其中n表示要讀取的工作表序號。
如用read.xlsx()讀取以上名為“分數”的.xlsx形式,程式碼如下:
> library(xlsxjars)
> library(rJava)
> library(xlsx)
> mydata<-read.xlsx("C:\\Users\\mx\\Desktop\\分數.xlsx",1,encoding="UTF-8") #encoding="UFT-8"調整中文字集符,防止表格中的中文讀取時亂碼
> mydata
name English Math
1 張三 92 93
2 李四 80 92