小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

R如何直接讀取Excel表格數(shù)據(jù)?

 生物_醫(yī)藥_科研 2019-01-23

對于24K純生信小白來說,數(shù)據(jù)準備絕對是一件令人頭疼的問題。


還記得我第一次用ClustalX做序列Alinment時一直不出結(jié)果,折騰了一下午偶然發(fā)現(xiàn)出錯僅僅因為文件名是中文的。經(jīng)過這次教訓(xùn)以后,自己也養(yǎng)成了個習(xí)慣,不管是文件名還是表格內(nèi)容絕不用中文,哪怕是用拼音表示。


《你可能需要一個功能強大一點的文本編輯器……》一文,已介紹過用Notepad++查看Excel中不容易發(fā)現(xiàn)的格式錯誤。可還是有小白不知道啥是“制表符”,啥是文件拓展名,有時錯誤地將Excel表格另存成Unicode文本(*.txt)文件被虐得不要不要的。


像我這樣 比較懶 心疼小白的人,不禁想問就不能省去Excel轉(zhuǎn)制表符分隔的txt文件這一步,直接導(dǎo)入Excel數(shù)據(jù)嗎?


其實,R有很多包可以實現(xiàn)xlsx格式數(shù)據(jù)的導(dǎo)入和導(dǎo)出,下面給大家介紹3個R包。


xlsx包


xlsx 包比較強大,可以導(dǎo)入和導(dǎo)出Excel 文檔(xls 和 xlsx格式)。


它是一個基于java的R包。主要通過 read.xlsx() 和read.xlsx2() 以R數(shù)據(jù)框的形式讀入 Excel sheet。二者的區(qū)別是read.xlsx2()讀取數(shù)據(jù)量的大(超過100 000個單元格)的表格更快。

 

read.xlsx(file, sheetIndex, header=TRUE, colClasses=NA)


read.xlsx2(file, sheetIndex, header=TRUE,colClasses='character')

 

file :讀入文件路徑

sheetIndex : 讀入Excel文檔的表格(sheet)序號

header : 第一行是否為變量名

colClasses : 列的數(shù)據(jù)類型

 

示例:

 

#加載xlsx包

library(xlsx)

 

#讀入工作目錄中的Excel格式數(shù)據(jù)

st1 <- read.xlsx('mtcars.xlsx',="">

#讀入指定目錄中的Excel格式數(shù)據(jù)

st2 <- read.xlsx(file='C:\\Users\\MHY\\Desktop\\mtcars.xlsx' ,="">



相應(yīng)的,導(dǎo)出數(shù)據(jù)的函數(shù)也有兩個,

 

write.xlsx(x, file, sheetName='Sheet1',col.names=TRUE, row.names=TRUE, append=FALSE)


write.xlsx2(x, file, sheetName='Sheet1',col.names=TRUE, row.names=TRUE, append=FALSE)

 

x :需要導(dǎo)出的數(shù)據(jù)框

file :到出文件的路徑

sheetName : 導(dǎo)出后生成表格(sheet)的名稱

col.names, row.names : 是否導(dǎo)出數(shù)據(jù)框的行名和列名

append : 是否以追加新sheet方式將數(shù)據(jù)導(dǎo)出到已有Excel文檔中

 

示例:


#導(dǎo)出R自帶mtcars數(shù)據(jù)為Excel數(shù)據(jù)

write.xlsx(mtcars, file='C:\\Users\\MHY\\Desktop\\mtcars.xlsx', sheetName='mtcars')


#在導(dǎo)出的表中追加新的sheet(R自帶數(shù)據(jù)cars);

write.xlsx(cars, file='C:\\Users\\MHY\\Desktop\\mtcars.xlsx', sheetName='cars',append=TRUE)



此外,還可調(diào)整完全用R腳本去創(chuàng)建1個空的Excel文檔,設(shè)置單元格格式,以及在Excel表格中添加R繪制的圖表等,這里就不多做介紹。

 

readxl包


readxl 可以很簡單的將Excel文檔讀入到R中,R包不需要依賴java環(huán)境, 非常容易安裝。如果只是讀入Excel數(shù)據(jù),也夠用了。主要有read_xls()、read_xlsx()和read_excel()3個函數(shù)讀入數(shù)據(jù),三者參數(shù)一致,只不過read_excel()會自動判定數(shù)據(jù)是xls或xlsx那種類型。

 

read_excel(path,sheet = NULL, range = NULL, col_names = TRUE, skip = 0,…)

 

path : 讀入文件路徑

sheet :  讀入Excel文檔的表格(sheet)序號或名稱

range : 讀入數(shù)據(jù)區(qū)域,比如 'B3:D87','sheet2!B2:G14'

col_names : 第1行是否作為列名讀入

 

示例:

 

library(readxl)

re<-read_excel(path ='c:\\users\\mhy\\desktop\\mtcars.xlsx',sheet="">



openxlsx包


類似readxl包,openxlsx包也可以很簡單的將Excel文檔讀入到R中。

 

read.xlsx(xlsxFile, sheet = 1, startRow =1, colNames = TRUE,  rowNames = FALSE, …)

 

xlsxFile : 讀入文件路徑

sheet :  讀入Excel文檔的表格(sheet)序號或名稱

startRow :  從那一行開始讀入數(shù)據(jù)

colNames : 如果為TRUE,第一行數(shù)據(jù)作為列名

rowNames :   如果為TRUE, 第一列數(shù)據(jù)作為行名

 

示例:

 

library(openxlsx)

op<-read.xlsx(xlsxfile ='c:\\users\\mhy\\desktop\\mtcars.xlsx',sheet="">

 

 

R包的安裝


xlsx包的安裝需要先安裝Java。如果之前安裝過Java,比如裝過Cytoscape,仍然建議重新安裝下Java,否則可能會因Java版本過期遇到下圖這樣的報錯信息。


 

從官網(wǎng)下載Java的安裝包,直接安裝即可,安裝過程中會自動檢測和卸載過期的版本。

地址:https://www./en/download/windows-64bit.jsp

 


成功安裝Java之后是這樣的,之后就可以通過install.packages('xlsx') 安裝xlsx包了。



readxl包和openxlsx包的安裝比較簡單,直接使用install.packages()函數(shù)安裝即可。

 

最后,從功能上來將xlsx包的功能是最強大的,但它的安裝需要依賴Java環(huán)境。如何只是導(dǎo)入Excel數(shù)據(jù),用readxl和openxlsx包就可以了,畢竟用R基礎(chǔ)函數(shù)write.table()導(dǎo)出的文本文件也可以用Excel打開。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多