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)
はすぐにガベージ コレクションされますが、その割り当て (および特にガベージ コレクション) は大きなベクトルに対して高価であり、メモリが不足している場合は実際に問題になる可能性があります。以下も参照してください。