設(shè)置工作目錄setwd()
路徑要填完整路徑setwd(dir=" 路徑")
舉例:setwd(dir="C:/Users/kingjie/Desktop/Rdata")
read.table()函數(shù)是R最基本函數(shù)之一,主要用來讀取矩形表格數(shù)據(jù)。
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 = "", ...)
參數(shù)解釋:
file:
文件名(包在“”內(nèi),或者使用一個(gè)字符型變量),可能需要全程路徑(注意即使是在windows下,符號(hào)\也不允許包含在內(nèi),必須使用/替換),或者一個(gè)URL鏈接(http://...)(用URL對(duì)文件遠(yuǎn)程訪問)。
header:
一個(gè)表示文件是否在第一行包含了變量的邏輯型變量。
如果header設(shè)置為TRUE,則要求第一行要比數(shù)據(jù)列的數(shù)量少一列。
sep:
分隔數(shù)據(jù)值的分隔符。默認(rèn)值為sep =“ ”,表示一個(gè)或多個(gè)空格、制表符、換行符或回車符。使用sep =“,”來讀取被逗號(hào)","分隔的文件,使用sep =“\t”來讀取制表符分隔的文件
quote:
用于對(duì)有特殊字符的字符串劃定接線的字符串,默認(rèn)值是TRUE(")或單引號(hào)。(`)
dec:
decimal用于指明數(shù)據(jù)文件中小數(shù)的小數(shù)點(diǎn)。
numerals:
字符串類型。用于指定文件中的數(shù)字轉(zhuǎn)換為雙精度數(shù)據(jù)時(shí)丟失精度的情況下如何進(jìn)行轉(zhuǎn)換。
row.names:
保存行名的向量。可以使用此參數(shù)以向量的形式給出每行的實(shí)際行名。或者要讀取的表中包含行名稱的列序號(hào)或列名字符串。
在數(shù)據(jù)文件中有行頭且首行的字段名比數(shù)據(jù)列少一個(gè)的情況下,數(shù)據(jù)文件中第1列將被視為行名稱。除此情況外,在沒有給定row.names參數(shù)時(shí),讀取的行名將會(huì)自動(dòng)編號(hào)。
可以使用row.names = NULL強(qiáng)制行進(jìn)行編號(hào)。
col.names:
指定列名的向量。缺省情況下是又"V"加上列序構(gòu)成,即V1,V2,V3......
Tip:
rownames、colnames是base包中的行名、列名函數(shù);
而row.names、col.names是read.table函數(shù)中的行名、參數(shù)
在R語言里讀入read.table及參數(shù)理解與整理
1.read.table參數(shù)理解
file:文件名(包在“”內(nèi),或者使用一個(gè)字符型變量),可能需要全程路徑(注意即使是在windows下,符號(hào)\也不允許包含在內(nèi),必須使用/替換),或者一個(gè)URL鏈接(http://...)(用URL對(duì)文件遠(yuǎn)程訪問)。
header:一個(gè)邏輯值(FALSE or TRUE)用來反映這個(gè)文件的第一行是否包含變量名。
sep:文件中的字段分隔符,例如對(duì)用制表符分隔的文件使用sep=“\t”。
quote:指定用于包圍字符型數(shù)據(jù)的字符。
dec:用來表示小數(shù)點(diǎn)的字符。
row.names:保存行名的向量,或文件中一個(gè)變量的序號(hào)或名字,缺省時(shí)行號(hào)取為1,2,3...
col.names:指定列名的字符向量(缺省值是:V1,V2,V3...)。
as.is:控制是否將字符型變量轉(zhuǎn)化為因子型變量(如果值為FALSE),或者仍將其保留為字符型(TRUE)。as.is可以是邏輯型,數(shù)值型或字符型向,用來判斷變量是否被保留為字符。
na.strings:代表缺失數(shù)據(jù)的值(轉(zhuǎn)化NA)。
colClasses:指定各列的數(shù)據(jù)類型的一個(gè)字符型變量。
nrows:可以讀取的最大行數(shù)(忽略負(fù)值)。
skip:在讀取數(shù)據(jù)前跳過的行數(shù)。
check.names:如果為TRUE,則檢查變量名是否存在R中有效。
fill:如果為TRUE且非所有的行中變量數(shù)目相同,則用空白填補(bǔ)。
strip.white:在sep已指定的情況下,如果為TRUE,則刪除字符型變量前后多余的空格。
blank.lines.skip:如果為TRUE,忽略空白行。
comment.char:一個(gè)字符用來在數(shù)據(jù)文件中寫注釋,以這個(gè)字符開頭的行將被忽略(要禁用這個(gè)參數(shù),可使用comment.char="")。
2.運(yùn)行各參數(shù)后,找出你認(rèn)為讀取文件用得比較多的參數(shù)
讀取文件用得比較多的參數(shù)有:
“header”,“sep”,“quote”,“na.strings”,“fill”,“strip.white ”,“blank.lines.skip”,“comment.char ”,“”等等。
3.對(duì)上述參數(shù)用法進(jìn)行理解并整理
header:按照慣例,首行只有對(duì)應(yīng)列的字段而沒有行標(biāo)簽對(duì)應(yīng)的字段。因此,它會(huì)比余下的行少一個(gè)字段。(如果需要在 R 里面看到這一行,設(shè)置 header = TRUE。)如果要讀取的文件里面有行標(biāo)簽的頭字段(可能是空的),以下面的方式讀取
read.table("file.dat", header = TRUE, row.names = 1)
列名字可以通過 col.names 顯式地設(shè)定;顯式設(shè)定的名字會(huì)替換首行里面的列名字(如果存在的話)。
sep:通常,打開文件看一下就可以確定文件所使用的字段分隔符,但對(duì)于空白分割的文件,可以選擇默認(rèn)的sep = "" (它能使用任何空白符作為分隔符,比如空格,制表符,換行符), sep = " " 或者 sep = "\t"。注意,分隔符的選擇會(huì)影響輸入的被引用的字符串。如果你有含有空字段的制表符分割的文件,一定要使用 sep = "\t"。
quote:默認(rèn)情況下,字符串可以被 " 或 ' 括起,并且兩種情況下,引號(hào)內(nèi)部的字符都作為字符串的一部分。有效的引用字符(可能沒有)的設(shè)置由參數(shù) quote 控制。對(duì)于sep = "\n",默認(rèn)值改為 quote = ""。如果沒有設(shè)定分隔字符,在被引號(hào)括起的字符串里面,引號(hào)需要用 C格式的逃逸方式逃逸,即在引號(hào)前面直接加反斜杠 \。如果設(shè)定了分隔符,在被引號(hào)括起的字符串里面,按照電子表格的習(xí)慣,把引號(hào)重復(fù)兩次以達(dá)到逃逸的效果。
na.strings :默認(rèn)情況下,文件是假定用 NA 表示缺損值,但是,這可以通過參數(shù) na.strings 改變。參數(shù) na.strings 是一個(gè)可以包括一個(gè)或多個(gè)缺損值得字符描述方式的向量。 數(shù)值列的空字段也被看作是缺損值。在數(shù)值列,值 NaN,Inf 和 -Inf 都可以被接受的。
fill:從一個(gè)電子表格中導(dǎo)出的文件通常會(huì)把拖尾的空字段。
strip.white :如果設(shè)定了分隔符,字符字段起始和收尾處的空白會(huì)作為字段一部分看待的。為了去掉這些空白,可以使用參數(shù) strip.white = TRUE。
blank.lines.skip:默認(rèn)情況下,read.table 忽略空白行。這可以通過設(shè)置 blank.lines.skip = FALSE 來改變。但這個(gè)參數(shù)只有在和 fill = TRUE 共同使用時(shí)才有效。這時(shí),可能是用空白行表明規(guī)則數(shù)據(jù)中的缺損樣本。
comment.char:默認(rèn)情況下,read.table 用 # 作為注釋標(biāo)識(shí)字符。如果碰到該字符(除了在被引用的字符串內(nèi)),該行中隨后的內(nèi)容將會(huì)被忽略。只含有空白和注釋的行被當(dāng)作空白行。
如果確認(rèn)數(shù)據(jù)文件中沒有注釋內(nèi)容,用 comment.char = "" 會(huì)比較安全 (也可能讓速度比較快)。
4.read.csv參數(shù)理解
file:文件名(包在“”內(nèi),或者使用一個(gè)字符型變量),可能需要全程路徑(注意即使是在windows下,符號(hào)\也不允許包含在內(nèi),必須使用/替換),或者一個(gè)URL鏈接(http://...)(用URL對(duì)文件遠(yuǎn)程訪問)。
header:一個(gè)邏輯值(FALSE or TRUE)用來反映這個(gè)文件的第一行是否包含變量名。
sep:文件中的字段分隔符,例如對(duì)用制表符分隔的文件使用sep=“\t”。
quote:指定用于包圍字符型數(shù)據(jù)的字符。
dec:用來表示小數(shù)點(diǎn)的字符。
fill:如果為TRUE且非所有的行中變量數(shù)目相同,則用空白填補(bǔ)。
comment.char:一個(gè)字符用來在數(shù)據(jù)文件中寫注釋,以這個(gè)字符開頭的行將被忽略(要禁用這個(gè)參數(shù),可使用comment.char="")。
作者:Ashu
鏈接:http://www.lxweimin.com/p/fc374c7cd2a2
來源:簡(jiǎn)書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。