12

指数を含むラベルを取得しようとしています。これが私が持っているコードです

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)

しかし、テキストは単にこのように見えます ここに画像の説明を入力してください

実際の値を表示するにはどうすればよいですか(「値」というテキストではありません)

4

1 に答える 1

21

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()別のインターフェースを使用したこれに対する代替アプローチについても参照してください。

于 2012-12-28T18:54:33.063 に答える