2

我将该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以便函数读取它。或者,如果有更好的方法来做到这一点。我将不胜感激。

谢谢。

4

1 回答 1

2

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

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

然后

makeContrastsFromString(aarts_2)

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

于 2020-04-06T17:56:07.897 回答