前言:
微博參與話題 #給你四年時間你也學不會生信#
read.table()函數是R最基本函數之一,主要用來讀取矩形表格數據。
Usage
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 = "", ...)
各參數的說明如下:
(1)file
file是一個帶分隔符的ASCII文本文件。
(2)header
一個表示文件是否在第一行包含了變量的邏輯型變量。
如果header設置為TRUE,則要求第一行要比數據列的數量少一列。
(3)sep
分開數據的分隔符。默認sep=""。
read.table()函數可以將1個或多個空格、tab制表符、換行符或回車符作為分隔符。
> mouse <- read.table(file = "mouse_all_count.txt", sep = "\t", header = T)
> head(mouse)
X control_1 control_2 Akap95_1 Akap95_2
1 ENSMUSG00000060002.14 431 341 669 384
2 ENSMUSG00000072576.5 3 2 2 5
3 ENSMUSG00000030546.14 5 5 1 3
4 ENSMUSG00000073116.4 0 0 0 2
5 ENSMUSG00000026228.6 2 0 2 3
6 ENSMUSG00000095102.1 0 0 0 0
(4)quote
用于對有特殊字符的字符串劃定接線的字符串,默認值是TRUE(")或單引號。(`)
(5)dec
decimal用于指明數據文件中小數的小數點。
(6)numerals
字符串類型。用于指定文件中的數字轉換為雙精度數據時丟失精度的情況下如何進行轉換。
(7)row.names
保存行名的向量。可以使用此參數以向量的形式給出每行的實際行名。或者要讀取的表中包含行名稱的列序號或列名字符串。
在數據文件中有行頭且首行的字段名比數據列少一個的情況下,數據文件中第1列將被視為行名稱。除此情況外,在沒有給定row.names參數時,讀取的行名將會自動編號。
可以使用row.names = NULL強制行進行編號。
(8)col.names
指定列名的向量。缺省情況下是又"V"加上列序構成,即V1,V2,V3......
> mouse <- read.table(file = "mouse_all_count.txt", sep = "\t", header = T, row.names= 1 )
> head(mouse)
control_1 control_2 Akap95_1 Akap95_2
ENSMUSG00000060002.14 431 341 669 384
ENSMUSG00000072576.5 3 2 2 5
ENSMUSG00000030546.14 5 5 1 3
ENSMUSG00000073116.4 0 0 0 2
ENSMUSG00000026228.6 2 0 2 3
ENSMUSG00000095102.1 0 0 0 0
Tip:
rownames、colnames是base包中的行名、列名函數;
而row.names、col.names是read.table函數中的行名、參數
(9)as.is
該參數用于確定read.table()函數讀取字符型數據時是否轉換為因子型變量。當其取值為FALSE時,該函數將把字符型數據轉換為因子型數據,取值為TRUE時,仍將其保留為字符型數據。其取值可以是邏輯值向量(必要時可以循環賦值),數值型向量或字符型向量,以控制哪些列不被轉換為因子。
注意:可以通過設置參數 colClasses = "character"來阻止所有列轉換為因子,包括數值型的列。
(10)na.strings
可選的用于表示缺失值的字符向量。
na.strings=c("-9","?")把-9和?值在讀取數據時候轉換成NA
(11)colClasses
用于指定列所屬類的字符串向量。
(12)nrows
整型數。用于指定從文件中讀取的最大行數。負數或其它無效值將會被忽略。
(13)skip
整型數。讀取數據時忽略的行數。
(14)check.names
邏輯值。該參數值設置為TRUE時,數據框中的變量名將會被檢查,以確保符在語法上是有效的變量名稱。
(15)fill
邏輯值。在沒有忽略空白行的情況下(即blank.lines.skip=FLASE),且fill設置為TRUE時,如果數據文件中某行的數據少于其他行,則自動添加空白域。
(16)strip.white
邏輯值,默認為FALSE。此參數只在指定了sep參數時有效。當此參數設置為TRUE時,數據文件中沒有包圍的字符串域的前邊和后邊的空格將會被去掉。
(17)blank.lines.skip
邏輯值,此參數值設置為TRUE時,數據文件中的空白行將被忽略。默認值為TRUE。
(18)comment.char
字符型。包含單個字符或空字符的向量。代表注釋字符的開始字符。可以使用""關閉注釋。
(19)allowEscapes
邏輯值。類似“\n”這種C風格的轉義符。如果這種轉義符并不是包含在字符串中,該函數可能解釋為字段分隔符。
(20)flush
邏輯值。默認值為FALSE。當該參數值設置為TRUE時,則該函數讀取完指定列數后將轉到下一行。這允許用戶在最后一個字段后面添加注釋。
(21)stringsAsFactors
邏輯值,標記處字符向量是否需要轉化為因子,默認是TRUE。
首先,明確String與Factor的區別。String是字符串,可用于記錄瑣細信息(比如發現UFO者的口頭描述內容)。Factor是因此,用于給一行記錄做“分類標記”,比如人的性別factors可以設置為“男”、“女”,工作效率最高日期的factors可以是“Mon”、"Tue",對于工作效率也可以有“high”、“low”等。對于Factor類型屬性,R語言可以自動統計數據的factor水平(level),比如,男,有多少,Mon有多少等。
stringsAsFactors = F意味著,“在讀入數據時,遇到字符串之后,不將其轉換為factors,仍然保留為字符串格式”。
(22)fileEncoding
字符串類型,指定文件的編碼方式。如果指定了該參數,則文本數據按照指定的格式重新編碼。
(23)encoding
假定輸入字符串的編碼方式。
(24)text
字符串類型。當未提供file參數時,則函數可以通過一個文本鏈接從text中讀取數據。
(25)skipNul
邏輯值。是否忽略空值。默認為FALSE。