2012-08-09 106 views
1

我有一個圖,並且想要在繪圖區中添加一些迴歸統計(例如F,R2,p)。我熟悉text(),但一直無法找到全面的信息來源,並提供了有關如何使用數學符號,子標記和上標等構建文本字符串的示例。任何有詳細示例的資源都將非常感謝。如何爲R中的圖創建符號文本字符串

例如,我有一個簡單的線性迴歸,我想從中提取統計數據並將它們添加到我的圖中。例如

reg1 <- lm(WW1 ~ PC1, data = WW_Data) 

我想有像F1,69 = 14.38, p = < 0.001, R2adj = 0.16其中,「1.69」和「ADJ」是下標,和「p」是斜體

編輯

感謝@Backlin爲一個偉大的回答我的問題。我已經擴大了一點,所以如果你得到一個非常顯着的p值,代碼將替代「< 0.001」,並將所有的統計數字四捨五入到小數點後兩位,除了我舍入到3的p值。

WW_Data <- data.frame(WW1=rnorm(10), PC1=1:10) 
reg1 <- lm(WW1~PC1, WW_Data) 
sreg1 <- summary(reg1) 
plot(0, 0) 
text(0, .2, eval(substitute(
    expression(list(F[list(fn,fd)]==fv,italic(p)==pv,R[adj]^2==R2adj)), 
     list(fv = round(sreg1$fstatistic[1],2), fn = sreg1$fstatistic[2], 
      fd = sreg1$fstatistic[3], pv = ifelse(sreg1$coefficients["PC1",4] < 0.001, "< 0.001",round(sreg1$coefficients["PC1",4],3)), 
      R2adj = round(sreg1$adj.r.squared,2))))) 
+3

見'?plotmath' – Andrie 2012-08-09 07:58:04

+0

謝謝。 ''plotmath'是單個符號和超級和下標之類的東西的一個很好的來源,但它沒有幫助我建立一個更長的表達式,就像我上面所描述的那樣。例如,如何獲得帶有「1,69」下標的F1,69'。我可以很容易地得到「1」,但我無法弄清楚如何在下標中得到「,69」。您可以使用更全面的示例推薦任何其他頁面,包括如何獲取「逗號」等符號? – 2012-08-09 08:15:25

+0

另請參閱'?expression'和'?text'中的示例。我不會發布答案,因爲我沒有真正的專業知識。毫無疑問,別人會。 – Andrie 2012-08-09 08:17:17

回答

3

我自己也一直在努力,但它實際上都在?plotmath。你的表達將如下,

# Fixed expression 
text(x, y, expression(list(F[list(1,69)]==14.38,italic(p)<0.001,R[adj]^2==0.16))) 

# Using the values of your lm 
sreg1 <- summary(reg1) 
text(x, y, eval(substitute(
    expression(list(F[list(fn,fd)]==fv,italic(p)==pv,R[adj]^2==R2adj)), 
     list(fv = sreg1$fstatistic[1], fn = sreg1$fstatistic[2], 
      fd = sreg1$fstatistic[3], pv = sreg1$coefficients["PC1",4], 
      R2adj = sreg1$adj.r.squared)))) 

這是一個虛擬的例子,它看起來像。

WW_Data <- data.frame(WW1=rnorm(10), PC1=1:10) 
reg1 <- lm(WW1~PC1, WW_Data) 
sreg1 <- summary(reg1) 
plot(0, 0) 
text(0, .2, eval(...)) # The expression above 

enter image description here

+0

謝謝。有時這些例子有點抽象,因爲你必須將它們粘貼到'R'中才能從中學習。 – 2012-08-09 08:41:14

+0

我沒有意識到你可以將'summary'的結果發送給一個對象,然後提取結果。這非常有用! – 2012-08-09 08:43:17

+0

是的,我同意,有時你沒有把握,因爲你忽視了一些細節。這就是當SO派上用場的時候。 – Backlin 2012-08-09 08:44:38

相關問題