Как использовать mutate для добавления столбца с именами состояний на основе сокращения состояния в существующем столбце? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть фрейм данных со столбцом «STATE», который содержит только аббревиатуры штатов США, и я хочу добавить новый столбец с именами штатов на основе аббревиатур, приведенных в этой строке.Кажется, что должен быть элегантный способ использовать dplyr :: mutate и state.name и state.abb.Это хорошо работает, чтобы вернуть имя состояния:

state.name[which(state.abb == "NY")]

Но как бы я использовал это в mutate?Пример кадра данных:

df_abb <- data.frame(x = 1:5, STATE = c("AK", "AK", "AL", "AR", "CA"))

Моя попытка использовать mutate, которая не работает:

df_abb_w_name <- df_abb %>%
    mutate(STATE_NAME = state.name[which(state.abb == STATE)])

1 Ответ

0 голосов
/ 05 декабря 2018
library(dplyr)
df_abb %>% 
  mutate(state_name = state.name[match(STATE, state.abb)])

Вы не можете использовать оператор == так, как вы пытались, он хочет сравнить поэлементно, поэкспериментировать с ним, чтобы узнать больше.Это не будет работать, если ваши данные имеют дополнительные сокращения, такие как DC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...