我想使用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))