3

私は、Rのテキストベースグラフィックスでマークアップのような特別なTexを使用してexpression()プロットbquote()するときに慣れています。しかし、パーサーにエラーをスローさせずに「ほぼ等しい」を実行する方法。?plotmathマークアップを決定するときに参照しています。

plot(c(1,100), c(1,100), type="n", axes=FALSE, xlab="", ylab="")

# This works
text(50, 80, expression(paste("The area is 24 ", km^2)))

# This doesn't
text(50, 50, expression(paste("Reginald is ", %~~% , "14 years old")))
4

1 に答える 1

11

これでうまくいくはずです:

plot(c(1,100), c(1,100), type="n", axes=FALSE, xlab="", ylab="")
text(50, 50, 
     expression(paste("Reginald is ", phantom() %~~% phantom(), "14 years old")))

あなたのバージョンが機能しなかった理由は、%~~%「演算子」がその左と右の両方に何かを持つ式の一部であると期待しているためです。phantom()(a)見えず、(b)幅をとらないものを提供します---まさに必要なものです。

編集

私は毎日何かを学びます。Brian Diggsは、コメントの中で、式のコンマを省略するだけで同じ効果を生み出すことができると指摘しています(この場合、へのネストされた呼び出しも必要ありませんpaste())。これはより良い解決策です:

text(50, 50, expression("Reginald is " %~~% "14 years old"))
于 2012-03-09T21:30:15.647 に答える