R语言的学习

在R语言里读入read.table及参数理解与整理

2019-04-27  本文已影响0人  Ashu

笔记整理

https://www.jianshu.com/p/aeb2f74b4080

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

看了生信技能树曾老师的R包安装视频教程,可到官网或者通过微云传输下载R包,根据电脑配置(有Window系统和Mac系统)选择匹配的R包,在安装过程中,选默认安装途径就可以。

R包安装指导https://www.jianshu.com/p/f3ac3ec511da

已看过生信技能树团队出品的R包安装指导视频教程。

简单了解二代测序https://share.weiyun.com/5dLV9A7 密码:wsstn9

已看过链接中的视频,了解二代测序的原理和方法。

R markdown使用

在作业中有

数据存读:https://www.jianshu.com/p/6ba9da4e2f5b
https://www.jianshu.com/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(询问数据类型的维度)
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')

作业

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:如果为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:从一个电子表格中导出的文件通常会把拖尾的空字段。
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
上一篇下一篇

猜你喜欢

热点阅读