在R語(yǔ)言里讀入read.table及參數(shù)理解與整理

筆記整理

http://www.itdecent.cn/p/aeb2f74b4080

R包安裝 http://www.bio-info-trainee.com/3727.html

看了生信技能樹(shù)曾老師的R包安裝視頻教程,可到官網(wǎng)或者通過(guò)微云傳輸下載R包,根據(jù)電腦配置(有Window系統(tǒng)和Mac系統(tǒng))選擇匹配的R包,在安裝過(guò)程中,選默認(rèn)安裝途徑就可以。

R包安裝指導(dǎo)http://www.itdecent.cn/p/f3ac3ec511da

已看過(guò)生信技能樹(shù)團(tuán)隊(duì)出品的R包安裝指導(dǎo)視頻教程。

簡(jiǎn)單了解二代測(cè)序https://share.weiyun.com/5dLV9A7 密碼:wsstn9

已看過(guò)鏈接中的視頻,了解二代測(cè)序的原理和方法。

R markdown使用

在作業(yè)中有

數(shù)據(jù)存讀:http://www.itdecent.cn/p/6ba9da4e2f5b
http://www.itdecent.cn/p/6ba9da4e2f5b

下載的txt文件.png

a<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt')
b<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',)
d<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',comment.char = '!',sep='\t')
f<-read.table('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',sep = '\t',)
####dim(詢(xún)問(wèn)數(shù)據(jù)類(lèi)型的維度)
dim(d)
dim(f)
head(d)
head(f)
tail(d)
tail(f)
write.table(x = f,file = '0418.txt')

> a<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt')
> b<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',)
> d<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',comment.char = '!',sep='\t')
> f<-read.table('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',sep = '\t',fill=T,skip=66,header=T)
> dim(d)
[1] 22277     7
> dim(f)
[1] 22278     7
> head(d)
    ID_REF GSM431121 GSM431122  GSM431123  GSM431124  GSM431125  GSM431126
1 1007_s_at 481.59980 596.79062 2721.83475 2566.31563 2737.76320 2629.25380
2   1053_at 306.82972 224.97956  246.73288  251.85537  245.55677  196.34917
3    117_at  30.32576  27.28749   40.12724   40.04009   48.14327   37.57184
4    121_at 125.04107 147.67525  138.18675  160.26449  151.04978  143.56799
5 1255_g_at  19.87286  18.08049   19.11944   19.19024   21.11857   18.96300
6   1294_at  61.81515  57.12277   49.46442   45.69329   49.95233   46.70881
> head(f)
    ID_REF GSM431121 GSM431122  GSM431123  GSM431124  GSM431125  GSM431126
1 1007_s_at 481.59980 596.79062 2721.83475 2566.31563 2737.76320 2629.25380
2   1053_at 306.82972 224.97956  246.73288  251.85537  245.55677  196.34917
3    117_at  30.32576  27.28749   40.12724   40.04009   48.14327   37.57184
4    121_at 125.04107 147.67525  138.18675  160.26449  151.04978  143.56799
5 1255_g_at  19.87286  18.08049   19.11944   19.19024   21.11857   18.96300
6   1294_at  61.81515  57.12277   49.46442   45.69329   49.95233   46.70881
> tail(d)
              ID_REF GSM431121 GSM431122 GSM431123 GSM431124 GSM431125 GSM431126
22272  AFFX-ThrX-3_at  25.14590  25.55137  25.96761  26.44569  30.54909  24.86885
22273  AFFX-ThrX-5_at  19.88238  19.44767  19.86274  20.04666  22.50811  19.22124
22274  AFFX-ThrX-M_at  18.68637  18.06303  18.94539  19.43978  19.48697  18.94799
22275 AFFX-TrpnX-3_at  19.93025  20.31343  19.57098  19.91236  20.14536  20.05193
22276 AFFX-TrpnX-5_at  18.73988  19.09319  19.23404  18.54682  21.10093  18.34052
22277 AFFX-TrpnX-M_at  18.91361  19.58369  19.00904  18.34500  18.64643  17.76356
> tail(f)
                       ID_REF GSM431121 GSM431122 GSM431123 GSM431124 GSM431125 GSM431126
22273           AFFX-ThrX-5_at  19.88238  19.44767  19.86274  20.04666  22.50811  19.22124
22274           AFFX-ThrX-M_at  18.68637  18.06303  18.94539  19.43978  19.48697  18.94799
22275          AFFX-TrpnX-3_at  19.93025  20.31343  19.57098  19.91236  20.14536  20.05193
22276          AFFX-TrpnX-5_at  18.73988  19.09319  19.23404  18.54682  21.10093  18.34052
22277          AFFX-TrpnX-M_at  18.91361  19.58369  19.00904  18.34500  18.64643  17.76356
22278 !series_matrix_table_end        NA        NA        NA        NA        NA        NA
> write.table(x = f,file = '0418.txt')

作業(yè)

1.read.table參數(shù)理解

file:文件名(包在“”內(nèi),或者使用一個(gè)字符型變量),可能需要全程路徑(注意即使是在windows下,符號(hào)\也不允許包含在內(nèi),必須使用/替換),或者一個(gè)URL鏈接(http://...)(用URL對(duì)文件遠(yuǎn)程訪問(wèn))。
header:一個(gè)邏輯值(FALSE or TRUE)用來(lái)反映這個(gè)文件的第一行是否包含變量名。
sep:文件中的字段分隔符,例如對(duì)用制表符分隔的文件使用sep=“\t”。
quote:指定用于包圍字符型數(shù)據(jù)的字符。
dec:用來(lái)表示小數(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ù)值型或字符型向,用來(lái)判斷變量是否被保留為字符。
na.strings:代表缺失數(shù)據(jù)的值(轉(zhuǎn)化NA)。
colClasses:指定各列的數(shù)據(jù)類(lèi)型的一個(gè)字符型變量。
nrows:可以讀取的最大行數(shù)(忽略負(fù)值)。
skip:在讀取數(shù)據(jù)前跳過(guò)的行數(shù)。
check.names:如果為T(mén)RUE,則檢查變量名是否存在R中有效。
fill:如果為T(mén)RUE且非所有的行中變量數(shù)目相同,則用空白填補(bǔ)。
strip.white:在sep已指定的情況下,如果為T(mén)RUE,則刪除字符型變量前后多余的空格。
blank.lines.skip:如果為T(mén)RUE,忽略空白行。
comment.char:一個(gè)字符用來(lái)在數(shù)據(jù)文件中寫(xiě)注釋?zhuān)赃@個(gè)字符開(kāi)頭的行將被忽略(要禁用這個(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)列的字段而沒(méi)有行標(biāo)簽對(duì)應(yīng)的字段。因此,它會(huì)比余下的行少一個(gè)字段。(如果需要在 R 里面看到這一行,設(shè)置 header = TRUE。)如果要讀取的文件里面有行標(biāo)簽的頭字段(可能是空的),以下面的方式讀取
read.table("file.dat", header = TRUE, row.names = 1)
列名字可以通過(guò) col.names 顯式地設(shè)定;顯式設(shè)定的名字會(huì)替換首行里面的列名字(如果存在的話)。
sep:通常,打開(kāi)文件看一下就可以確定文件所使用的字段分隔符,但對(duì)于空白分割的文件,可以選擇默認(rèn)的sep = "" (它能使用任何空白符作為分隔符,比如空格,制表符,換行符), sep = " " 或者 sep = "\t"。注意,分隔符的選擇會(huì)影響輸入的被引用的字符串。如果你有含有空字段的制表符分割的文件,一定要使用 sep = "\t"。
quote:默認(rèn)情況下,字符串可以被 " 或 ' 括起,并且兩種情況下,引號(hào)內(nèi)部的字符都作為字符串的一部分。有效的引用字符(可能沒(méi)有)的設(shè)置由參數(shù) quote 控制。對(duì)于sep = "\n",默認(rèn)值改為 quote = ""。如果沒(méi)有設(shè)定分隔字符,在被引號(hào)括起的字符串里面,引號(hào)需要用 C格式的逃逸方式逃逸,即在引號(hào)前面直接加反斜杠 \。如果設(shè)定了分隔符,在被引號(hào)括起的字符串里面,按照電子表格的習(xí)慣,把引號(hào)重復(fù)兩次以達(dá)到逃逸的效果。
na.strings :默認(rèn)情況下,文件是假定用 NA 表示缺損值,但是,這可以通過(guò)參數(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 忽略空白行。這可以通過(guò)設(shè)置 blank.lines.skip = FALSE 來(lái)改變。但這個(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ù)文件中沒(méi)有注釋內(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)程訪問(wèn))。
header:一個(gè)邏輯值(FALSE or TRUE)用來(lái)反映這個(gè)文件的第一行是否包含變量名。
sep:文件中的字段分隔符,例如對(duì)用制表符分隔的文件使用sep=“\t”。
quote:指定用于包圍字符型數(shù)據(jù)的字符。
dec:用來(lái)表示小數(shù)點(diǎn)的字符。
fill:如果為T(mén)RUE且非所有的行中變量數(shù)目相同,則用空白填補(bǔ)。
comment.char:一個(gè)字符用來(lái)在數(shù)據(jù)文件中寫(xiě)注釋?zhuān)赃@個(gè)字符開(kāi)頭的行將被忽略(要禁用這個(gè)參數(shù),可使用comment.char="")。

5.運(yùn)行各參數(shù)后,找出你認(rèn)為讀取文件用得比較多的參數(shù)

read.csv里的參數(shù)不多,如運(yùn)行以下命令時(shí),讀取文件用得比較多的參數(shù)有,“header”,“ sep ”,“ quote”,“dec”,“fill ”,“comment.char ”。

a<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt')
b<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',)
d<-read.csv('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',comment.char = '!',sep='\t')
f<-read.table('/Users/chenjiangshu/cjs-beginner/GSE17215_series_matrix.txt',sep = '\t',)
####dim(詢(xún)問(wèn)數(shù)據(jù)類(lèi)型的維度)
dim(d)
dim(f)
head(d)
head(f)
tail(d)
tail(f)
write.table(x = f,file = '0418.txt')

6.對(duì)上述參數(shù)用法進(jìn)行理解并整理

header:按照慣例,首行只有對(duì)應(yīng)列的字段而沒(méi)有行標(biāo)簽對(duì)應(yīng)的字段。因此,它會(huì)比余下的行少一個(gè)字段。(如果需要在 R 里面看到這一行,設(shè)置 header = TRUE。)如果要讀取的文件里面有行標(biāo)簽的頭字段(可能是空的),以下面的方式讀取
read.table("file.dat", header = TRUE, row.names = 1)
列名字可以通過(guò) col.names 顯式地設(shè)定;顯式設(shè)定的名字會(huì)替換首行里面的列名字(如果存在的話)。
sep:通常,打開(kāi)文件看一下就可以確定文件所使用的字段分隔符,但對(duì)于空白分割的文件,可以選擇默認(rèn)的sep = "" (它能使用任何空白符作為分隔符,比如空格,制表符,換行符), sep = " " 或者 sep = "\t"。注意,分隔符的選擇會(huì)影響輸入的被引用的字符串。如果你有含有空字段的制表符分割的文件,一定要使用 sep = "\t"。
quote:默認(rèn)情況下,字符串可以被 " 或 ' 括起,并且兩種情況下,引號(hào)內(nèi)部的字符都作為字符串的一部分。有效的引用字符(可能沒(méi)有)的設(shè)置由參數(shù) quote 控制。對(duì)于sep = "\n",默認(rèn)值改為 quote = ""。如果沒(méi)有設(shè)定分隔字符,在被引號(hào)括起的字符串里面,引號(hào)需要用 C格式的逃逸方式逃逸,即在引號(hào)前面直接加反斜杠 \。如果設(shè)定了分隔符,在被引號(hào)括起的字符串里面,按照電子表格的習(xí)慣,把引號(hào)重復(fù)兩次以達(dá)到逃逸的效果。
fill:從一個(gè)電子表格中導(dǎo)出的文件通常會(huì)把拖尾的空字段。
strip.white :如果設(shè)定了分隔符,字符字段起始和收尾處的空白會(huì)作為字段一部分看待的。為了去掉這些空白,可以使用參數(shù) strip.white = TRUE。
comment.char:默認(rèn)情況下,read.table 用 # 作為注釋標(biāo)識(shí)字符。如果碰到該字符(除了在被引用的字符串內(nèi)),該行中隨后的內(nèi)容將會(huì)被忽略。只含有空白和注釋的行被當(dāng)作空白行。
如果確認(rèn)數(shù)據(jù)文件中沒(méi)有注釋內(nèi)容,用 comment.char = "" 會(huì)比較安全 (也可能讓速度比較快)。

7.Rmarkdown 的各部件功能理解(文字描述)

在RStudio中從文件夾“file”的子目錄“New file”里打開(kāi)R markdown:


markerdown的打開(kāi)方式.png

了解markdown一些選項(xiàng)和圖標(biāo)的功能:
如圖中的解釋?zhuān)?/p>

選項(xiàng)及圖標(biāo)功能.png

8.安裝R包 pheatmap,并截圖安裝結(jié)果

pheatmap安裝結(jié)果.png

9.pheatmap的功能了解(文字描述)

R語(yǔ)言中的pheatmap包是制作熱圖的一個(gè)工具,在基因表達(dá)中,根據(jù)得來(lái)的實(shí)驗(yàn)數(shù)據(jù),在使用pheatmap制作的基因表達(dá)或其它測(cè)試結(jié)果的熱圖中,如可以用不同顏色展示基因的表達(dá)量的差異。

10.pheatmap對(duì)讀到的數(shù)據(jù)進(jìn)行畫(huà)圖(圖片展示)

注:引用網(wǎng)上的數(shù)據(jù)(https://blog.csdn.net/sinat_38163598/article/details/72770404)練習(xí),剛接觸,需要花一些時(shí)間去了解

library(pheatmap)
#創(chuàng)建數(shù)據(jù)集test測(cè)試矩陣
test = matrix(rnorm(200), 20, 10)
test[1:10, seq(1, 10, 2)] = test[1:10, seq(1, 10, 2)] + 3
test[11:20, seq(2, 10, 2)] = test[11:20, seq(2, 10, 2)] + 2
test[15:20, seq(2, 10, 2)] = test[15:20, seq(2, 10, 2)] + 4
colnames(test) = paste("Test", 1:10, sep = "")
rownames(test) = paste("Gene", 1:20, sep = "")
# 用pheatmap函數(shù)畫(huà)熱圖
pheatmap(test)
pheatmap 制作熱圖 20190427 .png

在熱圖格子里展示文本

pheatmap(test, display_numbers = TRUE)
pheatmap(test, display_numbers = TRUE, number_format = "\%.1e")
pheatmap(test, display_numbers = matrix(ifelse(test > 5, "*", ""), nrow(test)))
在熱圖格子里添加文本.png

pheatmap還可以顯示行或列的分組信息,支持多種分組;

annotation_col = data.frame(CellType = factor(rep(c("CT1", "CT2"), 5)), Time = 1:5)
rownames(annotation_col) = paste("Test", 1:10, sep = "")

annotation_row = data.frame(GeneClass = factor(rep(c("Path1", "Path2", "Path3"), c(10, 4, 6))))
rownames(annotation_row) = paste("Gene", 1:20, sep = "")

pheatmap(test, annotation_col = annotation_col, annotation_row = annotation_row)
在熱圖里進(jìn)行行和列分組.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容