de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Christopher DuBois
Christopher DuBois
Question

Jak posortować ramkę danych według wielu kolumn?

Chcę posortować ramkę danych według wielu kolumn. Na przykład, z data.frame poniżej, chciałbym posortować według kolumny z (malejąco), a następnie według kolumny b (rosnąco):

dd <- data.frame(b = factor(c("Hi", "Med", "Hi", "Low"), 
      levels = c("Low", "Med", "Hi"), ordered = TRUE),
      x = c("A", "D", "A", "C"), y = c(8, 3, 9, 9),
      z = c(1, 1, 1, 2))
dd
    b x y z
1  Hi A 8 1
2 Med D 3 1
3  Hi A 9 1
4 Low C 9 2
1263 2009-08-18T21:33:18+00:00 3
 NelsonGon
NelsonGon
Edytowane pytanie 3. kwietnia 2019 в 4:37
Programowanie
sorting
r
dataframe
r-faq
Popular videos
WORD - Wstawianie Kolumn i Zarządzanie Tekstem w Kolumnach | ForumWiedzy.pl | ForumWiedzy
WORD - Wstawianie Kolumn i Zarządzanie Tekstem w Kolumnach | ForumWiedzy.pl | ForumWiedzy
4 lata temu
Excel - podstawy. Dzielenie tekstu na kilka kolumn.
Excel - podstawy. Dzielenie tekstu na kilka kolumn.
8 lat temu
Excel - Jak działa formatowanie warunkowe z formułą - 3 przykłady [odc.846]
Excel - Jak działa formatowanie warunkowe z formułą - 3 przykłady [odc.846]
2 lata temu
Wyświetlanie, zaznaczanie, sortowanie plików i folderów Windows 10
Wyświetlanie, zaznaczanie, sortowanie plików i folderów Windows 10
4 lata temu
Sort a dataframe by multiple columns | pandas Tip
Sort a dataframe by multiple columns | pandas Tip
8 miesięcy temu
Sort Data Frame by Multiple Columns in R (3 Examples) | Order Rows of Matrix
Sort Data Frame by Multiple Columns in R (3 Examples) | Order Rows of Matrix
2 lata temu
How to sort a dataframe by multiple columns in R
How to sort a dataframe by multiple columns in R
3 lata temu
Excel - ukrywanie i odkrywanie wierszy, kolumn i arkuszy
Excel - ukrywanie i odkrywanie wierszy, kolumn i arkuszy
8 lat temu
Microsoft Word 2007/2010 - wstawianie tabeli.
Microsoft Word 2007/2010 - wstawianie tabeli.
9 lat temu
Jak sortować dane w Excelu?
Jak sortować dane w Excelu?
7 lat temu
Kurs Mistrz Excela 2.3 - Sortowanie po kolorze wypełnienie i czcionki
Kurs Mistrz Excela 2.3 - Sortowanie po kolorze wypełnienie i czcionki
1 rok temu
EXCEL - Proste obliczenia
EXCEL - Proste obliczenia
10 lat temu
Excel 2010 - Liczba porządkowa dla wielu wartości jednocześnie - wykorzystanie praktyczne 1
Excel 2010 - Liczba porządkowa dla wielu wartości jednocześnie - wykorzystanie praktyczne 1
9 lat temu
excel-410 - Naprzemienne kolorowanie (formatowanie) wierszy - kilka sposobów
excel-410 - Naprzemienne kolorowanie (formatowanie) wierszy - kilka sposobów
7 lat temu
✅🔥 JAK ZROBIĆ AUTORANGI I AUTOROLE NA DISCORD 🔥 MARATON [4/5]
✅🔥 JAK ZROBIĆ AUTORANGI I AUTOROLE NA DISCORD 🔥 MARATON [4/5]
2 lata temu
Raportowanie danych w Crystal Reports 2008 (tutorial) - ALTKOM Akademia
Raportowanie danych w Crystal Reports 2008 (tutorial) - ALTKOM Akademia
9 lat temu
PYTHON PLOTS TIMES SERIES DATA | MATPLOTLIB | DATE/TIME PARSING |  EXPLAINED
PYTHON PLOTS TIMES SERIES DATA | MATPLOTLIB | DATE/TIME PARSING | EXPLAINED
1 rok temu
Beginner R studio: Clean Data | Feature Extraction | Data Exploration
Beginner R studio: Clean Data | Feature Extraction | Data Exploration
2 lata temu
« Poprzedni
Następny »
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
Dirk Eddelbuettel
Dirk Eddelbuettel
18. sierpnia 2009 в 9:51
2009-08-18T21:51:22+00:00
Więcej
Źródło
Edytuj
#9384746

Możesz użyć funkcji order() bezpośrednio bez uciekania się do narzędzi dodatkowych -- zobacz tę prostszą odpowiedź, która używa sztuczki bezpośrednio z góry kodu example(order):

R> dd[with(dd, order(-z, b)), ]
    b x y z
4 Low C 9 2
2 Med D 3 1
1  Hi A 8 1
3  Hi A 9 1
  • Edytuj jakieś 2+ lat później:* Właśnie zapytano, jak to zrobić według indeksu kolumny. Odpowiedzią jest po prostu przekazanie pożądanej kolumny (kolumn) sortowania do funkcji order():
R> dd[order(-dd[,4], dd[,1]), ]
    b x y z
4 Low C 9 2
2 Med D 3 1
1  Hi A 8 1
3  Hi A 9 1
R> 

zamiast używać nazwy kolumny (i with() dla łatwiejszego/bardziej bezpośredniego dostępu).

 MusTheDataGuy
MusTheDataGuy
Edytowana odpowiedź 21. września 2018 в 1:42
1570
0
Christopher DuBois
Christopher DuBois
18. sierpnia 2009 в 9:37
2009-08-18T21:37:22+00:00
Więcej
Źródło
Edytuj
#9384745

Dzięki tej (bardzo pomocnej) funkcji autorstwa Kevina Wrighta, umieszczonej w sekcji tips na wiki R, można to łatwo osiągnąć.

sort(dd,by = ~ -z + b)
#     b x y z
# 4 Low C 9 2
# 2 Med D 3 1
# 1  Hi A 8 1
# 3  Hi A 9 1
 MichaelChirico
MichaelChirico
Edytowana odpowiedź 24. sierpnia 2016 в 2:49
68
0
Ian Fellows
Ian Fellows
20. sierpnia 2009 в 7:43
2009-08-20T19:43:30+00:00
Więcej
Źródło
Edytuj
#9384747

Alternatywnie, używając pakietu Deducer

library(Deducer)
dd<- sortData(dd,c("z","b"),increasing= c(FALSE,TRUE))
27
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
365
Zarejestrowany 1 dzień temu
2
True Image
Zarejestrowany 1 dzień temu
3
archana agarwal
Zarejestrowany 3 dni temu
4
Maxim Zhilyaev
Zarejestrowany 6 dni temu
5
adambotsfford adambotsfford
Zarejestrowany 1 tydzień temu
DA
DE
EL
ES
FR
HU
ID
IT
JA
KO
LV
NL
PL
PT
RU
TR
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem