Vollständige Namen (und Titel usw.) müssen in der Regel in mehrere Spalten aufgeteilt werden, um Zeilen alphabetisch nach "Nachname" zu sortieren. Ich habe noch nie einen einfachen Weg gefunden, dies in SQL zu erreichen, wenn eine einzelne Spalte den vollständigen Namen enthält.Sortieren Sie den vollständigen Namen in alphabetischer Reihenfolge in R
Allerdings weiß ich, R hat Tausende von Bibliotheken - und obwohl ich keine Beispiele gefunden habe, die ohne den Vornamen, Nachnamen und Titel in ihre eigenen Spalten trennen können - dachte ich, ich ' Ich sehe, ob es einen etwas effizienteren Weg gibt, mit dieser Situation umzugehen.
Der Datensatz, mit dem ich arbeite, hat eine einzelne Spalte mit vollständigen Namen. Zum Beispiel:
Names
1 Robert Johnson
2 Billy Joel
3 Donald Fagen
4 Trent Reznor
5 Wolfgang Mozart
Ich muss diese alphabetisch sortieren, ohne zusätzliche Spalten zu erstellen. Bisher bin ich mir nicht sicher, ob das möglich ist, aber ich fand eine relativ schmerzlose Arbeit. Zum Glück folgt jeder Name einer "Vorname" (Raum) "Nachname" Konvention. So kann ich trennen() aus der tidyr Bibliothek leicht Nachnamen isolieren:
library(tidyverse)
library(magrittr)
# Separate into "first name" and "last name" columns
data %<>% separate(Names, c('first_name', 'last_name'), sep = ' ')
first_name last_name
1 Robert Johnson
2 Billy Joel
3 Donald Fagen
4 Trent Reznor
5 Wolfgang Mozart
Dann kann ich in alphabetischer Reihenfolge die neue „Nachnamen“ Spalte sortieren mit arrangieren() und sofort die ursprüngliche Spalte mit Vereinigen wieder aufbauen():
# Arrange rows alphabetically by last name
data %<>% arrange(last_name)
# Rebuild original column and dissolve temporary 2nd column
data %>% unite(Names, first_name:last_name, sep=' ')
Dies erstellt erfolgreich die ursprüngliche Tabelle und alphabetisch Spalte "Namen" über Nachnamen. Gibt es eine andere Möglichkeit, diese ohne jemals (auch vorübergehend) zu schaffen, die zweite Spalte "Nachname" zu erstellen? Alle zusätzlichen R-Bibliotheken würden akzeptiert werden. Vielen Dank!
Ja, funktioniert gut und reduziert den Code von 3 Zeilen auf 1. Danke! – RVD