R 使用ggplot2粘贴和解析函数组合的替代方法

R 使用ggplot2粘贴和解析函数组合的替代方法,r,ggplot2,expression,R,Ggplot2,Expression,我试图构造一个通用函数来生成一些图形。所以我必须创建一个轴标签,它结合了一个表达式和一个字符串。我试过: i <- 2 measure <- c(expression((kg/m^2)), "(%)") variable <- c("BMI", "Cintilografia 1h") data <- data.frame(x = 0, y = 0) gp <- ggplot(data, aes(x = x, y = y)) + geom_point() +

我试图构造一个通用函数来生成一些图形。所以我必须创建一个轴标签,它结合了一个表达式和一个字符串。我试过:

i <- 2
measure <- c(expression((kg/m^2)), "(%)")
variable <- c("BMI", "Cintilografia 1h")
data <- data.frame(x = 0, y = 0)
gp <- ggplot(data, aes(x = x, y = y)) +
  geom_point() +
  labs(y = parse(text = paste(variable[i], measure[i])))

i在使用
?plotmath
标记的标签时,尝试粘贴和解析不是一个好主意。最好使用表达式。
bquote()
函数使将值弹出到表达式中变得更容易。这应该对你有用

i<-1
g1<-ggplot(data, aes(x = x, y = y)) +
  geom_point() +
  labs(y = bquote(.(variable[i])~.(measure[[i]])))
i<-2
g2<-ggplot(data, aes(x = x, y = y)) +
  geom_point() +
  labs(y = bquote(.(variable[i])~.(measure[[i]])))

gridExtra::grid.arrange(g1,g2, ncol=2)
i