您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)R語(yǔ)言如何實(shí)現(xiàn)數(shù)據(jù)輸入,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
首先,數(shù)據(jù)輸入最直接最直觀(guān)的方法就是鍵盤(pán)輸入,在上面幾篇都已經(jīng)講到,利用c創(chuàng)建向量,利用matrix創(chuàng)建矩陣,利用data.frame創(chuàng)建數(shù)據(jù)框等,但是我們處理的數(shù)據(jù)往往比較多,鍵盤(pán)輸入在面對(duì)如此龐大的數(shù)據(jù)時(shí)顯然不現(xiàn)實(shí),當(dāng)然你可以花費(fèi)好幾天來(lái)輸入數(shù)據(jù)而且保證不出錯(cuò)除外,而且待處理的一般都存儲(chǔ)在Excel,網(wǎng)頁(yè),數(shù)據(jù)庫(kù)其他中介中,因此:如何大批量無(wú)差錯(cuò)高效率地讀取數(shù)據(jù)就成為R語(yǔ)言首先要解決的問(wèn)題。
第一:如果自己學(xué)習(xí)寫(xiě)代碼,加載R語(yǔ)言中本身自帶的數(shù)據(jù)包c(diǎn)ars等,加載的方法跟其他包相同,具體代碼如下:
> install.packages("car") > library(cars)
第二:讀取外部數(shù)據(jù)一般用read.***( ),***代表要讀取的文件類(lèi)型,下面詳細(xì)解釋了每種類(lèi)型的文件的讀?。?/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ǔ)路徑,那么可以直接寫(xiě)文件名,記得要用雙引號(hào)括起來(lái)。那么如何設(shè)置工作路徑呢?首先我們查看當(dāng)前的工作路徑用getwd( )函數(shù),設(shè)置工作路徑的話(huà)用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)合來(lái)說(shuō)未免太過(guò)麻煩,因此R提供了一種可以直接選擇文件位置的函數(shù),read.***(file.choose()),例如讀取txt數(shù)據(jù):
mydatachoose <- read.table(file.choose()) #自由選取數(shù)據(jù)來(lái)讀取,但是file.choose( )的參數(shù)好像沒(méi)有
參數(shù)header:主要確定需要讀取的文件是否自己已經(jīng)設(shè)置了列名,默認(rèn)值為FALSE。這個(gè)需要解釋一下:上節(jié)我們已經(jīng)講過(guò)data.frame類(lèi)型,那么read.***( )的返回值也是數(shù)據(jù)框類(lèi)型,自然是按列填充的數(shù)據(jù)框格式,因此列名就顯得尤為重要,相當(dāng)于Excel的表頭部分,行號(hào)系統(tǒng)會(huì)根據(jù)1~N的順序排好,當(dāng)然也可以修改。
參數(shù)sep:主要確定需要讀取的文件中,各個(gè)字符的分割方式,一般有空格分割,逗號(hào)分割等,確定了分割方式,才能保證將數(shù)據(jù)讀取為自己想要的樣子。
常見(jiàn)用的參數(shù)就是這些,其他的原理都差不多,如果有需要自行學(xué)習(xí)。
1.txt文件:mydata <- read.table( )
2.Excel格式數(shù)據(jù):mydata <- read.xlsx( ),在使用這個(gè)函數(shù)之前,需要先安裝xlsx包,安裝方法跟其他包的安裝方法一致。一般來(lái)說(shuō),讀取xlsx文件速度較慢,通常將Excel文件保存為csv格式,然后再進(jìn)行讀取 mydata <- read.csv( )
3.XML數(shù)據(jù):讀取XML數(shù)據(jù)前先要載入XML包,然后使用 mydata <- xmlRoot(xmlTreeParse("***.xml"))來(lái)讀取
關(guān)于“R語(yǔ)言如何實(shí)現(xiàn)數(shù)據(jù)輸入”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。