R语言-第一次用RStudio 画热图

作业

1.read.table参数理解

  • file:文件名(包在“”内,或者使用一个字符型变量),可能需要全程路径(注意即使是在windows下,符号\也不允许包含在内,必须使用/替换),或者一个URL链接(http://...)(用URL对文件远程访问)。
  • header:一个逻辑值(FALSE or TRUE)用来反映这个文件的第一行是否包含变量名。
  • sep:文件中的字段分隔符,例如对用制表符分隔的文件使用sep=“\t”。
  • quote:指定用于包围字符型数据的字符。
  • dec:用来表示小数点的字符。
  • row.names:保存行名的向量,或文件中一个变量的序号或名字,缺省时行号取为1,2,3...
  • col.names:指定列名的字符向量(缺省值是:V1,V2,V3...)。
  • as.is:控制是否将字符型变量转化为因子型变量(如果值为FALSE),或者仍将其保留为字符型(TRUE)。as.is可以是逻辑型,数值型或字符型向,用来判断变量是否被保留为字符。
  • na.strings:代表缺失数据的值(转化NA)。
  • colClasses:指定各列的数据类型的一个字符型变量。
  • nrows:可以读取的最大行数(忽略负值)。
  • skip:在读取数据前跳过的行数。
  • check.names:如果为TRUE,则检查变量名是否存在R中有效。
  • fill:fill 设定(TRUE/FALSE),如果行的长度不同,设置为TRUE,可自动填充空格补齐。
  • strip.white:在sep已指定的情况下,如果为TRUE,则删除字符型变量前后多余的空格。
  • blank.lines.skip:如果为TRUE,忽略空白行。
  • comment.char:一个字符用来在数据文件中写注释,以这个字符开头的行将被忽略(要禁用这个参数,可使用comment.char="")。

2.运行各参数后,找出你认为读取文件用得比较多的参数

读取文件用得比较多的参数有:
“header”,“sep”,“quote”,“na.strings”,“fill”,“strip.white ”,“blank.lines.skip”,“comment.char ”,“”等等。

3.对上述参数用法进行理解并整理

  • header:按照惯例,首行只有对应列的字段而没有行标签对应的字段。因此,它会比余下的行少一个字段。(如果需要在 R 里面看到这一行,设置 header = TRUE。)如果要读取的文件里面有行标签的头字段(可能是空的),以下面的方式读取
    read.table("file.dat", header = TRUE, row.names = 1)
    列名字可以通过 col.names 显式地设定;显式设定的名字会替换首行里面的列名字(如果存在的话)。
  • sep:通常,打开文件看一下就可以确定文件所使用的字段分隔符,但对于空白分割的文件,可以选择默认的sep = "" (它能使用任何空白符作为分隔符,比如空格,制表符,换行符), sep = " " 或者 sep = "\t"。注意,分隔符的选择会影响输入的被引用的字符串。如果你有含有空字段的制表符分割的文件,一定要使用 sep = "\t"。
  • quote:默认情况下,字符串可以被 " 或 ' 括起,并且两种情况下,引号内部的字符都作为字符串的一部分。有效的引用字符(可能没有)的设置由参数 quote 控制。对于sep = "\n",默认值改为 quote = ""。如果没有设定分隔字符,在被引号括起的字符串里面,引号需要用 C格式的逃逸方式逃逸,即在引号前面直接加反斜杠 \。如果设定了分隔符,在被引号括起的字符串里面,按照电子表格的习惯,把引号重复两次以达到逃逸的效果。
  • na.strings :默认情况下,文件是假定用 NA 表示缺损值,但是,这可以通过参数 na.strings 改变。参数 na.strings 是一个可以包括一个或多个缺损值得字符描述方式的向量。 数值列的空字段也被看作是缺损值。在数值列,值 NaN,Inf 和 -Inf 都可以被接受的。
  • fill:fill 设定(TRUE/FALSE),如果行的长度不同,设置为TRUE,可自动填充空格补齐。
  • strip.white :如果设定了分隔符,字符字段起始和收尾处的空白会作为字段一部分看待的。为了去掉这些空白,可以使用参数 strip.white = TRUE。
  • blank.lines.skip:默认情况下,read.table 忽略空白行。这可以通过设置 blank.lines.skip = FALSE 来改变。但这个参数只有在和 fill = TRUE 共同使用时才有效。这时,可能是用空白行表明规则数据中的缺损样本。
  • comment.char:默认情况下,read.table 用 # 作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。只含有空白和注释的行被当作空白行。
    如果确认数据文件中没有注释内容,用 comment.char = "" 会比较安全 (也可能让速度比较快)。

4.read.csv参数理解

  • file:文件名(包在“”内,或者使用一个字符型变量),可能需要全程路径(注意即使是在windows下,符号\也不允许包含在内,必须使用/替换),或者一个URL链接(http://...)(用URL对文件远程访问)。
  • header:一个逻辑值(FALSE or TRUE)用来反映这个文件的第一行是否包含变量名。
  • sep:文件中的字段分隔符,例如对用制表符分隔的文件使用sep=“\t”。
  • quote:指定用于包围字符型数据的字符。
  • dec:用来表示小数点的字符。
  • fill:如果为TRUE且非所有的行中变量数目相同,则用空白填补。
  • comment.char:一个字符用来在数据文件中写注释,以这个字符开头的行将被忽略(要禁用这个参数,可使用comment.char="")。

5.运行各参数后,找出你认为读取文件用得比较多的参数

read.csv里的参数不多,如运行以下命令时,读取文件用得比较多的参数有,“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(询问数据类型的维度)
dim(d)
dim(f)
head(d)
head(f)
tail(d)
tail(f)
write.table(x = f,file = '0418.txt')

6.对上述参数用法进行理解并整理

  • header:按照惯例,首行只有对应列的字段而没有行标签对应的字段。因此,它会比余下的行少一个字段。(如果需要在 R 里面看到这一行,设置 header = TRUE。)如果要读取的文件里面有行标签的头字段(可能是空的),以下面的方式读取
    read.table("file.dat", header = TRUE, row.names = 1)
    列名字可以通过 col.names 显式地设定;显式设定的名字会替换首行里面的列名字(如果存在的话)。
  • sep:通常,打开文件看一下就可以确定文件所使用的字段分隔符,但对于空白分割的文件,可以选择默认的sep = "" (它能使用任何空白符作为分隔符,比如空格,制表符,换行符), sep = " " 或者 sep = "\t"。注意,分隔符的选择会影响输入的被引用的字符串。如果你有含有空字段的制表符分割的文件,一定要使用 sep = "\t"。
  • quote:默认情况下,字符串可以被 " 或 ' 括起,并且两种情况下,引号内部的字符都作为字符串的一部分。有效的引用字符(可能没有)的设置由参数 quote 控制。对于sep = "\n",默认值改为 quote = ""。如果没有设定分隔字符,在被引号括起的字符串里面,引号需要用 C格式的逃逸方式逃逸,即在引号前面直接加反斜杠 \。如果设定了分隔符,在被引号括起的字符串里面,按照电子表格的习惯,把引号重复两次以达到逃逸的效果。
  • fill:从一个电子表格中导出的文件通常会把拖尾的空字段。
  • strip.white :如果设定了分隔符,字符字段起始和收尾处的空白会作为字段一部分看待的。为了去掉这些空白,可以使用参数 strip.white = TRUE。
  • comment.char:默认情况下,read.table 用 # 作为注释标识字符。如果碰到该字符(除了在被引用的字符串内),该行中随后的内容将会被忽略。只含有空白和注释的行被当作空白行。
    如果确认数据文件中没有注释内容,用 comment.char = "" 会比较安全 (也可能让速度比较快)。

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

在RStudio中从文件夹“file”的子目录“New file”里打开R markdown:


markerdown的打开方式.png

了解markdown一些选项和图标的功能:
如图中的解释:


选项及图标功能.png

8.安装R包 pheatmap,并截图安装结果

pheatmap安装结果.png

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

R语言中的pheatmap包是制作热图的一个工具,在基因表达中,根据得来的实验数据,在使用pheatmap制作的基因表达或其它测试结果的热图中,如可以用不同颜色展示基因的表达量的差异。

10.pheatmap对读到的数据进行画图(图片展示)

注:引用网上的数据(https://blog.csdn.net/sinat_38163598/article/details/72770404)练习,刚接触,需要花一些时间去了解

library(pheatmap)
#创建数据集test测试矩阵
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函数画热图
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)
在热图里进行行和列分组.png

补充:
1.今天涉及到一些快捷键的使用

  • 在RStudio中点击tab键起补全命令功能
    比如在RStudio命令中想输入read.csv时,输入re并点击tab键就可以看到


    tab键的补全功能1.png

    比如在RStudio命令中输入pheatmap(按下tab键)就可以看到,选择需要参数,并按下enter


    tab键的补全功能2.png
  • 查看第一条和最后一条命令:在RStudio输入的很多命令中,想要回到第一条命令的位置,同时按command和向上光标移动键(相当于非Mac的home键),想看到最后一条命令,同时按时按command和向下光标移动建。

  • 查看临近上下条命令:查看上一条命令,按向上光标,同样的道理,查看下一条命令,按向下光标键。

  • as.is:as开头的函数(如as.numeric)表赋予,is开头的函数表判断,如(is.numeric)判断元素是否为数值。

  • paste和paste0的用法

paste (..., sep = " ", collapse = NULL)
paste0(..., collapse = NULL)

输入简单的向量,paste和paste0输入方式是一样的,如:

paste0(1:12)
paste(1:12)        # same
as.character(1:12) # same

输入多个向量,paste需要在每个向量间用sep = " ",分开。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容