1
私はすぐに、{dplyr}のarrange()がsort()よりも優れていることを知りました。ちょうど興味深いのは、sort()関数が返すオブジェクトが数値クラスであるからです。例:並べ替えが数値ベクトルとして返されるため、並べ替え(並べ替え)が悪いですか?
df <- data.frame(a=round(rpois(10,10)), b=LETTERS[1:10], stringsAsFactors = F)
df
a b
1 13 A
2 7 B
3 11 C
4 6 D
5 10 E
6 10 F
7 10 G
8 6 H
9 11 I
10 9 J
私がデータフレームを並べ替える場合、並べ替えがうまくいくことがわかりました。
arrange(df, desc(a))
a b
1 13 A
2 11 C
3 11 I
4 10 E
5 10 F
6 10 G
7 9 J
8 7 B
9 6 D
10 6 H
元のデータフレームを注文しようとすると、何が行われますか?
df[sort(df[,1]),]
a b
6 10 F
6.1 10 F
7 10 G
9 11 I
10 9 J
10.1 9 J
10.2 9 J
NA NA <NA>
NA.1 NA <NA>
NA.2 NA <NA>
だから、数値ベクトルで並べ替えるのは一般的には良い考えではないと思います。
sort(df[,1])
[1] 6 6 7 9 10 10 10 11 11 13
class(sort(df[,1]))
[1] "numeric"
sort()で再配置しようとしたときに何が起こったのかを知りたいと思います。おかげさまで
これは質問に幾分接線方向であるとして
index.return
オプションを使用しますが、順序を使用しての欠点があります。 'sort'は部分ソートを可能にします(' sort.list'は引数としてpartialを持ちますが、まだサポートされていません)。 – Shape@Shapeコメントありがとうございます。部分ソートについて知っておくと良い – akrun