考虑以下简单示例:labNames <- c('xLab','yLabl')plot(c(1:10),xlab=expression(paste(labName[1], x^2)),ylab=expression(paste(labName[2], y^2)))我想要的是使变量'labName,'xLab'或'yLab'定义的字符输入出现在expression()定义的X ^ 2或y ^ 2旁边。照原样,带有下标的实际文本'labName'被连接到上标表达式。有什么想法吗?
3 回答
函数式编程
TA贡献1807条经验 获得超9个赞
bquote()函数@Aaron的替代解决方案。我们需要提供一个有效的R表达式,在这种情况下LABEL ~ x^2,例如,LABEL您要从vector分配的字符串在哪里labNames。bquote计算包装在表达式中的R代码,.( )并将结果代入表达式中。
这是一个例子:
labNames <- c('xLab','yLab')
xlab <- bquote(.(labNames[1]) ~ x^2)
ylab <- bquote(.(labNames[2]) ~ y^2)
plot(c(1:10), xlab = xlab, ylab = ylab)
(请注意,~只是增加了一些间距,如果您不希望使用空格,请将其替换为,*并且表达式的两个部分将并列。)
萧十郎
TA贡献1815条经验 获得超13个赞
使用substitute代替。
labNames <- c('xLab','yLab')
plot(c(1:10),
xlab=substitute(paste(nn, x^2), list(nn=labNames[1])),
ylab=substitute(paste(nn, y^2), list(nn=labNames[2])))
- 3 回答
- 0 关注
- 1704 浏览
添加回答
举报
0/150
提交
取消