2013-03-21 122 views
7

嗨,我是R新手,所以如果這是一個非常基本的問題,我很抱歉。 我試圖將文字添加到x軸上的點11和y軸上的點900上的圖形中,該圖將以0作爲下標來讀取t0= -4.0280。凡t0 <- -4.0280 要做到這一點,我已經試過:如何在劇本點標籤的文本中包含下標

text(11,900,paste("t[0]=",t0),cex=0.8) 
# which gives 
't[0]= -4.0280' 

text(11,900,expression(paste("t[0]=",t0)),cex=0.8) 
# which gives 
't[0]=t0' 

# the closest I've gotten is:  
text(11,900,expression(paste(t[0]==t0)),cex=0.8) 

將使用下標,但是回到t0,而不是我的-4.0280價值。

任何人都可以告訴我我哪裏出錯了嗎?

乾杯。

回答

5

您可以用substitute替換expression。沒有必要爲paste。該參數list(t0 = t0)告訴substitute與對象t0的值來替換字符串t0

plot(1,1) 

t0 <- 1.3 

text(1, 0.8, substitute(t[0]==t0, list(t0 = t0)), cex = 0.8) 

enter image description here

3

略多於substitute短是bquote

plot(1,1) 
t0 <- -4.0280 
text(1, 0.8, bquote("t"[0] ~ "=" ~ .(t0))) 

的,如果你想喜歡在那裏使用paste

text(1, 0.8, (bquote("t"[0]~.(paste0('=',t0))))) 

這種Q的彈起之前:

Using subscript and variable values at the same time in Axis titles in R

Concatenate strings and expressions in a plot's title

+1

謝謝你們,這兩個答案的工作很大。要明確,如果這不是正確的用途,我應該何時使用'粘貼'? – JJS 2013-03-21 23:45:58

+0

這裏是'paste'的一些用法的例子http://stackoverflow.com/a/15506875/1036500 – Ben 2013-03-22 00:50:46

+0

我已經編輯了我的答案,以顯示如何在這裏使用'paste',但這不是最有效的辦法。我通常使用'paste'來創建字符向量,而不是像你的例子那樣包含變量的對象。也就是說,我有時會做一些類似'eval(parse(text = paste0(「examp」,i))'的地方評估粘貼結果,但這被認爲是不好的做法 - 'library(fortune); fortune(106)'' – Ben 2013-03-22 01:17:41

相關問題