1

プロットのタイトルに H2o と書くにはどうすればよいですか?

このヒントのおかげで、見出しに単純な化学式を含めることができます。

plot(main=expression(H[2]*O),0)

ここでの実際の式はもう少し複雑なので、必要に応じて省略してテキストに追加したいと思います。しかし、これは失敗します:

h2o <- expression(H[2]*O)
plot(main=paste(h2o, "in the air"),0) # paste fails here :(
4

2 に答える 2

2

これは、変数に化学式を持たせるためのアプローチです。

# note that .formula is either an expression or a character
# string that would define a valid expression
maketitle <- function(.formula, .other){
  .expression <- sprintf('%s ~ "%s"',as.character(.formula), .other)
  evalq(parse(text = .expression))
}


f <- expression(H[2]*O)
o <- 'blah blah'

plot(1:10, main = maketitle(f, o))

の危険を思い出しeval(parse(text = ...))

個人的には、自分の将来の愚かさを過小評価しないように努めたことを後悔したことはありません. -- Greg Snow (悪名高い fortune(106) によって引き起こされた質問に答えて、なぜ eval(parse(...)) が最適ではないことが多いのかを説明しています) R-help (2007 年 1 月)

于 2012-10-31T00:36:35.507 に答える
1

あなたがしたい

plot(1:10, main = expression(H[2] * O ~ "in the air"))

または

plot(1:10, main = expression(H[2] * O ~ "in" ~ the ~ air))

( のinように、パーサーが最初にキャプチャする R の構文の一部であるため、 を引用する必要がありますfor(i in 1:10)。)

重要なポイントは、区切りのある場所と隣り合った場所のx ~ y表記です。読んでくださいxy?plotmath

ただし、重要な点は、ここで指定するものは、 によって返される式である必要があるということexpression()です。通常、plotmath の式に文字列を含めることができるため、式のpaste() 内部には必要ありません。

于 2012-10-30T21:52:30.663 に答える