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 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率