溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

R語(yǔ)言如何實(shí)現(xiàn)數(shù)據(jù)輸入

發(fā)布時(shí)間:2021-03-16 09:12:44 來(lái)源:億速云 閱讀:245 作者:小新 欄目:開(kāi)發(fā)技術(shù)

這篇文章將為大家詳細(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)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI