2016-04-14 10 views
1

私は、pchパラメータがドットチャート関数内で読み込まれる方法にバグがあるかもしれないと思うが、それを報告する前にピアの確認を感謝するだろう。dotchart pchのバグ?

以下では、色とシンボルの両方がグループによって異なることを希望します。色は正常に動作しますが、シンボルではありません。

with(foo, dotchart(Outcome, 
    groups = Group, 
    color = c("green", "orange", "red")[Group], 
    pch=c(16, 15, 17)[rev(Group)], 
    xlab="Outcome measure /bar", 
    labels = Specimen)) 

しかし、私はPCHのためのベクトルがする必要がありますなぜ、単一の正当な理由を見ることができない:「グループ」列のエンコーディングPCHを逆転させることにより、簡単にではなく、むしろ奇妙な回避策はあり

foo <- data.frame(Specimen=paste("Specimen", 1:18), 
       Group=c(rep("Benign", 4), 
         rep("In-situ", 6), 
         rep("Invasive", 8)), 
       Outcome=rweibull(18, 5) + (1:18/18)) 

with(foo, dotchart(Outcome, 
    groups = Group, 
    color = c("green", "orange", "red")[Group], 
    pch=c(16, 15, 17)[Group], 
    xlab="Outcome measure /bar", 
    labels = Specimen)) 

特に、色が完全に期待通りに機能するように見えるため、逆になりました。思考?

ちなみに、私が一般的に図表の異なるグループの記号と色を変えようとしているのは、色盲の読者のためです。確かに、この場合はそれほど重要ではありません。

答えて

0

私はこれがバグかもしれないことに同意します(このようなベースRの機能については本当に慎重です)。

o <- sort.list(as.numeric(groups), decreasing = TRUE) 
x <- x[o] 
groups <- groups[o] 
color <- rep_len(color, length(groups))[o] 
lcolor <- rep_len(lcolor, length(groups))[o] 

を...そしてそれらは、後続のablinepoints呼び出しで使用されているが、pchは変わらずに渡されます。

Specficiallyは、dotchartここcolorlcolor(線の色)の引数を並べ替え。この修正は、おそらく私が(バグレポートを提出する前に、良いアイデアです)に自分の知識をひけらかすの帽子を入れたいと思った場合、私は?dotchartのドキュメントを指定していることに注意します

pch <- rep_len(pch, length(groups))[o] 

、単純に行を追加することです:

色点とラベルに使用する色です。

color引数の

が、唯一:

PCHの描画、文字や記号を使用します。

pch引数の場合。これは、 "明確に" colorが複数の値をとることを意図していることを意味すると主張しているかもしれません。その意味では、これは「バグ」ではありません。

+0

多くのありがとうございます。私はちょうどあなたの解決策(この余分な行で関数 "dottychart"を作成した)をテストし、うまく動作します。あなたが望む場合を除き、私はこれを報告しようとするかもしれないと思いますか?私は比較的初心者ですが、基本機能の掘り下げには慣れていません!私は、この1行をコードに追加する際にどんな害があるのか​​分かりません。私は意図的な省略よりむしろ見落としをする。 – Knackiedoo