2012-08-09 52 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

相关问题