Sortieren nach absolut Wert
Weiß jemand, wie man einen Vektor in R durch den absoluten Wert, so (-2, 3, 1) -> (1, -2, 3)
etc?
Wenn ich Taten es in python würde ich ein paar von jedem Wert und seinen Schild, Sortieren Sie die Liste der Paare, die durch den absoluten Wert dann erneut das Zeichen, aber ich bin sehr neu in R, so haben Sie keine Idee, wie dies zu tun.
Cheers
x[order(abs(x))]
?- Übrigens, in Python würde es einfacher sein zu tun
x.sort(key=abs)
eher als die Paare - Dank sehr viel!
Du musst angemeldet sein, um einen Kommentar abzugeben.
@Arun Methode ist TRT:
wo
v
ist der Vektor sortiert werden.Hinweise:
abs(v)
von der gleichen Größe wiev
.Dies ist nicht sehr Speicher-effizient, aber ich glaube nicht, dass dies vermieden werden kann
R
,wie es getan wird, z.B. Lisp:
(Art #'< v :Schlüssel #'abs)
oder Python:v. sort(key=abs)
.N
mal, nichtN*log(N)
mal, das ist besonders wichtig, wenn der Schlüssel ist nicht Billig (im Gegensatz zuabs
oder eine Struktur, Feld).abs(v)
garbage Collection sehr bald, aber die Zuordnung (und, vor allem, garbage collection) sind teuer für große Vektoren und kann tatsächlich problematisch, wenn der Speicher knapp ist.Siehe auch:
Sortieren
bestellen
abs(v)
ist nicht in der übergeordneten Umwelt & verschwinden auf den nächsten garbage-collection? So es kann beeinflussen peak RAM aber nicht von Dauer sein.Fand ich es sinnvoll, dieses Paket in eine Funktion, so dass ich übergeben konnte ein Vektor, und auch so, dass es die option mit anderen Optionen in der
order
Funktion wiedecreasing
. Es beruht im wesentlichen auf die vorhandenen Antwort.Beispielsweise