55 votes

Nom de l'État à l'abréviation

J'ai un gros fichier avec une variable state qui a des noms d'état complets. Je voudrais le remplacer par les abréviations d'État (c'est-à-dire "NY" pour "New York"). Existe-t-il un moyen simple de le faire (à part l'utilisation de plusieurs commandes if-else) ? Utilise peut-être l'instruction replace()

93voto

Aniko Points 7555

R a deux constantes intégrées qui peuvent aider : state.abb avec les abréviations et state.name avec les noms complets. Voici un exemple d'utilisation simple :

 > x <- c("New York", "Virginia")
> state.abb[match(x,state.name)]
[1] "NY" "VA"

11voto

Ben G Points 705

Ancien post que je connais, mais je voulais y mettre le mien. J'ai appris sur tidyverse, donc pour le meilleur ou pour le pire, j'évite la base R lorsque cela est possible. J'en voulais aussi un avec DC, alors j'ai d'abord construit le passage pour piétons :

 library(tidyverse)

 st_crosswalk <- tibble(state = state.name) %>%
   bind_cols(tibble(abb = state.abb)) %>% 
   bind_rows(tibble(state = "District of Columbia", abb = "DC"))

Ensuite, je l'ai joint à mes données :

 left_join(data, st_crosswalk, by = "state")

2voto

psychonomics Points 41

Vous pouvez également utiliser base::abbreviate si vous n'avez pas de noms d'états américains. Cela ne vous donnera pas des abréviations de taille égale à moins que vous n'augmentiez la longueur min.

 state.name %>% base::abbreviate(minlength = 1)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X