




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
文本文件讀寫011Excel文件讀寫02數(shù)據(jù)庫文件讀寫03PAGE2R語言數(shù)據(jù)讀寫R語言提供了眾多擴展包來讀取不同來源的數(shù)據(jù)文件,如快速讀入文本文件的readr包、讀取excel文件數(shù)據(jù)的readxl包、讀取大數(shù)據(jù)集的data.table包等。R語言常用于讀取不同來源數(shù)據(jù)的函數(shù)如下:2文本文件讀寫301PAGE4Base包read.table()函數(shù)可以輕松地將csv/txt等文本文件導(dǎo)入到R語言中,并將結(jié)果存儲在一個數(shù)據(jù)框中。有幾個與read.table類似的函數(shù),可以快速讀入不同類型的文本文件。read.csv()函數(shù)分割符默認設(shè)置為逗號,并假設(shè)數(shù)據(jù)有標(biāo)題行,是讀入csv文件的首選函數(shù)。read.csv2()函數(shù)則使用逗號作為小數(shù)位,并用分號作為分隔符。read.delim()和read.delim2()分別使用句號或逗號作為小數(shù)位,用換行符(\t)作為分隔符。參數(shù)描述file要讀取的數(shù)據(jù)文件名稱,文件如果不在當(dāng)前文件夾路徑下,需添加絕對路徑header邏輯值,導(dǎo)入文件是否有標(biāo)題行,默認為FALSE,不含有標(biāo)題行,設(shè)置為TRUE則將文件第一行作為變量的標(biāo)題sep文件中字段的分隔符,默認為sep=””,表示分隔符為一個或多個空格、制表符、換行或回車quote設(shè)置如何引用字符型變量。默認情況下,字符串可以被引號”或’括起,如果沒有設(shè)定分割字符,引號前面加\,即quote=”\”dec設(shè)置用來表示小數(shù)點的字符,默認為.s讀入數(shù)據(jù)的行名,默認為1,2,3,……s讀入數(shù)據(jù)的列名,如header設(shè)置為FALSE時,默認為V1,V2,V3,……na.strings賦給缺失值的值,默認為NAskip開始讀取數(shù)據(jù)前跳過的數(shù)據(jù)文件的行數(shù)strip.white是否消除空白字符blank.lines.skip是否跳過空白行4PAGE5readr包接下來,將學(xué)習(xí)如何利用功能強大的readr擴展包進行文本文件的讀寫。首次使用之前,請先運行install.packages(“readr”)命令進行在線安裝。read_csv()函數(shù)將數(shù)據(jù)文件讀入R語言,并保存為tibble類型。tibble類型是R語言中用來替換data.frame的擴展數(shù)據(jù)框,tibble類型與data.frame類型有相同的語法,使用起來更方便。參數(shù)描述file要讀取的數(shù)據(jù)文件名稱,數(shù)據(jù)文件如果不在當(dāng)前路徑下,需添加絕對路徑col_names邏輯值或列名的特征向量。如果TRUE,輸入第一行將作用作列名,如果FALSE,列名將自動生成X1,X2,X3,……,如是字符向量,向量值將作為列名稱col_types指定列的數(shù)據(jù)類型,為NULL時會自動識別na賦給缺失值的字符向量quoted_na判斷引號內(nèi)的缺失值為缺失值(缺省值)或字符串comment用于標(biāo)識注釋的字符串trim_ws是否消除空白字符skip讀取數(shù)據(jù)前要跳過的行數(shù)n_max要讀取的最大記錄數(shù),默認為Inf,即無窮大5PAGE6Data.table包data.table擴展包是data.frame的升級版,其特點是用于數(shù)據(jù)框格式數(shù)據(jù)的處理特點快。體現(xiàn)在以下兩個方面:一方面是寫入快,代碼簡潔,只要一行命令就可以完成諸多任務(wù)。一方面是處理快,優(yōu)化了內(nèi)部處理步驟,使用多線程,甚至很多函數(shù)是使用C語言編寫,大大加快數(shù)據(jù)運行速度。因此,在對大數(shù)據(jù)處理上,無疑首選data.table擴展包。data.table屬于擴展包,首次使用前請先通過install.packages(“data.table”)命令進行在線安裝。fread()函數(shù)用于數(shù)據(jù)導(dǎo)入:參數(shù)描述input輸入的文件,或者字符串(至少有一個"\n")file文件路徑,在確保沒有執(zhí)行shell命令時很有用,也可以在input參數(shù)輸入sep列之間的分隔符sep2分隔符內(nèi)再分隔的分隔符dec小數(shù)分隔符,默認"."nrows讀取的行數(shù),默認為全部header第一行是否為列名na.stringsNA值的處理stringsAsFactors是否轉(zhuǎn)化字符串為因子verbose是否交互和報告運行時間skip跳過讀取的行數(shù),為1則從第二行開始讀取select需要保留的列名或者列號,剔除剩余列drop需要剔除的列名或者列號,讀取剩余列colClasses指定數(shù)據(jù)類型integer64讀如64位的整型數(shù)s變量(列)的可選名稱向量s
默認FALSE;為TRUE時data.table會檢查變量名稱,以確保它們是語法上有效的變量名稱encoding默認"unknown",其他可能"UTF-8"或者"Latin-1",不是用來重新編碼,而是允許在本機處理的編碼字符串strip.white默認TRUE,刪除結(jié)尾空白符;如果FALSE,
只刪除標(biāo)題尾隨空格fill默認FALSE,如果TRUE,不等長的區(qū)域可以自動填上,將利于文件順利讀入blank.lines.skip默認FALSE,如果TRUE,跳過空白行key設(shè)置key,用一個或多個列名,會傳遞給setkeyshowProgressTRUE會顯示腳本進程data.table如果TRUE返回data.table,如果FALSE返回data.frame6Excel文件讀寫702PAGE8xlsx包xlsx擴展包的安裝需要依賴rJava擴展包,rJava能否成功安裝的前提條件是需要本機預(yù)先安裝好java,且R語言須與jre的版本位數(shù)一致。豐富的函數(shù),能對Excel文件進行靈活讀寫。主要函數(shù)如下:函數(shù)用途write.xlsx()將R語言中數(shù)據(jù)框?qū)懭隕xcel文件,可向已存在文件追加工作表,同時定義表名,也支持中文表名read.xlsx()讀取Excel文件loadWorkbook()將Excel文件載入R中作為對象saveWorkbook()可將修改過的內(nèi)容保存到Excel文件getSheets()讀取R語言中Excel對象的工作表,返回java對象createSheet()在Excel文件中新建工作表removeSheet()刪除Excel文件中的工作表8PAGE9xlsx包參數(shù)描述x需要寫入到Excel工作簿中的數(shù)據(jù)框file輸出文件的路徑sheetName保存到工作簿中的工作表名,默認為Sheet1s 邏輯值,保存文件中是否含有列名,默認為TRUEs邏輯值,保存文件中是否含有行名稱,默認為TRUEappend邏輯值,是否將x追加到現(xiàn)有文件中,默認為FALSEshowNA邏輯值,默認為FALSE,如果設(shè)置為TRUE,則NA值保留為空單元格write.xlsx()函數(shù)參數(shù)描述fileExcel文件的路徑sheetIndex工作薄中的工作表的索引值sheetName工作表名rowIndex數(shù)值向量,表示想提取的行。如為空,且未指定startRow和endRow,則提取所有行startRow數(shù)值,讀取的起點行。僅當(dāng)參數(shù)rowIndex為NULL時有效endRow數(shù)值,讀取的終點行。如設(shè)為NULL,則讀取所有行,僅當(dāng)參數(shù)rowIndex為NULL時有效colIndex數(shù)值向量,表示想提取的列。如為空,則提取所有的列as.data.frame布爾值,是否強制轉(zhuǎn)換為data.frame。如FALSE,則用列表表示,每個元素為一列header布爾值,是否將第一行識別為標(biāo)題keepFormulas布爾值,是否以文本格式保留Excel公式read.xlsx()函數(shù)9PAGE10XLConnect包XLConnect是R語言另一個用于處理Excel文件的擴展包。利用它可以讀取或創(chuàng)建一個MicrosoftExcel文件,還可以直接對Excel文件進行數(shù)據(jù)處理,數(shù)據(jù)標(biāo)記以及數(shù)據(jù)可視化。XLConnect擴展包可以通過install.packages(“XLConnect”)命令進行在線安裝。函數(shù)用途loadWorkbook()加載/創(chuàng)建Excel工作薄createSheet()在指定為object參數(shù)的工作簿中創(chuàng)建一個選定名稱的工作表writeWorksheet()將數(shù)據(jù)寫入Excel工作簿對象的工作表createName()為工作簿中的指定公式創(chuàng)建名稱writeNamedRegion()將命名范圍寫入工作簿saveWorkbook()將工作簿對象保存到相應(yīng)的Excel文件并將文件寫入磁盤writeWorksheetToFile()允許在調(diào)用中將數(shù)據(jù)寫入Excel文件的工作表中readWorksheet()允許從當(dāng)前加載的工作薄對象中讀取指定工作表的數(shù)據(jù)readWorksheetFromFile()從Excel文件中讀取工作表中的數(shù)據(jù)readNamedRegion()從工作簿對象中讀取命名區(qū)域readNamedRegionFromFile()從Excel文件中讀取命名區(qū)域createSheet()在工作薄中創(chuàng)建新的工作表對象getSheets()查詢工作薄對象中可用的工作表existsSheet()判斷工作薄對象中是否存在指定的工作表removeSheet()從工作薄對象中刪除工作表renameSheet()對工作薄對象中的工作表進行重命名10PAGE11openxlsx包openxlsx擴展包使用Rcpp編寫,數(shù)據(jù)讀寫性能會優(yōu)于xlsx和XLConnect擴展包。對Excel文件的讀取、創(chuàng)建、修改及保存等函數(shù)更加簡單易懂。最重要的是openxlsx擴展包消除對Java的依賴,讓初學(xué)者能輕松安裝及使用該包。函數(shù)用途loadWorkbook()將Excel文件載入R中作為對象createWorkbook()創(chuàng)建新的工作薄對象saveWorkbook()將工作簿對象保存到相應(yīng)的Excel文件并將文件寫入磁盤sheets()返回工作表名稱addWorksheet()在指定為object參數(shù)的工作簿中創(chuàng)建一個選定名稱的工作表renameWorksheet()對工作簿對象的工作表重命名removeWorksheet()移除工作薄的工作表writeData()將數(shù)據(jù)寫入工作簿對象的工作表deleteData()刪除單元格數(shù)據(jù)write.xlsx()將R語言中的數(shù)據(jù)框/列表寫入到Excel文件中read.xlsx()讀取Excel文件或工作簿對象的數(shù)據(jù)11PAGE12readxl包readxl擴展包提供了將Excel文件數(shù)據(jù)讀入R語言中的函數(shù),函數(shù)基于C++編寫,讀取數(shù)據(jù)速度要優(yōu)于前面介紹過的其他包。最重要的是,它不依賴其他rJava包和外部程序,能夠在所有操作系統(tǒng)中都方便使用。readxl擴展包可以讀取.xls和.xlsx格式的Excel文件。readxl擴展包函數(shù)不多,最常用的分別為excel_sheets()和read_excel()函數(shù),前者用來讀取Excel文件中的工作表名稱,后者用來讀取Excel工作表的數(shù)據(jù)。12數(shù)據(jù)庫文件讀寫1303PAGE14數(shù)據(jù)庫文件讀寫R語言中有多種面向關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(DBMS)的接口,包括SQLServer、Access、MySQL、Oracle、DB2等。其中一些擴展包通過原生的數(shù)據(jù)庫驅(qū)動來提供訪問功能,另一些則是通過ODBC或JDBC來實現(xiàn)訪問。使用R語言來訪問存儲在外部數(shù)據(jù)庫中的數(shù)據(jù)是一種分析大數(shù)據(jù)集的有效手段,并且能夠發(fā)揮SQL和R語言各自的優(yōu)勢。以下是這兩種方式的概述:一種方式是依賴RODBC擴展包,該包使用開放數(shù)據(jù)庫連接(OpenDatabaseConnectivity,ODBC)驅(qū)動作為一種連接到DBMS的方法,這就要求用戶必須先安裝和配置必要的驅(qū)動程序,然后才能在R語言中使用它。該組件提供了一套通用方法,利用同一組函數(shù)來管理不同類型的數(shù)據(jù)庫。該方法不足的一面是,它依賴在R語言運行的平臺上是否有能與特定DBMS類型配套的ODBC驅(qū)動程序。另一種方式是使用DBI(RSpecialInterestGrouponDatabases2013)的組件,例如RMySQL、ROracle、RPostgreSQL和RSQlite。通過它建立到特定DBMS的“本地”鏈接。DBI組件定義了虛擬函數(shù),用于實現(xiàn)針對特定數(shù)據(jù)庫的組件的具體操作。14PAGE15RODBC包將RODBC包載入后運行odbcConnect()函數(shù)建立與數(shù)據(jù)庫的連接,就開展后續(xù)的數(shù)據(jù)傳輸及分析工作。看到以上信息說明已經(jīng)完成R語言與數(shù)據(jù)庫的連接,可通過odbcGetInfo()函數(shù)查看更詳細的數(shù)據(jù)庫信息。>library(RODBC)>channel<-odbcConnect("daniel","root","123456")>channelRODBCConnection1Details:case=tolowerDSN=danielUID=root>odbcGetInfo(channel)DBMS_NameDBMS_VerDriver_ODBC_Ver"MySQL""5.6.21-log""03.80"Data_Source_NameDriver_NameDriver_Ver"daniel""myodbc5a.dll""05.03.0004"ODBC_VerServer_Name"03.80.0000""localhostviaTCP/IP"15PAGE16RODBC包現(xiàn)在想把R語言中的mtcars數(shù)據(jù)集保存到MySQL中,可以通過sqlSave()函數(shù)實現(xiàn)。第一個參數(shù)channel是建立的鏈接;第二個參數(shù)dat是指R中的數(shù)據(jù)框;第三個參數(shù)tablename是指保存到MySQL中的表名;第四個參數(shù)append是邏輯值,默認為FALSE表示建立新表(如果表名已經(jīng)存在則會報錯),TRUE表示在已有表中插入新數(shù)據(jù)。此時在MySQL的test數(shù)據(jù)庫中已經(jīng)存在mydata表。我們在R語言中利用sqlFetch()和sqlQuery()函數(shù)進行MySQL表的提取和SQL語句查詢。使用sqlQuery()函數(shù)可以執(zhí)行更復(fù)雜的SQL語句,完成多表查詢或數(shù)據(jù)統(tǒng)計工作。甚至可以在R語言中利用sqlDrop命令將
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 怎樣養(yǎng)蠶(教學(xué)設(shè)計)-2023-2024學(xué)年科學(xué)四年級下冊人教鄂教版
- 2024-2025學(xué)年北京市北京一零一中學(xué)高一上學(xué)期統(tǒng)練二化學(xué)試卷
- 臍橙清洗包裝合同范本
- 2025年度電子產(chǎn)品全球市場代理合作協(xié)議
- 2025年倉儲貨物倉單質(zhì)押擔(dān)保服務(wù)合同范本6篇
- 2025年度電子產(chǎn)品全球代理銷售協(xié)議
- 展示冷柜建設(shè)項目項目可行性研究報告
- 2025年度國際會議中心安保與保安服務(wù)管理協(xié)議
- 建筑工程機械與設(shè)備租賃行業(yè)影響因素分析
- 2025年碳化硅耐火支柱行業(yè)深度研究分析報告
- 心理評估與診斷簡介課件
- 移動式壓力容器充裝復(fù)審換證考試重點題庫(180題)
- 小班安全《湯姆走丟了》PPT課件教案反思微視頻
- 作物栽培學(xué)課件棉花
- 最新小學(xué)二年級口算及豎式計算練習(xí)題
- 生產(chǎn)與運作管理-陳榮秋
- 金雞冠的公雞繪本課件
- 日影朝向及長短
- 沙盤游戲治療(課堂PPT)
- (完整版)學(xué)生的自我評價的表格
- 樸素貝葉斯分類器完整
評論
0/150
提交評論