2

1 つの長い式を使用した場合に結果を取得する方法を知っています。

expression(paste(M[O[2]], " (mg ", O[2], " ", h^-1, " ", kg^-1, ")"))

しかし、ユーザーが (柔軟性を追加するために) 時間と質量の単位を選択してから、完全な式をまとめることができるように、これをチャンクに分割しようとしました。上記の時間と質量の単位を 3 つのチャンクに再利用し、それを再び結合しようとするとします。

a = expression(paste(M[O[2]], " (mg ", O[2]))  
b = expression(kg^-1)  
c = expression(h^-1)  

私が試してみました

text(x, y, expression(a b c))  
text(x, y, paste(a, b, c))  
text(x, y, expression(paste(a, b, c)))  

ただし、これにより、上記で作成した式ではなく、文字 a、b、および c が残ります。私は bquote で遊んでみましたが、それをマスターしていないことを認め、3 つのプロット数式を連結することもできませんでした。

なにか提案を?

ありがとう、

デニス

4

1 に答える 1

4

のリストを作成し、a各コンポーネントに[[ 1b ]]を適用してパーツを取り除き、結果を次のように置き換えます。cexpressiona * b * c * ")"

e <- substitute(a * b * c * ")", lapply(list(a = a, b = b, c = c), "[[", 1))
plot(0, main = e)

(プロットの後に続く)

スクリーンショット

とがではなくを使用して定義されているとa、より簡単になることに注意してください。その場合、次のように簡略化されます。bcquoteexpression

a <- quote(paste(M[O[2]], " (mg ", O[2]))  
b <- quote(kg^-1)  
c <- quote(h^-1)  
e <- substitute(a * b * c * ")", list(a = a, b = b, c = c))
于 2015-12-10T04:00:25.640 に答える