weixin_46036615 2019-12-17 00:32 采纳率: 50%
浏览 929
已采纳

R语言中for循环与图片变量的问题

我是一个R语言初学者,在使用For循环画图遇到一个问题,首先我有两个基因名,利用For语言画图得到p1,p2;最后我想要使用CombinePlots将得到的所有的p1,p2....组合起来,

我希望能够根据我输入基因的数量n,在plots = list()里自动生成p1,p2,p3...到pn,不需要手动去输入p1,p2,p3...到pn,但是一直找不到方法实现,我不知道我阐述的够不够清楚

a = 0
for (i in c("Gene1","Gene2")){
    a = a+1
    assign(paste("p",a,sep=""),VlnPlot(pro, features = i, pt.size=0,use.raw = TRUE, y.log = TRUE)+labs(x = "", y = i, title = ""))
  }

pic <- CombinePlots(plots = list(p1,p2),ncol=ncols,legend = "none")

下面这个命令纯粹只是一个画图的命令,得到p1这张图与第一个基因Gene1对应

assign(paste("p",a,sep=""),VlnPlot(pro, features = i, pt.size=0,use.raw = TRUE, y.log = TRUE)+labs(x = "", y = i, title = ""))
  • 写回答

3条回答 默认 最新

  • 小黑马97ai 2020-01-02 23:27
    关注

    你是想把plots=list(p1,p2...),这步让程序自己写是不,可以这么写。
    plots=list()
    for (i in 1:4) {
    if(i==1)a<-"p1"
    else a<-paste("plots=rbind(",a,",p",i,")",sep="")
    eval(parse(text =a))
    }
    plots

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 提问应符合社区要求 12月5日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog