Séparer le “Nom” “Prénom” et “Nom” colonnes de trame de données
J'ai du mal à comprendre comment prendre une seule colonne "Nom" dans un dataframe de le diviser en deux autres colonnes de FistName et LastName dans le même bloc de données. Le problème est que certains de mes Noms ont plusieurs noms. Essentiellement, je veux prendre le premier mot (ou d'un élément de la chaîne) et le mettre dans le nom des colonnes, puis de les mettre tous à la suite du texte (sans espace) dans la colonne Nom.
C'est mon DataFrame "tteam"
NAME <- c('John Doe','Peter Gynn','Jolie Hope-Douglas', 'Muhammad Arnab Halwai')
TITLE <- c("assistant", "manager", "assistant", "specialist")
tteam<- data.frame(NAME, TITLE)
Ma sortie désirée serait comme ceci:
FirstName <- c("John", "Peter", "Jolie", "Muhammad")
LastName <- c("Doe", "Gynn", "Hope-Douglas", "Arnab Halwai")
tteamdesire <- data.frame(FirstName, LastName, TITLE)
J'ai essayé le code suivant pour créer un nouveau bloc de données de juste des noms qui me permettent d'extraire les noms de la première de la première colonne. Cependant, je suis incapable de mettre les noms de famille dans n'importe quel ordre.
names <- tteam$NAME ## puts full names into names vector
namesdf <- data.frame(do.call('rbind', strsplit(as.character(names),' ',fixed=TRUE)))
## splits out all names into a dataframe PROBLEM IS HERE!
stackoverflow.com/questions/19321673/...
Je crois que ce post devrait vous aider: stackoverflow.com/questions/8299978/...
Notez que dans le monde réel, c'est inutile - les gens ont plusieurs prénoms ou les noms, mettre leurs noms de famille en premier et venir à bout des noms de seconde, ou troisième, et une fois, j'ai entendu parler d'un étudiant Chinois, dont les trois parties d'un nom est apparu dans les dossiers des étudiants dans la base de données toutes les 6 permutations possibles de l'A B C.
OriginalL'auteur RyanL | 2014-10-21
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
extract
detidyr
OriginalL'auteur akrun
Essayer:
ou:
Oups, je n'avais pas le voir, mais dans le tteamdesire, le prénom est également joint avec le nom de famille
Envisager
str_split(NAME, " ", n=2)
destringr
OriginalL'auteur rnso
1) sous
2) gsubfn::lire.modèle Dans le
NAME<-
nous pouvons omettreas.character
si son personnage (par opposition à la factor):Mise à jour mise à Jour de la solution en termes de
tteam
et ajouter la deuxième solution.OriginalL'auteur G. Grothendieck