R之基本数据整理

#安装咱们要使用的包

install.packages("dplyr")

library(dplyr)

setwd("L:/R语言学习/R语言学习流程/R语言数据整理")

# 读入实验设计和Alpha多样性值

design =read.table("map_lxdjhg.txt", header=T, row.names= 1,sep="\t")

data("iris")

head(design)

  • 首先,我们来看数据结构中储存了写什么?R中对象的5种基本类型:

字符(character)

逻辑(logical:True/False)

数值(numeric:real numbers)

整数(integer)(这种数据格式和numeric很相似,一个是整数,一个数值,两者在R语言中应该一样吧)

复数(complex)(我们不经常见到这种数据)

当然R是不会主动告诉你这个对象是一种什么类型,采用下面命令查看:class(),示例如下:

R语言学习流程/R语言数据整理")

# 读入实验设计

design =read.table("map_lxdjhg.txt", header=T, row.names= 1,sep="\t")

data("iris")

class(design$BarcodeSequence)

#这里我们并没有数值形式的数据,添加一列

design$wt=c(1:63)

#这里数据类型是整数型的

class(design$wt)

#通过下面命令更改为数值(numeric:real numbers)

design$wt<-as.double(design$wt)

class(design$wt)

#当然可以改回去,目前两者区别没有看到

design$wt<-as.integer(design$wt)

运行窗口:

  • 其次我们来看看R语言中的几种数据结构:

  1. 向量:储存数值(正负数,是否有小数点,都可以),逻辑(就是T、F,也可以写上全称,R认得),字符型变量(任意字母),只能储存一种基本数据类型,后两种数据类型元素必须加上双引号才可以:

    基本结构:wt<-c()

  2. 矩阵:是一个二维数组,任然是每个元素拥有相同的数据类型,通过matrix()创建:

#我们导入的数据格式基本上都是data.frame

str(design)

#这里将数据框转化为矩阵类型,发现将最后一列数值型数据转化为字符型了

as.matrix(design)

#这里将转化后的矩阵赋值给一个变量,不然只会输出在面板上,不会储存:

wt2<-as.matrix(design)

str(wt2)

第一行树填充矩阵的元素,三四行就是行和列名,和数据框是完全不一样的,为什么要强调分辨这两种数据储存形式呢,因为之后讲的数据类型变换,将限定数据类型:

对矩阵的取舍:

m[x,y]

x:代表矩阵行,可以根据行号选择,如果想选择多行,则使用c(j:k)来选择一段区间

y:代表矩阵列,可以根据列号选择,如果想选择多列,则使用c(j:k)来选择一段区间

这个很有用,比如:

我要做相关性分析,一般是长这样的,行列都一样,对这个图形的简化也无非是对角线减一半,但是这样占空间还是一样:

#做相关的R包

library("corrplot")

#使用R自带数据

data(mtcars)

#求相关

#保留小数点,方便放到图上

round(mcor,digits= 2)

#出图

corrplot(mcor)

这里通过这样的操作:

#corr.test函数的包

library(psych)

#进入工作目录,导入数据

setwd("E:/Shared_Folder/HG_usearch_HG/16s功能预测_usearch/相关lefse个edgr差异和代谢通路相关")

wt =read.table("GF5.txt", header=T,sep="\t",check.names=F)

# corr.test求相关性矩阵,可以检测显著性,所以我使用这个函数

occor =corr.test(wt,use="pairwise",method="spearman",adjust="fdr",alpha=.05)

occor.r =occor$r # 取相关性矩阵R值

occor.p =occor$p # 取相关性矩阵p值

#这里我将不显著的改为0

occor.r[occor.p>0.05]= 0

#我是通过将otu和通路分别放到两个坐标轴实现图形空间的压缩

wt3<-occor.r[c(1:10),c(11:16)]

corrplot(wt3,cl.cex= 0.8,tl.cex = 0.5,tl.srt = 45,)

运行界面:

#图形界面:

演示到此结束。

ⅲ. 数据框:弥补矩阵不足,不同的列可以储存不同模式的数据,当然,这就是咱们经常使用的数据存储形式:

通过data.frame()创建

也可以通过[]提取需要的列

#提取前两列

design[1:2]

#提取对应名字的列

design[c("LinkerPrimerSequence","BarcodeSequence")]

#提取一列,但是这样不会按照数据框形式显示一列数据,会将其排列,并给出Levels

wt4<-design$SampleType

str(wt4)

wt4<-design[c("SampleType")]

str(wt4)

运行界面,之后我们会经常使用$符号提取数据框,所以这里将一下两者:

与数据框有关的还有这个:实例标识符,在R中为行名(rownames),就是对应一列的变量名;

这里我们开始使用数据管理神包整理数据啦:

#这里通过对数据整理,因此,我读入alpla多样性数据

alpha =read.table("alpha8825.txt", header=T, row.names= 1,sep="\t")

head(alpha)

# 添加一个新的列he,为对应值加和

alpha1<-mutate(alpha, he =shannon+chao1)

# 变量名称包含o的变量

alpha1<-select(alpha, contains("o"))

是否可以做到选择同时包含多个元素的向量?到这里,我们会产生想法,经常我们的otu表格是很多处理一起的,我们并不会在同一个时间,需要所有数据,这个时候选择自己需要的数据十分重要,我使用正则表达式来达到这一个要求:

#改变工作目录,导入数据

setwd("E:/Shared_Folder/HG_usearch_HG")

otutable =read.table("otu_table.txt", header=T, row.names= 1,sep="\t")

#提取列名

WT5<-colnames(otutable)

#使用grep函数选择需要的列名,“|”符号表示或者的含义

c=grep("GF1|GC1|GF5|GC5",WT5)

wt6<-otutable[c]

这个包有这种方式筛选,把需要的变量赋值给vars,然后用one_of模式筛选,但是需要一个一个输入需要的列名,,目前还不知道这个包会不会有更加方便的方法,继续学!

vars<-c("observed_otus", "PD_whole_tree")

df_select<-select(alpha, one_of(vars))

微生信生物

学习永无止境,分享永不停息!


这里插播一条消息:

周六的留言,我忘记看了过了24小时,就无法单独回过去消息了,我将回复内容粘贴至此:

之前我没有查看消息,不好意思:
你是做pcoa分析对吧?
首先这个值需要自己提取并且自己计算每个坐标轴的得分的,并不是直接就有的
pcoa = cmdscale(bray_curtis, k=2, eig=T)#后面的eig就是你需要的得分
eig = pcoa$eig#提取出来
#通过这个正则表达式计算得分值,并通过labs函数赋给x,y轴标签(通过ggplot出图)

ggplot(points, aes(x=wt, y=hl, color=SampleType)) +  geom_point(alpha=.6, size=1.5) +labs(x=paste("PCoA 1 (", format(100 * eig[1] / sum(eig), digits=3), "%)", sep=""),       y=paste("PCoA 2 (", format(100 * eig[2] / sum(eig), digits=3), "%)", sep=""),
祝好

(0)

相关推荐