主标题中带有“bquote”的正则表达式?
regular expression in main title with `bquote`?
我有使用 arg 的 myplot 函数,它是绘图标题的一部分。我希望 arg 是 class 字符或表达式。但是,当 arg 是 class 表达式时,我无法让它工作。示例:
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]), ")")))
这个怎么样
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)))
一个"expression"实际上是objects的向量。在这里,我们显式提取第一个元素(在本例中为 "call")并将其插入到绘图标题的表达式中。我还 re-written 避免 paste()
的表达,这通常是不必要的。
我有使用 arg 的 myplot 函数,它是绘图标题的一部分。我希望 arg 是 class 字符或表达式。但是,当 arg 是 class 表达式时,我无法让它工作。示例:
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]), ")")))
这个怎么样
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)))
一个"expression"实际上是objects的向量。在这里,我们显式提取第一个元素(在本例中为 "call")并将其插入到绘图标题的表达式中。我还 re-written 避免 paste()
的表达,这通常是不必要的。