R语言文件读取

Python030

R语言文件读取,第1张

参考文章地址(https://zhuanlan.zhihu.com/p/120422644) 逗号分隔文件 (.csv文件)、 制表符分隔文件 (.tsv文件)和 空格分隔文件 (.txt文件) (一).csv文件的读取 mydata <- read.csv(file=" ", header=T, sep=",", quote="\", dec=".", fill=T, comment.char=" ") comment.char用于设置需要跳过的内容,比如需要跳过的行前面有“#”,那么设置comment.char=“#”,当然你也可以设置从中间开始读,注意,这个函数是read.csv里面的哦! file: 以csv结尾的文件名,由文件所在路径及其文件名构成 header:是否把第一行作为表头 sep:分隔方式,csv文件分隔读入参数设置为"."                                tsv文件分隔读入参数设置为"\t"                                txt文件分隔为空格,不需要设置sep参数 也可以通过mydata <- read.table("D:/mydata.csv", header=T, sep=",", row.names="id")读取 (二).tsv文件的读取 mydata <- read.table("D:/mydata.tsv", header=T, sep="\t", row.names="id") 除了分隔方式跟上面一样 (三).txt文件的读取 mydata <- read.table("c:/mydata.txt", header=TRUE, row.names="id") 除了分隔方式跟上面一样 (四)以.gz结尾的压缩文件的读取 1.在R中可以使用gzfile()的方式读取压缩文件 2.使用data.table包里的fread()函数 安装并加载data.table包 install.packages("data.table") library(data.table) 使用fread()函数读取文件,这里参数和之前的一致,唯一的不同就是fread()可以直接读取压缩文件 mydata <- fread(‘c:/mydata.txt.gz’, header=T, row.names=’id’) (五)读取.xlsx后缀文件,也就是excel文件 1. 安装并加载openxlsx包 install.packages("openxlsx") library(openxlsx) 2.进行数据的导入 mydata <- read.xlsx( "mydata.xlsx",rowNames=T) 其他参数可以通过? read.xlsx在R中根据需要进行添加的。

操作之前安装好ggplot2、vegan、ggpubr包。如下:

install.packages("ggplot2")

install.packages("ggpubr")

install.packages("vegan")

计算Shannon-香农指数和Simpson-辛普森指数的命令在vegan包中,计算各组显著性的命令在ggpubr包中;画图使用ggplot命令,在行使每个命令之前一定要加载相应的包,如下:

library(ggplot2)

library(ggpubr)

library(vegan)

拿到一个otu表格,要先计算香农指数和辛普森指数,操作如下:

otu=read.table('D:/r-working/feature-table.taxonomy.txt',row.names = 1,skip=1,header=T,comment.char ='',sep='\t')

#读取out表格

#'D:/feature table.taxonomy.txt'为文件路径,注意斜线方向

#row.names = 1指定第一列为行名

#skip=1跳过第一行不读

#header=T指定第一个有效行为列名

#sep='\t'表示指定制表符为分隔符

#comment.char=''表示设置注释符号为空字符‘’,这样#后面的内容就不会被省略

otu=otu[,-ncol(otu)]

#去除表格的最后一列,无用信息

otu=t(otu)

#表格转置,必须将样品名作为行名

shannon=diversity(otu,"shannon")

#计算香农指数,先加载vegan包

shannon

#查看香农指数

simpson=diversity(otu,"simpson")

#计算辛普森指数,先加载vegan包

simpson

#查看辛普森指数

alpha=data.frame(shannon,simpson,check.names=T)

#合并两个指数

write.table(alpha,"D:/r-working/alpha-summary.xls",sep='\t',quote=F)

#存储数据,注意路径使用反斜杠

将各样本进行分组,并进行画图,操作如下:

map<-read.table('D:/r-working/mapping_file.txt',row.names = 1,header=T,comment.char ='',sep='\t',check.names=F)

#读取分组表格

group<-map["Group1"]

#提取需要的分组,'Group1'是表中的分组列名,包括A,B,C三组

alpha<-alpha[match(rownames(group),rownames(alpha)),]

#重排alpha的行的顺序,使其与group的样本id(行名)一致

data<-data.frame(group,alpha,check.rows=T)

#合并两个表格.'<-'与'='同属赋值的含义.

p=ggplot(data=data,aes(x=Group1,y=shannon))+geom_boxplot(fill=rainbow(7)[2])

#data = data指定数据表格

#x=Group1指定作为x轴的数据列名

#y=shannon指定作为y轴的数据列名

#geom_boxplot()表示画箱线图

#fill=rainbow(7)[2]指定填充色

此处用到ggplot2包画箱线图,将画图函数赋值给p后,可以用‘+’不断进行图层叠加,给图片p增加新的特性

p

#查看p

mycompare=list(c('A','B'),c('A','C'),c('B','C'))

#指定多重比较的分组对

mycompare

p<-p+stat_compare_means(comparisons=mycompare,label = "p.signif",method = 'wilcox')

#添加显著性标记的第一种方法,在此之前先加载ggpubr包

p<-p+ylim(2,5.5)

#调整图像的外观