如何在情节标题中写 H2o?
多亏了这个提示,我可以在标题中包含一个简单的化学式
plot(main=expression(H[2]*O),0)
这里的真正公式要复杂一些,我想将它们缩写并在需要的地方添加到文本中。但这失败了:
h2o <- expression(H[2]*O)
plot(main=paste(h2o, "in the air"),0) # paste fails here :(
这是一种方法,可让您将化学式包含在变量中。
# 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(parse(...)) 经常不是最理想的,回答一个由臭名昭著的 fortune(106) 引发的问题)R-help(2007 年 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 表达式中包含字符串。