valera significa reina que omg nombres los libros diccionario dela catolica cada biblia abreviaturas abreviatura r

significa - Nombre del estado a la abreviatura en R



nombres y abreviaturas de los libros de la biblia (5)

Tengo un archivo grande con un estado variable que tiene el nombre de estado completo. Me gustaría reemplazarlo con las abreviaturas del estado (que es "NY" para "Nueva York"). ¿Hay una manera fácil de hacer esto (aparte de usar varios comandos if-else)? ¿Puede estar usando la declaración "reemplazar"? Gracias.


Descubrí que el estado.nombre incorporado y el estado.abb tienen solo 50 estados. Obtuve una tabla más grande (incluyendo DC, etc.) en línea (por ejemplo, este enlace: http://www.infoplease.com/ipa/A0110468.html ) y la pegué en un archivo .csv llamado States.csv. Luego cargo estados y abbr. de este archivo en lugar de usar el built-in. El resto es bastante similar a @Aniko ''s

library(dplyr) library(stringr) library(stringdist) setwd() # load data data = c("NY", "New York", "NewYork") data = toupper(data) # load state name and abbr. State.data = read.csv(''States.csv'') State = toupper(State.data$State) Stateabb = as.vector(State.data$Abb) # match data with state names, misspell of 1 letter is allowed match = amatch(data, State, maxDist=1) data[ !is.na(match) ] = Stateabb[ na.omit( match ) ]

Hay una pequeña diferencia entre coincidencia y desigualdad en la forma en que calculan la distancia de una palabra a otra. Ver P25-26 aquí http://cran.r-project.org/doc/contrib/de_Jonge+van_der_Loo-Introduction_to_data_cleaning_with_R.pdf


Publicación anterior que sé, pero quería arrojar la mía allí. Aprendí en tidyverse, así que para bien o para mal evito la base R cuando sea posible. Yo también quería uno con DC, así que primero construí el paso de peatones:

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

Luego me uní a mis datos:

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


R tiene dos constantes integradas que pueden ayudar: state.abb con las abreviaturas y state.name con los nombres completos. Aquí hay un ejemplo de uso simple:

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


También puede usar base::abbreviate si no tiene nombres de estados de EE. UU. Esto no le dará abreviaturas de igual tamaño a menos que aumente la duración mínima.

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


1) grep el nombre completo de state.name y usarlo para indexar en state.abb :

state.abb[grep("New York", state.name)] ## [1] "NY"

2) o cree un vector de abreviaturas de estado cuyos nombres son los nombres completos e indexe en él usando el nombre completo:

setNames(state.abb, state.name)["New York"] ## New York ## "NY"

A diferencia de (1), este funciona incluso si "New York" es reemplazado por un vector de nombres completos de estado, por ejemplo, setNames(state.abb, state.name)[c("New York", "Idaho")]