R -- combn函数 -- 向量元素的组合

biref

我有一个包含多个基因名称的向量,我需要可视化这些基因表达量的相关性,比如散点图
我可以手动的制作两两基因之间的散点图,或者使用循环。
但是我目前的想法是首先制造一个两两组合的基因名称列表,这样方便提取对应的表达量和作图标记,以及避免重复

# 制造两两组合的基因名称列表
myvar <- c("CDCP1","ERBB2","ERBB3","EGFR","MET","VEGFA","VEGFB","TACSTD2","SLC39A6")
combos <- combn(myvar,2) # 利用combn 函数

combos <- lapply(seq_along(combos[1,]), function(i){combos[,i]} )
combos  #此时是一个列表,每一个元素还是一个列表,包含组合的基因名称

在这里插入图片描述

dlist <- c()
j <- 1
for(i in combos){
  p <- ggplot(df, aes(x=df[,i[1]], y=df[,i[2]])) +
    xlab(i[1])+
    ylab(i[2])+
    geom_point()+
    geom_smooth(method="lm",formula = y ~ x)+
    theme_bw()+
    stat_cor(method = 'pearson',aes(x=df[,i[1]], y=df[,i[2]]))
  dlist[[j]] <- p
  j <- j+1
}
plot_grid(plotlist = dlist,ncol = 4)
# 更优的写法
plist <- lapply(combos, function(i) {
  ggplot(df, aes(x = df[,i[1]], y = df[,i[2])) +
    geom_point() +
    geom_smooth(method = "lm", formula = y ~ x) +
    stat_cor(method = 'pearson') +
    labs(x = i[1], y = i[2]) +
    theme_bw()
})

n <- length(plist)
for (i in seq(1, n, 4)) {
  pgrid <- plot_grid(plotlist = plist[i:min(i+3, n)], ncol = 4)
  print(pgrid)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值