【问题标题】:Turn string into the contents of a function in R for pipeline将字符串转换为 R 中用于管道的函数的内容
【发布时间】:2020-04-06 16:40:07
【问题描述】:

我正在使用 makeContrasts 函数作为管道的一部分(使用 limma)。 我有几项研究,一个接一个地进入管道。其中两个,makeContrasts 函数如下所示:

aarts_1_cm = makeContrasts(R10d = labelR - labelP,
                           R1nMRap = labelR1 - labelP,
                           R10nMRap_OSKM = labelR10 - labelO,
                           levels = Design)

aarts_2_cm = makeContrasts(OSKM14 = labelO14 - labelP14,
                           OSKM14mTORsh_OSKM14p21sh = labelOT14 - labelOp14,
                           OSKM20mTORsh_OSKM20p21sh = labelOT20 - labelOp20,
                           levels = Design)

由于每项研究的对比不同,我无法将它们合并到管道中。因此我把函数的内容变成了一个字符串:

aarts_2 = "OSKM14 = labelO14 - labelP14,
                           OSKM14mTORsh_OSKM14p21sh = labelOT14 - labelOp14,
                           OSKM20mTORsh_OSKM20p21sh = labelOT20 - labelOp20,
                           levels = Design"

这样我就可以执行makeContrasts(unstring(aarts_2)),但我不知道如何解开aarts_2 的字符串以便函数读取它。或者,如果有更好的方法来做到这一点。我将不胜感激。

谢谢。

【问题讨论】:

    标签: r pipeline limma


    【解决方案1】:

    我认为没有办法编写您想要的 unstring 函数,但您可以这样做:

    makeContrastsFromString <- function(s)
      eval(parse(text = paste("makeContrasts(", s, ")")))
    

    然后

    makeContrastsFromString(aarts_2)
    

    应该给你想要的。我还没有测试过,因为我无法安装limma 来获取makeContrasts。我的功能很脆弱;如果用户将这些行分解为字符串向量的单独元素,它将不起作用。我会把它留给你,让它对这种事情变得更强大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多