-2

次のコードのboxplotの最初のパラメーターの式は、aが並べ替えられた後、bとaの間でどのように正しく対応するのでしょうか。

a <- as.factor(c("TX", "NY", "WA"))
levels(a)
b <- c(5, 3, 2)
boxplot(b ~ a)
# Order the levels of a according to their value in b
a_reordered <- reorder(a, b)
levels(a_reordered)
boxplot(b ~ a_reordered)

なぜbも再注文する必要がないのですか?

編集:私の例を@Mariusの具体的な例に置き換えました

4

1 に答える 1

4

あなたのboxplot(quantity ~ bymedian)呼び出しでは、x軸の状態の順序は、bymedian因子のレベルの順序によって決定されます。と比較levels(x$State)するlevels(bymedian)と、プロットで使用したときに2つの変数の動作が異なる理由がわかります。データ自体のbymedian順序は変更されていないことに注意してください。

簡単な例:

a <- as.factor(c("TX", "NY", "WA"))
levels(a)
b <- c(5, 3, 2)
boxplot(b ~ a)
# Order the levels of a according to their value in b
a_reordered <- reorder(a, b)
levels(a_reordered)
boxplot(b ~ a_reordered)

そして、実際のデータが変更されていないと言うことの意味を明確にするために、次のようにします。

> a
[1] TX NY WA
Levels: NY TX WA
> a_reordered
[1] TX NY WA
# Don't be confused by this extra attr(, "scores") bit: the line
# above is the actual data stored in the vector
#attr(,"scores")
#NY TX WA 
# 3  5  2 
Levels: WA NY TX
> b
[1] 5 3 2
于 2013-01-21T00:24:49.437 に答える