r语言 - 获取 aes() 调用中字符串变量的不带引号的值



我想使用aes()生成一个悬停ggplotly()文本

,如下所示
mapping <- aes(text = paste0(
"Value: ",
columnName
))

其中columnName是包含列名作为字符串的变量。现在,我不希望columnName本身被识别为列名。如果columnName == "col1"我想要的结果是

aes(text = paste0(
"Value: ",
col1
))

它计算到美学映射`text` -> `paste0("Value: ", col1)`

我试过使用aes_string(),但是

columnName <- "col1"
aes_string(text = paste0(
"Value: ",
columnName
))

只是评估美学映射`x` -> `Value:col1`.

我该如何完成这项工作?

显然 OP 想要创建一个表达式对象,以便稍后对其进行计算。这可以使用bquote(或substitute或 tidyverse 中的某些函数来实现,其中可能涉及感叹号(:

columnName <- "col1"
columnName <- as.name(columnName) #first turn the character string into a quoted name
mapping <- bquote(aes(text = paste0(
"Value: ",
.(columnName) #this substitutes the name into the expression
))
)
#aes(text = paste0("Value: ", col1))

相关内容

  • 没有找到相关文章

最新更新