Nom de l'état d'abréviation dans la R
J'ai un gros fichier avec une variable d'état qui en a plein le nom de l'état. J'aimerai le remplacer par l'état abréviations (qui est "NY" pour "New york"). Est-il un moyen facile de le faire (en dehors de l'utilisation de plusieurs if-else commandes)? Peut-être à l'aide de "remplacer" déclaration? Merci.
Vous devez vous connecter pour publier un commentaire.
1)
grep
le nom complet destate.name
et de l'utiliser pour un index enstate.abb
:1a) ou à l'aide de
which
:2) ou créer un vecteur d'état abréviations dont les noms sont les noms, prénoms et un index en utilisant le nom complet:
À la différence de (1), celui-ci fonctionne même si "New York" est remplacé par un vecteur d'état complet des noms, par exemple
setNames(state.abb, state.name)[c("New York", "Idaho")]
match
en place degrep
comme suggéré par Aniko ou essayersetNames(state.abb, state.name)[c("New York", "Idaho")]
.state.name
comme "malade" pour "illinois"? Est-il une solution quand le modèle est une sous-chaîne de la réellestate.name
?R a deux constantes intégrées qui pourraient vous aider:
state.abb
avec les abréviations, etstate.name
avec les noms complets. Voici un simple exemple d'utilisation:?switch
ne savez Jamais quand il pourrait être utile dans l'avenir.c(state.abb, 'DC')[match(x, c(state.name, 'District of Columbia'))]
travaille tropJ'ai trouvé le construit en l'état.nom et de l'état.abb ont seulement 50 états. J'ai eu une grande table (y compris les DC et ainsi de suite) en ligne (par exemple, ce lien: http://www.infoplease.com/ipa/A0110468.html) et collé à un .csv fichier nommé Unis.csv. J'ai ensuite états de charge et de abr. à partir de ce fichier au lieu de l'aide de l'. Le reste est assez similaire à @Aniko 's
Il y a une petite différence entre le match et amatch dans la façon de calculer la distance à partir d'un mot à l'autre. Voir P25-26 ici http://cran.r-project.org/doc/contrib/de_Jonge+van_der_Loo-Introduction_to_data_cleaning_with_r.pdf
Vieux post, je sais, mais je voulais jeter mine de là. J'ai appris sur tidyverse, donc, pour le meilleur ou pour le pire-je éviter de base R lorsque cela est possible. Je voulais un avec DC trop, j'ai tout d'abord intégré le passage pour piétons:
Puis j'ai rejoint il de mes données:
Vous pouvez également utiliser
base::abbreviate
si vous n'avez pas de NOUS des noms d'état. Cela ne vous donnera pas de taille égale, les abréviations, sauf si vous augmentez minlength.