R語言的數(shù)據(jù)輸入深入講解
既然了解了R語言的基本數(shù)據(jù)類型,那么如何將龐大的數(shù)據(jù)送入R語言進行處理呢?送入的數(shù)據(jù)又是如何在R語言中進行存儲的呢?處理這些數(shù)據(jù)的方法又有那些呢?下面我們一起來探討一下。
首先,數(shù)據(jù)輸入最直接最直觀的方法就是鍵盤輸入,在上面幾篇都已經(jīng)講到,利用c創(chuàng)建向量,利用matrix創(chuàng)建矩陣,利用data.frame創(chuàng)建數(shù)據(jù)框等,但是我們處理的數(shù)據(jù)往往比較多,鍵盤輸入在面對如此龐大的數(shù)據(jù)時顯然不現(xiàn)實,當然你可以花費好幾天來輸入數(shù)據(jù)而且保證不出錯除外,而且待處理的一般都存儲在Excel,網(wǎng)頁,數(shù)據(jù)庫其他中介中,因此:如何大批量無差錯高效率地讀取數(shù)據(jù)就成為R語言首先要解決的問題。
第一:如果自己學習寫代碼,加載R語言中本身自帶的數(shù)據(jù)包cars等,加載的方法跟其他包相同,具體代碼如下:
> install.packages("car")
> library(cars)
第二:讀取外部數(shù)據(jù)一般用read.***( ),***代表要讀取的文件類型,下面詳細解釋了每種類型的文件的讀?。?/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:代表要讀去的文件名以及文件路徑,如果當前工作路徑就是需要讀取的文件的存儲路徑,那么可以直接寫文件名,記得要用雙引號括起來。那么如何設置工作路徑呢?首先我們查看當前的工作路徑用getwd( )函數(shù),設置工作路徑的話用setwd(" 工作路徑")函數(shù),注意,在設置工作路徑時,需要把路徑中所有的 "\" 改成 “\\”。具體操作如下代碼:
> getwd() #查看當前工作路徑
[1] "E:/趙志博/R"
> setwd("E:\趙志博") #錯誤的設置方式
Error: '\? is an unrecognized escape in character string starting ""E:\?
> setwd("E:\\趙志博") #正確的設置方式
> getwd() #查看設置后的工作路徑
[1] "E:/趙志博"
當工作路徑設置完成后,便可以直接讀取工作路徑里面的文件而不需要加文件的存儲位置。如代碼所示,當前工作路徑為"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
每次都要設置路徑,對有些場合來說未免太過麻煩,因此R提供了一種可以直接選擇文件位置的函數(shù),read.***(file.choose()),例如讀取txt數(shù)據(jù):
mydatachoose <- read.table(file.choose()) #自由選取數(shù)據(jù)來讀取,但是file.choose( )的參數(shù)好像沒有
參數(shù)header:主要確定需要讀取的文件是否自己已經(jīng)設置了列名,默認值為FALSE。這個需要解釋一下:上節(jié)我們已經(jīng)講過data.frame類型,那么read.***( )的返回值也是數(shù)據(jù)框類型,自然是按列填充的數(shù)據(jù)框格式,因此列名就顯得尤為重要,相當于Excel的表頭部分,行號系統(tǒng)會根據(jù)1~N的順序排好,當然也可以修改。
參數(shù)sep:主要確定需要讀取的文件中,各個字符的分割方式,一般有空格分割,逗號分割等,確定了分割方式,才能保證將數(shù)據(jù)讀取為自己想要的樣子。
常見用的參數(shù)就是這些,其他的原理都差不多,如果有需要自行學習。
1.txt文件:mydata <- read.table( )
2.Excel格式數(shù)據(jù):mydata <- read.xlsx( ),在使用這個函數(shù)之前,需要先安裝xlsx包,安裝方法跟其他包的安裝方法一致。一般來說,讀取xlsx文件速度較慢,通常將Excel文件保存為csv格式,然后再進行讀取 mydata <- read.csv( )
3.XML數(shù)據(jù):讀取XML數(shù)據(jù)前先要載入XML包,然后使用 mydata <- xmlRoot(xmlTreeParse("***.xml"))來讀取
關于數(shù)據(jù)的讀取就先介紹到這里,其他有用的著的再單獨學習。
到此這篇關于R語言的數(shù)據(jù)輸入深入講解的文章就介紹到這了,更多相關R語言的數(shù)據(jù)輸入內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
R語言繪圖數(shù)據(jù)可視化pie?chart餅圖
這篇文章主要介紹了R語言繪圖數(shù)據(jù)可視化pie?chart餅圖,教大家如何用R語言來畫大餅,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-02-02

