r - 如何结合 do.call() plot() 和 expression()

标签 r plot expression do.call

当我尝试使用 expression 进行组合时出现错误与 do.callplot .

 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/

相关文章:

r - 日期范围为 R 中的 1 或 0 系列

使用没有包的 testthat 运行单元测试

python - 使用 Matplotlib 绘制二维数组

visual-studio-2010 - Tablix 列格式化值

sql - 等式查询

r - R ggplot geom_tile没有填充颜色

r - 在 R 中计算多个数据帧的 z 分数

r - ggplot2 3D 条形图

r - 更改 R 中向日葵图中的刻度标签

c# - 表达式的正确评估