r语言中 for 循环可以嵌套 else语句么

Python040

r语言中 for 循环可以嵌套 else语句么,第1张

在C语言中,if...else分支语句与for循环语句和其他循环及分支都是可以嵌套使用的,也就是说在if语句后面和else语句后面都是可以使用for循环语句的,例如:

给定一个整数n,判断这个整数n是不是小于2,如果小于2则提示给定数值不在有效范围内,否则计算从1到n的累加和。

int sum=0

if(n<2){

printf("给定数值不在有效范围内")

}else{

for(int i=1i<=ni++){sum = sum +i}

printf("%d",sum)

}

​如何在差异基因Venn图中同时标识上下调基因数量信息

韦恩(Venn)图是常见统计图之一,用于展示各样本(或分组)之间共有(或特有)元素的数量(或比例)。例如做RNA-seq的最直接目的,大多是鉴定差异表达的基因。当试验涉及到多分组情况时,常需要展示多组间共享的差异基因数量,这个时候就要使用到Venn图。例如文献 “Transcriptomic analyses of rice (Oryza sativa) genes and non-coding RNAs under nitrogen starvation using multiple omics technologies” 中,植物组织中响应7天氮缺乏(-N_7d)、7天磷酸盐缺乏(-Pi_7d)和盐胁迫(d)、冷胁迫(e)或干旱胁迫(f)的差异表达lncRNA的Venn图。

不过这种Venn图太过单调,虽然展示了差异基因的数量,却没有区分基因是上调的还是下调的。另一种思路是,分别把上调或下调的基因拿出来,然后分别作图展示上调基因间的交集或者下调基因间的交集,但缺点是如果分组较多的话会很占篇幅,并且如果一个基因在一组中上调而在另一组中下调时则无法绘制出。

为了有效解决这些问题,今天我们来看一种特殊风格的Venn图,能够同时展示基因交集以及上下调数量的二维信息。风格如下, 在Venn图中原数字位置添加了表示上下调基因数量的饼图 。外圈表示不同的分组,饼图则表示了交集/或特有区域中,所包含的上调(红色)和下调(绿色)基因数量。此外,如果交集处某基因在不同组中的上下调趋势不一致,则在灰色区域显示数量。

本节我们来学习如何在R语言中绘制这种特殊的Venn图。

示例数据“treat1_control.txt”、“treat2_control.txt”和“treat3_control.txt”分别为3种不同试验处理下的样品,与对照组相比后识别的显著差异表达基因。表中genes列为差异基因的名称,logFC列中将所有上调基因标识为1,所有下调基因标识为-1。

接下来绘制Venn图展示3组基因的交集概况,并同时将基因的上下调数量信息也表示出来。

使用R包GOplot,即可通过给定的数据绘制这种特殊的Venn图,同时展示基因交集以及上下调数量的二维信息。

这样这种Venn图组合饼图的样式就得到了。

右图Venn图的外圈表示数据中,3组处理组间相同/或特有的差异表达基因数量概况,具体的数值在饼图中展示,红色代表共有的上调基因,绿色代表共有的下调基因,灰色表示交集中在不同组中的上下调趋势不一致的基因。

对于各组交集具体涉及了哪些基因,它们的名称、上下调状态如何,将直接在面板中显示出来,如左图所示列表信息。

总之过程非常方便,很简单的一条命令,您get到了吗?

1.变量变换as.array(x),as.data.frame(x),as.numeric(x),as.logical(x),as.complex(x),as.character(x),...转换变量类型;使用如下命令可得到全部列表,methods(as)factor():将一个向量转化为一个因子2.变量信息is.na(x),is.null(x),is.array(x),is.data.frame(x),is.numeric(x),is.complex(x),is.character (x),...检验变量的类型;使用如下命令得到全部列表,methods(is)length(x):x中元素的个数dim(x):查看变量的维数;重新设置的维数,例如dim(x)=c(3,2)dimnames(x):重新设置对象的名称nrow(x):行的个数ncol(x):列的个数class(x):得到或设置x的类;class(x)<-c(3,2)unclass(x):删除x的类attr(x,which):得到或设置x的属性whichattributes(obj):得到或设置obj的属性列表fix,edit:对数据框数据进行表格形式的编辑3.数据选取和操作which.max(x):返回x中最大元素的指标which.min(x):返回x中最小元素的指标rev(x):翻转x中所有的元素sort(x):升序排列x中的元素;降序排列使用:rev(sort(x))cut(x,breaks):将x分割成为几段(或因子);breaks为段数或分割点向量match(x,y):返回一个和x长度相同且和y中元素相等的向量不等则返回NAwhich(x==a):如果比较操作为真(TRUE),返回向量x的指针choose(n,k):组合数的计算na.omit(x):去除缺失值(NA)(去除相关行如果x为矩阵或数据框)na.fail(x):返回错误信息,如果x包含至少一个NAunique(x):如果x为向量或数据框,返回唯一值