【问题标题】:Printing a variable from within function从函数内打印变量
【发布时间】:2023-02-03 15:27:49
【问题描述】:

我在 R 中有以下函数。如何在此函数之外打印“llod”(从倒数第二行开始)的输出?

apply.llod <- function(vst.grp) {
  vst.grp.ercc <- vst.grp[grepl('ERCC', rownames(vst.grp)), ]
  dat <- data.frame(
    gene <- rep(rownames(vst.grp.ercc), times=ncol(vst.grp)), 
    expr <- as.vector(vst.grp.ercc), 
    conc <- concentration[rep(rownames(vst.grp.ercc), times=ncol(vst.grp))])
  lm <- lm(expr ~ conc, dat)
  seg <- segmented(lm, ~conc)
  lld <- seg$psi[2]
  llod <- predict(seg, data.frame(conc=lld))[[1]]
}

【问题讨论】:

  • 您是否尝试在函数中将 llod 添加为 } 之前的最后一行
  • @ZhiqiangWang 没看懂你。我想这本身就是最后一行。如果不是,你添加是什么意思?
  • llod &lt;- predict(seg, data.frame(conc = lld))[[1]] 之后添加另一行,只有 llod
  • 我试过。它只是执行功能。不打印任何东西。那么我怎样才能在这之外调用和打印'llod'呢?

标签: r function variables rna-seq


【解决方案1】:
apply.llod <- function(){
    lm <- lm(mpg ~ cyl,data = mtcars)
    llod <- predict(lm, mtcars)[[1]]
    llod
}

apply.llod()
> apply.llod()
[1] 20.62984

【讨论】:

  • 理想情况下,我猜以上应该有效。但是当我尝试时:&gt; apply.llod(vst.grp)apply.llod(vst.grp) 中的错误:找不到对象'vst.grp'&gt; vst.grp错误:找不到对象'vst.grp'&gt; vst类:DESeqTransform dim:57782 54元数据(1):版本化验(1):''rownames(57782):dpsf0001g000100.427.1 dpsf0001g000110.427.1 ... dpsf1044g463310.427.1 dpsf1044g463320.427.1 rowData名称(43):baseMean baseVar ...替换dispFit4)colnames(5 : AB5120002.isoforms.results AB5120003.isoforms.results ... AB5120055.isoforms.results AB5120056.isoforms.results colData 名称..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-11
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多