R語(yǔ)言的數(shù)據(jù)輸入深入講解
既然了解了R語(yǔ)言的基本數(shù)據(jù)類型,那么如何將龐大的數(shù)據(jù)送入R語(yǔ)言進(jìn)行處理呢?送入的數(shù)據(jù)又是如何在R語(yǔ)言中進(jìn)行存儲(chǔ)的呢?處理這些數(shù)據(jù)的方法又有那些呢?下面我們一起來探討一下。
首先,數(shù)據(jù)輸入最直接最直觀的方法就是鍵盤輸入,在上面幾篇都已經(jīng)講到,利用c創(chuàng)建向量,利用matrix創(chuàng)建矩陣,利用data.frame創(chuàng)建數(shù)據(jù)框等,但是我們處理的數(shù)據(jù)往往比較多,鍵盤輸入在面對(duì)如此龐大的數(shù)據(jù)時(shí)顯然不現(xiàn)實(shí),當(dāng)然你可以花費(fèi)好幾天來輸入數(shù)據(jù)而且保證不出錯(cuò)除外,而且待處理的一般都存儲(chǔ)在Excel,網(wǎng)頁(yè),數(shù)據(jù)庫(kù)其他中介中,因此:如何大批量無差錯(cuò)高效率地讀取數(shù)據(jù)就成為R語(yǔ)言首先要解決的問題。
第一:如果自己學(xué)習(xí)寫代碼,加載R語(yǔ)言中本身自帶的數(shù)據(jù)包c(diǎn)ars等,加載的方法跟其他包相同,具體代碼如下:
> install.packages("car") > library(cars)
第二:讀取外部數(shù)據(jù)一般用read.***( ),***代表要讀取的文件類型,下面詳細(xì)解釋了每種類型的文件的讀?。?/p>
read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"), row.names, col.names, as.is = !stringsAsFactors, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#", allowEscapes = FALSE, flush = FALSE, stringsAsFactors = default.stringsAsFactors(), fileEncoding = "", encoding = "unknown", text, skipNul = FALSE) read.csv(file, header = TRUE, sep = ",", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...) read.csv2(file, header = TRUE, sep = ";", quote = "\"", dec = ",", fill = TRUE, comment.char = "", ...) read.delim(file, header = TRUE, sep = "\t", quote = "\"", dec = ".", fill = TRUE, comment.char = "", ...) read.delim2(file, header = TRUE, sep = "\t", quote = "\"", dec = ",", fill = TRUE, comment.char = "", ...)
其中:
參數(shù)file:代表要讀去的文件名以及文件路徑,如果當(dāng)前工作路徑就是需要讀取的文件的存儲(chǔ)路徑,那么可以直接寫文件名,記得要用雙引號(hào)括起來。那么如何設(shè)置工作路徑呢?首先我們查看當(dāng)前的工作路徑用getwd( )函數(shù),設(shè)置工作路徑的話用setwd(" 工作路徑")函數(shù),注意,在設(shè)置工作路徑時(shí),需要把路徑中所有的 "\" 改成 “\\”。具體操作如下代碼:
> getwd() #查看當(dāng)前工作路徑 [1] "E:/趙志博/R" > setwd("E:\趙志博") #錯(cuò)誤的設(shè)置方式 Error: '\? is an unrecognized escape in character string starting ""E:\? > setwd("E:\\趙志博") #正確的設(shè)置方式 > getwd() #查看設(shè)置后的工作路徑 [1] "E:/趙志博"
當(dāng)工作路徑設(shè)置完成后,便可以直接讀取工作路徑里面的文件而不需要加文件的存儲(chǔ)位置。如代碼所示,當(dāng)前工作路徑為"E:/趙志博",在該路徑下創(chuàng)建了文件“123.txt”,可以直接讀取文件,但是在“D:/”創(chuàng)建了新的文件“456.txt”,便不能直接讀取,需要加上完整的文件路徑,路徑同樣需要將"\" 改成 “\\”。
mydata <- read.table("123.txt",sep = ',') > mydata V1 V2 V3 1 1 2 3 2 4 5 6 3 7 8 9 > mydataD <- read.table("456.txt",sep = ',') Error in file(file, "rt") : cannot open the connection In addition: Warning message: In file(file, "rt") : cannot open file '456.txt': No such file or directory > mydataD <- read.table("D:\\456.txt",sep = ',') > mydataD V1 V2 V3 1 1 2 3 2 4 5 6 3 7 8 9
每次都要設(shè)置路徑,對(duì)有些場(chǎng)合來說未免太過麻煩,因此R提供了一種可以直接選擇文件位置的函數(shù),read.***(file.choose()),例如讀取txt數(shù)據(jù):
mydatachoose <- read.table(file.choose()) #自由選取數(shù)據(jù)來讀取,但是file.choose( )的參數(shù)好像沒有
參數(shù)header:主要確定需要讀取的文件是否自己已經(jīng)設(shè)置了列名,默認(rèn)值為FALSE。這個(gè)需要解釋一下:上節(jié)我們已經(jīng)講過data.frame類型,那么read.***( )的返回值也是數(shù)據(jù)框類型,自然是按列填充的數(shù)據(jù)框格式,因此列名就顯得尤為重要,相當(dāng)于Excel的表頭部分,行號(hào)系統(tǒng)會(huì)根據(jù)1~N的順序排好,當(dāng)然也可以修改。
參數(shù)sep:主要確定需要讀取的文件中,各個(gè)字符的分割方式,一般有空格分割,逗號(hào)分割等,確定了分割方式,才能保證將數(shù)據(jù)讀取為自己想要的樣子。
常見用的參數(shù)就是這些,其他的原理都差不多,如果有需要自行學(xué)習(xí)。
1.txt文件:mydata <- read.table( )
2.Excel格式數(shù)據(jù):mydata <- read.xlsx( ),在使用這個(gè)函數(shù)之前,需要先安裝xlsx包,安裝方法跟其他包的安裝方法一致。一般來說,讀取xlsx文件速度較慢,通常將Excel文件保存為csv格式,然后再進(jìn)行讀取 mydata <- read.csv( )
3.XML數(shù)據(jù):讀取XML數(shù)據(jù)前先要載入XML包,然后使用 mydata <- xmlRoot(xmlTreeParse("***.xml"))來讀取
關(guān)于數(shù)據(jù)的讀取就先介紹到這里,其他有用的著的再單獨(dú)學(xué)習(xí)。
到此這篇關(guān)于R語(yǔ)言的數(shù)據(jù)輸入深入講解的文章就介紹到這了,更多相關(guān)R語(yǔ)言的數(shù)據(jù)輸入內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解R語(yǔ)言中生存分析模型與時(shí)間依賴性ROC曲線可視化
這篇文章主要介紹了R語(yǔ)言中生存分析模型與時(shí)間依賴性ROC曲線可視化,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03R語(yǔ)言學(xué)習(xí)筆記之lm函數(shù)詳解
這篇文章主要介紹了R語(yǔ)言學(xué)習(xí)筆記之lm函數(shù)詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03R語(yǔ)言seq()函數(shù)的調(diào)用方法
這篇文章主要介紹了R語(yǔ)言seq()函數(shù)的調(diào)用方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03R語(yǔ)言可視化存儲(chǔ)矢量圖實(shí)現(xiàn)方式
這篇文章主要為大家介紹了R語(yǔ)言存儲(chǔ)矢量圖的實(shí)現(xiàn)方式過程,有需要的朋友可以借鑒參考下,希望能夠有所你幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11R語(yǔ)言繪圖數(shù)據(jù)可視化pie?chart餅圖
這篇文章主要介紹了R語(yǔ)言繪圖數(shù)據(jù)可視化pie?chart餅圖,教大家如何用R語(yǔ)言來畫大餅,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-02-02R語(yǔ)言通過parallel包實(shí)現(xiàn)多線程運(yùn)行方式
這篇文章主要介紹了R語(yǔ)言通過parallel包實(shí)現(xiàn)多線程運(yùn)行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04