考慮以下簡單示例: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 關注
- 1778 瀏覽
添加回答
舉報
0/150
提交
取消