1

プロットがあり、いくつかの回帰統計 (F、R2、p など) をプロット エリアに追加したいと考えています。私は に精通しtext()ていますが、数学記号、下付き文字、上付き文字などを使用してテキスト文字列を作成する方法の例を含む包括的な情報源を見つけることができませんでした。詳細な例を含むソースは大歓迎です。

たとえば、統計を抽出してプロットに追加したい単純な線形回帰があります。例えば

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値を除いて、すべての統計が小数点以下2桁に丸められるように、少し拡張しました.

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)))))
4

1 に答える 1

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

ここに画像の説明を入力

于 2012-08-09T08:34:23.983 に答える