我正在尝试创建一个y轴标签,该标签是通过将两个长度相同的矢量粘贴在一起而生成的。问题是第一个元素需要用斜体表示。这是一个例子......
n <- 1:5
t <- LETTERS[1:5]
together <- paste(t, n)
plot(x=1:5, y=1:5, yaxt="n")
axis(2, at=1:5, label=together, las=2)
所以,我希望t
元素用斜体字表示。我环顾了表情,bquote和替补,并没有取得多大进展。任何人都有提示帮助我吗?
答案 0 :(得分:3)
这有点棘手,因为表达式函数需要一个表达式列表。因此,您需要将paste返回的字符串转换为未评估的表达式列表。一种方式是这样的
together <- do.call(expression, as.list(parse(text = paste0("italic(", t, ")~", n))))
答案 1 :(得分:1)
您可以使用bquote
together <- as.expression(sapply(seq_along(t), function(i)
bquote(italic(.(t[i]))*.(n[i]))))
或使用for
循环
v1 <- c()
for(i in seq_along(t)){
v1 <- c(v1, bquote(italic(.(t[i]))*.(n[i])))
}
together <- as.expression(v1)