0

http://had.co.nz/ggplot2/scale_manual.htmlのggplot2マニュアルでは、次のような構造を使用することを提案しています。

values = c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange")

値に特定の色を割り当てます。

2つの配列からこの構造を生成するにはどうすればよいですか。

A = c("8","4","6","10"); B = c("red","blue","darkgreen","orange")

私は次のようになりました:

rbind(A,B)
  [,1]  [,2]   [,3]        [,4]    
A "8"   "4"    "6"         "10"    
B "red" "blue" "darkgreen" "orange"

しかし、それを「X」=「Y」の割り当ての配列に変換する方法がわかりません。

これは一般的なRの質問であり、ggplot2に固有の質問ではないことを理解しています。しかし、将来同じ問題を抱えている人に役立つ場合に備えて、ggplot2にタグを付けています。どんなアドバイスも歓迎します...

4

1 に答える 1

3

これは機能するはずです:

values = B
names(values) = A
> all.equal(values,
+       c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange"))
[1] TRUE

あなたが求めている振る舞いは、Python辞書の振る舞いを模倣しています。ペアがありkey、特定のキーを参照すると値が返されます。valueこのRの例でkeysは、は文字ベクトルの名前であり、valuesはベクトル内の値です。ggplot2の場合、これはキー(eg "8")をカラー値("red")に明示的に結合します。

于 2012-04-18T11:33:39.580 に答える