指数を含むラベルを取得しようとしています。これが私が持っているコードです
vall = format(cor(x,y)*cor(x,y),digits=3)
eq <- expression(paste(R^2," = ",vall,sep=""))
text(legend.x,legend.y,eq,cex=1,font=2)
しかし、テキストは単にこのように見えます
実際の値を表示するにはどうすればよいですか(「値」というテキストではありません)
bquote()
たとえば、次のようにしてみてください。
set.seed(1)
vall <- format(rnorm(1),digits=3)
eq <- bquote(bold(R^2 == .(vall)))
sq <- seq(0, 1, by = 0.1)
plot(sq, sq, type = "n")
text(0.5, 0.5, eq)
あなたの例がうまくいかない理由は、Rが評価することにならないからですvall
:
> eq2 <- expression(paste(R^2," = ",vall,sep=""))
> eq2
expression(paste(R^2, " = ", vall, sep = ""))
plotmathはこれから何かを作ろうとしますが、本質的にvall
は文字通りに解釈されます。
一般に、plotmath式では必要ありませんpaste()
。標準の演算子を使用し、レイアウト演算子を使用して式を作成できます。たとえば、例で作成された式(未評価vall
)と同等の式の場合、実際に必要なのは次のとおりです。
expression(R^2 == vall)
bquote()
式でオブジェクトをその値に置き換える1つの方法です。置換するオブジェクトをその値でラップします.( )
。次に、Rはオブジェクトを探し、その値を取得して式に挿入します。
substitute()
別のインターフェースを使用したこれに対する代替アプローチについても参照してください。