我正在尝试将用户提供的字符串和固定字符串粘贴在一起,用于绘图标题。
一个简单的案例当然有效:
userTitle <- "user title" # Example 1
fullTitle <- paste(userTitle, ": Results", sep = "")
plot(1:10, main = fullTitle)
但是如果用户的标题包含表达式呢?这是我尝试过的一些事情:
# This works, but doesn't include the fixed string # Example 2
userTitle <- expression(italic(Genus)~italic(species)) # EDIT: this was missing
fullTitle <- bquote(.(userTitle))
plot(1:10, main = fullTitle)
尝试添加固定字符串。有些事情不太奏效:
fullTitle <- bquote(.(userTitle)~':'~Results) # Example 3
plot(1:10, main = fullTitle) # title missing .(userTitle)
fullTitle <- bquote(paste("Results:", .(userTitle))) # Example 4
plot(1:10, main = fullTitle) # title missing .(userTitle)
但是这个例子,来自here的工作得很好[编辑:链接是错误的问题]。
x<- 232323
plot(1:10, main = bquote(paste(ARL[1], " curve for ", S^2, "; x=",.(x))))
我的示例4看起来几乎就是最后一个,但行为不一样。 bquote
,expression
,substitute
有很多组合,我看了很多答案,但我可能会遗漏一些非常小的东西。如果用户字符串在这种情况下包含表达式,有关如何获取用户字符串和固定字符串的任何建议吗?感谢。
答案 0 :(得分:3)
我可以用公式做到:
userTitle <- italic(Genus)~italic(species)
plot(1, 1., main=substitute( userTitle*": Results" ,
list(userTitle=userTitle) ) )
现在有一个表达式:
userTitle <- expression( italic(Genus)~italic(species) )
plot( 1, 1, main= bquote(.(eval(userTitle))*":"~Results) )