当我尝试使用 expression
进行组合时出现错误与 do.call
和 plot
.
x <- 1:10
y <- x^1.5
我可以通过仅使用
plot
来获得我想要的情节功能:plot(y~x,xlab=expression(paste("Concentration (",mu,"M)")))
但是,我想使用
do.call
来实现我的情节。 .我有一个非常长的参数列表存储为列表,p
.但是,当我尝试将列表传递给 do.call
时我收到以下错误:p <- list(xlab=expression(paste("Concentration (",mu,"M)")))
do.call(plot,c(y~x,p))
Error in paste("Concentration (", mu, "M)") :
object 'mu' not found
我还尝试在传递给
do.call
的参数中明确定义公式.即。 do.call(plot,c(formula=y~x,p))
.我不明白为什么我会收到错误 - 特别是因为以下没有给出错误:do.call(plot,c(0,p))
(并在 xaxis 中给出所需的 mu 字符)。
最佳答案
do.call
在运行函数之前评估参数;尝试将表达式包装在 quote
中:
p <- list(xlab=quote(expression(paste("Concentration (",mu,"M)"))))
do.call("plot", c(y~x, p))
关于r - 如何结合 do.call() plot() 和 expression(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18280944/