R语言 | 多组样本的N种组合-embed函数-embed函数用法大
【摘要】embed函数 R语言 多组样本的N种组合对于单个基因在多个样本组中的差异表达,通常使用方差分析,即,将多个组比较在一起以获得P值。如果p
embed函数 R语言 多组样本的N种组合
对于单个基因在多个样本组中的差异表达,通常使用方差分析,即,将多个组比较在一起以获得P值。如果p值显著,说明多组基因表达有显著差异。然而,我们不能知道两组之间或两组之间的基因表达是否有显着性差异,因此我们需要细化分组,此时,我们需要使用排列和组合!
在R语言中,可以使用 combn() 函数从一个向量中获得所有可能的元素组合:
(All combinations of X elements of M are generated at one time).
例如,我们现在有4种Stage分期,现在要得到所有可能的两两组合,以进行差异表达分析:
labels = c(“I“, “II“, “III“, “IV“)
res = t(combn(labels, 2))
res
[,1] [,2]
[1,] “I“ “II“
[2,] “I“ “III“
[3,] “I“ “IV“
[4,] “II“ “III“
[5,] “II“ “IV“
[6,] “III“ “IV“
可见,两两一组共有6种可能,需要在每种可能的组合内进行两组间差异表分析!如果此时你已经写好了一个名为 limma_dea() 的差异表达分析函数,则可以很方便的在 combn 内部调用该函数:
combn(labels, 2, FUN = limma_dea)
如果只想取某位与其相邻下一位的组合:
p_load(gtools)
index = combinations(length(labels), 2) # 返回的是下标
res[index[,2] == index[,1]+1,] # 基于满足条件的下标取原数据子集
[,1] [,2]
[1,] “I“ “II“
[2,] “II“ “III“
[3,] “III“ “IV“
不过,有更加简单的实现方式, embed 函数:
Results each row of the matrix consists of sequences x [t] and x [t-1]...,
X [t-dimension + 1],
where t is the original index
of X.
comps = embed(labels,2)[,2:1]
但是,由于 embed 没有调用函数的接口,所以可以使用 lapply 函数:
my_comparisons = lapply(1:nrow(comps), function(x) comps[x,])
lapply(my_comparisons, limma_dea)
# 或者
lapply(split(comps, 1:nrow(comps)), limma_dea)
就业培训申请领取
环球青藤
官方QQ群扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群
刷题看课 APP下载
免费直播 一键购课
代报名等人工服务