如何用r语言将某一列中某些含特殊值的行全部挑出并制作新表

Python067

如何用r语言将某一列中某些含特殊值的行全部挑出并制作新表,第1张

最简单的方法,数据框的名称,加上你要提取的列数,示例如下:

需要注意的是,如果只提取单列的话,得到的数据就变成了一个vector,而不再是dataframe的格式了。

首先,导入R语言需要加载xlsx包,没有安装这个包的,请用下面的代码进行在线安装:

install.packages("xlsx")选择China的任意一个镜像站点,它会自动安装其他所需的依赖包。

安装好xlsx包后,接下来导入存放在“C:\Users\HWT\Desktop”路径下的“test.xlsx”文件,导入这个文件的代码如下:

library(xlsx)

read.xlsx2(file="C:\\Users\\HWT\\Desktop\\test.xlsx",sheetIndex=1)

我们上面的代码只是把test.xlsx导入了R语言,并没有把它赋给R语言里的某个对象,用下面的代码把数据赋给对象Mydata:

Mydata-read.xlsx2(file="C:\\Users\\HWT\\Desktop\\test.xlsx",sheetIndex=1)。

今天就先来聊聊如何看差异表达基因数据,火山图,聚类图又怎么看。1差异基因筛选方法那差异基因是如何筛选出来的呢?差异基因的筛选方法有很多,包括倍数法、T检验、F检验及SAM等。

下面简单介绍一下GCBI上用的倍数法和SAM法。

倍数法适用于没有生物学重复的样本,其计算基因在两个条件下表达水平的比值,确定比值的阈值,将绝对值大于此阈值的基因判断为差异基因。

SAM算法适用于有生物学重复的样本,通过对分母增加一个常量 T 检验过程减小了假阳性发生的概率。文献中报道,相较于其他算法,SAM算法更为稳定,筛选出的结果也更为准确。2差异基因数据解读经过合适的差异基因方法筛选出的差异基因,结果一般分为两部分,数据+图形。

数据结果展示如下图所示(两分组)众多参数中,重点看三个。p-value或q-value没有做生物学重复请跳过这一步。

p-value或q-value是统计学检验变量,代表差异显著性,一般p-value或q-value小于0.05代表具有显著性差异,但可根据具体情况适当调整。

因为p-value或q-value衡量地是某个基因假阳性的概率,如果p-value或q-value越低,那么挑选该基因出现假阳性的概率就越低,可验证性就越高。

两者具体的计算方法具体如下:那p-value、q-value同时存在时看哪个呢?

SAM法只有q-value。当两者同时存在时,可根据具体情况具体分析。

差异筛选是一个典型的多重假设检验过程,对于多重假设检验,单次检验中差异显著基因的假阳性率(p-value较小)可能会较大,而q-value和FDR值较常见的BH校正方法得到的FDR值而言,改进了其对假阳性估计的保守性。

即q-value相比于p-value更加严格,当差异基因结果较少时,可以退而求其次看p-value。Fold ChangeFold Change表示实验组比上对照组的差异表达倍数,一般表达相差2倍以上是有意义的,放宽要求1.5倍或者1.2倍也可以接受。

看表达倍数的同时还需结合基因表达丰度,信号值太低的基因会在后续的验证实验中检测不到。3差异基因图表解读在差异结果的图形展示结果中,主要是火山图和聚类图。火山图火山图只针对两分组且有生物学重复的情况。

如何看火山图呢?火山图可反映总体基因的表达情况,横坐标代表log2(Fold Change),纵坐标表示-log10(P值),每个点代表一个基因,颜色用以区分基因是否差异表达,图中橙色的点代表差异表达基因,蓝色的点代表没有差异表达的基因。聚类图聚类图可以衡量样本或基因之间表达的相似性。

如上图所示的聚类图中,横坐标代表样本聚类,一列代表一个样本,聚类基于样本间基因表达的相似性,样本间基因表达越接近,靠的越近,以此类推。

纵坐标代表基因聚类,一行代表一个基因,聚类基于基因在样本中表达的相似性,基因在样本中表达越接近,靠的越近,以此类推。

色阶代表基因表达丰度,越红代表上调得越明显,越绿代表下调得越明显。

如何做聚类图请戳往期推送做个聚类图只需1分钟

差异基因有了,如何挑选潜在基因进行实验验证呢?

关键还在于感兴趣点在哪了。粗略的看,可以先看KEGG或者GO功能分类,看差异基因具体富集在哪些通路或功能。

比如关注的是细胞内酸合成关键酶,可以重点看酸合成和碳流相关通路。具体如何看KEGG或者GO功能分类,请听下回分解。

1、创建数据集

hospital <- c("New York", "California")patients <- c(150,350)

costs <- c(3.1,2.5)

df <- data.frame(hospital, patients, costs)

2、创建新的变量

df$totcosts <- df$patients * df$costs

3、改变变量的名称

df$costs_euro <- df$costs

df$costs <- NULL

df$patients <- ifelse(df$patients==150,100,ifelse(df$patients==350,300,NA))

4、合并数据集

finaldt <- merge(dataset1, dataset2, by="id")

或者

finaldt <- cbind(dataset1, dataset2)

finaldt <- rbind(dataset1, dataset2)

5、子数据集

dt <- iris[,c("Sepal.Length" ,"Sepal.Width")]

dt <- iris[,c(-2,-3)]#去除第2、3列变量数据

dt2<- subset(dt,Age>40&Sex==men)#对数据集dt筛选满足条件的数据