gpt4 book ai didi

r - 如何正确评估 R 代字号表达式中的变量

转载 作者:行者123 更新时间:2023-12-04 11:06:50 26 4
gpt4 key购买 nike

我有一个函数 (col_grob) 调用另一个函数 (pal_bar),波浪符号表达式如下:

## plots a colour bar with specified colour intervals
pal_bar <- function(cols) {
cols <- colorRampPalette(cols)(200)
par(mar = c(0, 0, 0, 0))
plot(1:200, rep(1, 200), col = cols, pch = 15, cex = 1.1, bty = 'n', xaxt = 'n', xlab = '', yaxt = 'n', ylab = '', main="")
}

## calls pal_bar function to plot the bar as a grob, tilde expression
col_grob <- function(pal) {
g <- ggplotify::as.grob(~pal_bar(pal))
grid::grid.draw(g)
}

我在运行时收到错误消息“未找到对象‘pal’”:

col_grob(pal = c("red", "blue"))

我遇到了 resources和类似的 questions但由于对评估规则缺乏了解,我无法解决问题。我尝试了 ~pal_bar(I(pal))bquote() 函数,可能还有 structure(list(), *) 但没有对每一个都有足够的了解以正确格式化语法。

如何让 col_grob(pal = c("red", "blue")) 为我绘制所需的颜色条? enter image description here

最佳答案

可能的解决方案:

col_grob <- function(pal) {
txt <- substitute(pal_bar(pal))
g <- ggplotify::as.grob(as.expression(txt))
grid::grid.draw(g)
}

col_grob(pal = c("red", "blue"))

关于r - 如何正确评估 R 代字号表达式中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56137646/

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