1

フォーマットされた凡例テキストを配列に保存したい。

normFactor= c(1e-1, 1e-2, 1e-3)

legend_text[1] = bquote(mu ~ "=" ~ .(normFactor[1]))
legend_text[2] = bquote(mu ~ "=" ~ .(normFactor[2]))
legend_text[3] = bquote(mu ~ "=" ~ .(normFactor[3]))

bquote-outputは次のタイプのようですlanguage

str(bquote(mu ~ "=" ~ .(normFactor[3])))

言語mu〜 "=" 〜0.001

だから私は言語の配列を設定できると思いました-要素:

legend_text = language()

残念ながら、これは機能しません。これらの要素を配列に格納するにはどうすればよいのでしょうか...

4

2 に答える 2

2

それらをリストに保存することも、次のように作成することもできます。

lapply(seq_along(normFactor),
         function(i)bquote(mu ~ "=" ~ .(normFactor[i])))

[[1]]
mu ~ "=" ~ 0.1

[[2]]
mu ~ "=" ~ 0.01

[[3]]
mu ~ "=" ~ 0.001

bquote言語オブジェクトの作成は、実際にはとを使用してリストとの間で変換される場合がありas.listますas.call。したがって、上記のソリューションは、例として変更できます。

> ll <- lapply(seq_along(normFactor),
+        function(i)as.list(bquote(mu ~ "=" ~ .(normFactor[i]))))
> str(ll)
List of 3
 $ :List of 3
  ..$ : symbol ~
  ..$ : language mu ~ "="
  ..$ : num 0.1
 $ :List of 3
  ..$ : symbol ~
  ..$ : language mu ~ "="
  ..$ : num 0.01
 $ :List of 3
  ..$ : symbol ~
  ..$ : language mu ~ "="
  ..$ : num 0.001

次に、結果を呼び出しのリストに強制します。

> lapply(ll,as.call)
[[1]]
mu ~ "=" ~ 0.1

[[2]]
mu ~ "=" ~ 0.01

[[3]]
mu ~ "=" ~ 0.001
于 2013-03-07T14:17:31.707 に答える
1

言語はアトミックデータ型ではないため、結果はベクトルではなくリストになります。動的型付けはここであなたの友達です:

legend_text<- c(
 bquote(mu ~ "=" ~ .(normFactor[1])),
 bquote(mu ~ "=" ~ .(normFactor[2])),
 bquote(mu ~ "=" ~ .(normFactor[3]))
)

しかし、これがあなたの伝説に実際に必要なものであるかどうかはわかりません。

于 2013-03-07T13:56:21.500 に答える