我如何在情节的标题中写下H2o?
感谢hint我可以在标题中包含一个简单的化学公式
plot(main=expression(H[2]*O),0)
这里的真实公式有点复杂,我想缩写它们并在需要时将它们添加到文本中。 但这失败了:
h2o <- expression(H[2]*O)
plot(main=paste(h2o, "in the air"),0) # paste fails here :(
答案 0 :(得分:2)
这是一种让你在变量中得到化学式的方法。
# note that .formula is either an expression or a character
# string that would define a valid expression
maketitle <- function(.formula, .other){
.expression <- sprintf('%s ~ "%s"',as.character(.formula), .other)
evalq(parse(text = .expression))
}
f <- expression(H[2]*O)
o <- 'blah blah'
plot(1:10, main = maketitle(f, o))
记住eval(parse(text = ...))
,
我个人从不后悔不要低估自己 未来的愚蠢。 - Greg Snow(解释为什么eval(解析(...)) 通常不是最理想的,回答臭名昭着的问题 幸运(106)) R-help(2007年1月)
答案 1 :(得分:1)
你想要
plot(1:10, main = expression(H[2] * O ~ "in the air"))
或者
plot(1:10, main = expression(H[2] * O ~ "in" ~ the ~ air))
(in
需要引用,因为它是解析器首先捕获的R语法的一部分,如for(i in 1:10)
中所示。)
重要的一点是x ~ y
符号将x
和y
放在彼此旁边并且分开。 执行阅读?plotmath
!
但重要的是,无论你在这里提供什么,都需要是expression()
返回的表达式。通常,在表达式中不需要paste()
,因为您可以在plotmath的表达式中包含字符串。