使用 str_replace_all 时缺少观察结果

Missing observations when using str_replace_all

我有一个地图数据集,使用以下内容:

worldMap_df <- map_data("world") %>%
  rename(Economy = region) %>%
  filter(Economy != "Antarctica") %>%
  mutate(Economy = str_replace_all(Economy,
                                   c("Brunei" = "Brunei Darussalam",
                                     "Macedonia" = "Macedonia, FYR",
                                     "Puerto Rico" = "Puerto Rico US",
                                     "Russia" = "Russian Federation",
                                     "UK" = "United Kingdom",
                                     "USA" = "United States",
                                     "Palestine" = "West Bank and Gaza",
                                     "Saint Lucia" = "St Lucia",
                                     "East Timor" = "Timor-Leste")))

有许多国家(在 Economy 下)我正在尝试使用 str_replace_all 来连接。一个例子是观察 Economy 是 "Trinidad" 或 "Tobago".

我使用了以下内容,但这似乎只是部分重新标记观察结果:

trin_tobago_vector <- c("Trinidad", "Tobago")
worldMap_df$Economy <- str_replace_all(worldMap_df$Economy, trin_tobago_vector, "Trinidad and Tobago")

但是,某些观察结果仍然 特立尼达和多巴哥 Economy 之下,而其他观察结果仍然 特立尼达多巴哥。谁能看出我在这里做错了什么?

您向 str_replace_all 提供了一个矢量模式:trin_tobago_vector。然后它将遍历您的 'Economy' 列并检查第一个元素 "Trinidad",第二个元素 "Tobago",第三个 "Trinidad",依此类推。您应该分两步进行替换:

worldMap_df$Economy <- str_replace_all(worldMap_df$Economy, "^Trinidad$", "Trinidad and Tobago")
worldMap_df$Economy <- str_replace_all(worldMap_df$Economy, "^Tobago$", "Trinidad and Tobago")

或使用命名向量:

trin_tobago_vector <- c("^Trinidad$" = "Trinidad and Tobago", "^Tobago$" = "Trinidad and Tobago")
worldMap_df$Economy <- str_replace_all(worldMap_df$Economy, trin_tobago_vector)

模式向量中的 ^$ 确保仅替换文字字符串 "Trinidad""Tobago"