1. 程式人生 > >R語言學習——R讀取txt、csv、xls和xlsx格式文件

R語言學習——R讀取txt、csv、xls和xlsx格式文件

r-project ext ODB comm ade 讀取 org packages subst

最近項目中運用到了R讀取文件數據,所以把相關好用的、經過驗證的方法總結了一下,有效避免下次入坑。

1. R讀取txt文件

使用R讀取txt文件直接使用read.table()方法進行讀取即可,不需要加載額外的包。

read.table("/home/slave/test.txt",header=T,na.strings = c("NA"))
  • 1

註意,此處的na.strings = c("NA") 的意思是文件中的缺失數據都是用NA進行表示;在讀取文本文件時,默認的分割符號為空格。具體的參數設置可參照如下:

 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)

技術分享圖片

2. R讀取csv文件

使用R讀取csv文件和讀取txt文件很類似,使用的是read.csv()方法,兩者參數的使用大部分是一樣的。

read.csv("/home/slave/test.csv", header=T, na.strings=c("NA"))

在讀取csv文件時,分割符為“,”(這句基本是廢話,大家懂得);具體的參數設置可參考如下:

read.csv(file, header = TRUE, sep = ",", quote = "\"",
         dec = ".", fill = TRUE, comment.char = "", ...)

3. R讀取xls和xlsx文件

讀取xlsxlsx有很多方法,但是這裏面的很多方法也不是特別好用,例如RODBC包中的讀取xls方法就不太好用,有時還會出現各種各樣的問題。在進行了一番入坑探索之後,找到了兩個相對好用的讀取xls文件的包,下面我將分別進行說明。

  • gdata
install.packages("gdata")
library(gdata)
read.xls("/home/slave/test.xls",sheet=1,na.strings=c("NA","#DIV/0!"))

其中sheet=1 參數的意思是讀取第一個sheet中的內容;na.strings=c("NA","#DIV/0!")"NA""#DIV/0!"

都作為缺失數據表示,read.xls()方法的具體參數設置可參考如下:

read.xls(xls, sheet=1, verbose=FALSE, pattern, na.strings=c("NA","#DIV/0!"),
         ..., method=c("csv","tsv","tab"), perl="perl")

技術分享圖片

read.xls()方法只是gdata包中的一個方法,gdata包中還有一些有用的方法,例如xls轉csv,xls轉txt等,在這裏進行一些列舉:

xls2csv(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2tab(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2tsv(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ..., perl="perl")
xls2sep(xls, sheet=1, verbose=FALSE, blank.lines.skip=TRUE, ...,
        method=c("csv","tsv","tab"), perl="perl")

gdata包有著很多的功能,但是它對其他的包的依賴很多,可能會出現各種不可預知的問題,下面介紹一個較少依賴的包。

  • readxl
install.packages("readxl")
library(readxl)
read_excel("/home/slave/test.xls",sheet=1,na="NA")

這塊需要註意的一點是na="NA" 和其他讀取時的格式略有不同,下面列出了具體的參數設置:

read_excel(path, sheet = 1, col_names = TRUE, col_types = NULL, na = "", skip = 0)

技術分享圖片

註意:以上的兩個方法都可以對xls和xlsx進行讀取。

至此,已將我們在R中常用到的讀取文件數據方法以及介紹完畢,下面就讓我們一起動手實驗吧。^_^

參考:

  • http://www.cnblogs.com/xianghang123/archive/2012/06/06/2538274.html
  • https://cran.r-project.org/web/packages/gdata/index.html
  • https://github.com/hadley/readxl

--------------------- 本文來自 華仔的逆襲 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/tb3039450/article/details/52557200?utm_source=copy

R語言學習——R讀取txt、csv、xls和xlsx格式文件