我有使用arg的myplot函数,它是情节标题的一部分。我希望arg是类字符或表达式。但是,当arg是类表达式时,我无法使它工作。例如:
myplot <- function(..., arg){
plot(..., main = bquote(paste("TPR(", .(arg), ")")))
}
# it works for characters
myplot(1, arg="t")
# but it won't work for expressions (I would like to have greek letters with a "hat" in the title)
myplot(1, arg=expression(hat(alpha[1])))
# however, using directly the expression works:
plot(1, main=bquote(paste("TPR(", hat(alpha[1]), ")")))
答案 0 :(得分:2)
这个怎么样
f <- function(lab, tpr=1) {
if(is.expression(lab)) {
lab <- lab[[1]]
}
plot(1,1,main=bquote(plain(TPR) * (.(lab)) == .(tpr)))
}
f("hatalpha")
f(expression(hat(alpha)))
“表达式”实际上是对象的向量。在这里,我们显式提取第一个元素(在本例中为“call”)并将其插入到图表标题的表达式中。我还重写了表达式,以避免paste()
这通常是不必要的。