gpt4 book ai didi

r - 当参数是语言对象时,通过 do.call 添加 ggtitle

转载 作者:行者123 更新时间:2023-12-04 02:07:17 24 4
gpt4 key购买 nike

考虑一个简单的函数,它将 ggtitle 添加到 grob

f <- function(PLOT, TITLE) {
PLOT + ggtitle(TITLE)
}

直接调用该函数按预期工作。
但是,通过 do.call(f, ..) 调用该函数当 TITLE 时抛出错误是 language目的
## Sample Data
TIT <- bquote(atop("This is some text", atop(italic("Here is some more text"))))
P <- qplot(x=1:10, y=1:10, geom="point")

## WORKS FINE
f(P, TIT)

## FAILS
do.call(f, list(P, TIT))
## Error in labs(title = label) : could not find function "atop"

这当然只发生在 TIT 时是一个语言对象
TIT.char <- "This is some text\nHere is some more text"
do.call(f, list(P, TIT.char))
## No Error

怎么可以 do.call()当参数是语言对象时正确使用?

最佳答案


do.call(f, list(P, TIT), quote=TRUE)

反而。问题是当您运行 do.call 时正在评估您的表达式。通过设置 quote=TRUE当将它们传递给 f 时,它会引用参数使它们不被评估。 .您也可以明确引用 TIT
do.call(f, list(P, quote(TIT)))

关于r - 当参数是语言对象时,通过 do.call 添加 ggtitle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30107702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com