プロットタイトル、軸ラベル、凡例などを生成するために、ラテン文字とギリシャ文字のベクトルをマージしたいと思います。以下の例。私はギリシャ文字を元の形で描く方法を理解できません。私はexpression
とparse
とapply
をpaste
コマンドに組み合わせて試してみましたが、単一の式の場合にはラテン/ギリシア語の混在したテキストを容易に生成するコードをベクトル化できませんでした(例:expression("A ("*alpha*")")
単一の表現の)。R:プロットタイトル、軸ラベル、または凡例用のラテン/ギリシャ式のベクトルを作成する
data<-matrix(seq(20),nrow=5,ncol=4,byrow=TRUE)
colnames(data)<-c("A","B","C","D")
greek<-c(" (alpha)"," (beta)"," (gamma)"," (delta)")
matplot(data)
legend(1,max(data),fill=c("black","red","green","blue"),apply(matrix(paste(colnames(data),greek,sep=""),nrow=4,ncol=1),1,expression))
あなたはlegend()
ステートメント内apply()
文で私を助けていただけますか?所望の出力(すなわち、A(α)、B(β)、C(γ)、D(δ))を生成するために何らかの修正が必要である。前もって感謝します。
ありがとう、ジョシュ。あなたのソリューションは、さまざまな入力に対して非常に堅牢です。 'A(B)'、 'A * B'、' A〜B'が 'substitute'ステートメントで動作するのに対し、' A B'はなぜ動作しないのか説明できますか?また、新しいユーザーのために 'as.'構文が必要な理由についてコメントできますか?私は 'substitute'が評価されていない式を返すので、' as.expression'で 'substitute'の出力に作用するのが意味があると読んでいます。 'as.name'はどうですか? – user001
@ user001 - あなたがよく知っているように、「R言語」の[このセクション](http://cran.r-project.org/doc/manuals/R-lang.html#Computing-on-the-language)定義は、Rの言語要素とそれを操作する方法について傾いている良い出発点です。 'substitute()'は最初の引数として構文的に有効な文を取ることができます。 'A B'は構文的に有効なので"許可されていません "。 (あなたは、そのフォームを持つコマンドラインでタイプされたRステートメントについて考えることはできますか?私は思っていませんでした!)。 –
@ user001 - 'substitute()'は*一般的にクラス "式"のオブジェクトを返しません。 ( '?substitute'の" Value "セクションを見て、' class(substitute()) 'で遊んでみてください。私はas.expression()を使用して、式オブジェクトに返すものを強制的に*強制します。式はベクトル型であるため、 'sapply()'は複数のlength-1式を1つの長さ-4の式ベクトルに連結するだけです。 'as.name()'について知るには '?as.name'を参照してください。お役に立てれば! –