Rのベクトルを絶対値でソートする方法などを知っている人はいます(-2, 3, 1) -> (1, -2, 3)か?
私がpythonでそれを行っていた場合、すべての値とその符号のペアを作成し、ペアのリストを絶対値でソートしてから符号を再適用しますが、私はRに非常に慣れていないので、これを行う方法がわかりません.
乾杯
@Arun のメソッドは TRT です。
v[order(abs(v))]
ここvで、ソートされるベクトルです。
ノート:
abs(v)これにより、 と同じサイズの新しいベクトルが作成されvます。これはあまりメモリ効率が良くありませんがR、たとえば Lisp:(sort #'< v :key #'abs)や Python:で行われているように、 でこれを回避できるとは思いませんv.sort(key=abs)。N回数ではなくN*log(N)回数しか呼び出されないため、時間を得ることができますabs。abs(v)はすぐにガベージ コレクションされますが、その割り当て (および特にガベージ コレクション) は大きなベクトルに対して高価であり、メモリが不足している場合は実際に問題になる可能性があります。以下も参照してください。