2010-12-12 5 views
24

回帰(すなわちR2)の結果をグラフに配置しようとしていますが、式内から変数を呼び出す方法を見つけることができません。変数名)。プロットマス式内で変数を使用する

ここに私のコードです。

R2Val <- signif(summary(sMod_pre90)$r.squared[1], 2) 
text(92, 4, expression(paste(R^2, " = ", R2Val)), adj = 0, cex = 0.85) 

答えて

26

bquote()を使用してください。 .()に包まれた表現の部分は環境で評価を取得

set.seed(1) 
DF <- data.frame(A = rnorm(100), B = rnorm(100)) 
mod <- lm(B ~ A, data = DF) 
R2Val<-signif(summary(mod)$r.squared[1], 2) 

R2Valの値が置換されている、即ち:ここでダミーデータを有する例です。

plot(B ~ A, data = DF) 
text(1.5, 2, labels = bquote(R^2 == .(R2Val)), adj = 0, cex = 0.85) 

別の潜在的な解決策は、同様に動作している、substituteです:

plot(B ~ A, data = DF) 
text(1.5, 2, labels = substitute(R^2 == A, list(A = R2Val)), adj = 0, cex = 0.85) 
0

私は代用機能を使用してまとめました。

R2Val<-signif(summary(sMod_pre90)$r.squared[1],2) text(92,4,substitute(R^2~"="~R2Val),adj=0,cex=0.85)

すべてが良いです。

+0

動作しないこと。代入する変数を代入する引数がありません。私の答えを見てください。 –

+0

私は上記の解決策でグラフのテキストを貼り付けることができました。プロットの数学を評価する際に、変数呼び出しを代用するように見えます。なぜそれがあなたのために働かなかったのか分かりません。 – sinclairjesse

+0

さて、私は2台のマシンでR2.11パッチとR2.12パッチをLinux上で確認しましたが、あなたの答えはどちらでも動作しません。 「R2Val」は、プロット上で解釈されるのではなく、文字通りに印刷される。私は '?substitute'は' env'引数のために何かを提供しない限り、この例では代入が行われないことは明らかです。 –

関連する問題