将字符串转换为管道的R中函数的内容



我使用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,以便函数读取它。或者是否有更好的方法。如果有任何帮助,我将不胜感激。

谢谢。

我不认为有一种方法可以编写您想要的unstring函数,但您可以这样做:

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

然后

makeContrastsFromString(aarts_2)

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

最新更新