data = c(1,2,3,4)
names = c("foo", "bar", "baz", "yak")
d = data.frame(data, row.names=names)
ta zwraca:Jak mogę posortować dane.frame za pomocą tylko jednej kolumny, bez utraty rownów?
data
foo 1
bar 2
baz 3
yak 4
Teraz chciałbym uporządkować ten dataframe przez kolumnę, bez utraty nazwy wierszy w załączeniu. Tak, mój wynik byłby:
data
yak 4
baz 3
bar 2
foo 1
Ja już próbowałem następujące:
d[order(-d$data),]
, co oczywiście tylko daje mi listę jednowymiarowy.arrange(d, desc(data))
z pakietuplyr
, w którym nazwy rzędów zostają usunięte.Sprawdzaj kolejność z
o = order(-d$data)
, a następnie odtworzyć ramkę zdata.frame(d[o,], row.names=rownames(d)[o])
... który wciąż pozostawia mnie z niewłaściwej nazwy kolumny.
Czy jest jakiś rozsądny sposób to zrobić?
Ach, ciekawe. Jakoś nie dowiedziałem się o tym dopiero po przeczytaniu słowa kluczowego "upuść" tutaj, co teraz pozwala mi myśleć, czy pomijanie wymiarów R jest dobrym pomysłem, czy nie. Przeczytam o tym. – slhck
Myślę, że wszyscy już zadali to pytanie. Konsensus bogów R był taki, że to domyślne ustawienie nie było tak dobre, ale nie można go zmienić bez przestarzałego kodu. Zostanie poprawiony w Q. –
Kiedy używam tego rozwiązania, odfiltrowuję wszystkie moje wiersze oprócz jednego. Jak to się stało? – Kory