我有一个地图数据集,使用以下内容:
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为“特立尼达”或“多巴哥”的意见。
我使用了以下内容,但这似乎只是部分重新标签的观察:
trin_tobago_vector <- c("Trinidad", "Tobago")
worldMap_df$Economy <- str_replace_all(worldMap_df$Economy, trin_tobago_vector, "Trinidad and Tobago")然而,某些观察仍然是特立尼达和多巴哥根据Economy,而另一些仍然是特立尼达或多巴哥。有人能看到我做错了什么吗?
发布于 2019-11-18 12:19:52
您为str_replace_all提供了一个向量模式:trin_tobago_vector。然后,它将遍历您的'Economy‘列,并使用“特立尼达”检查第一个元素,用“多巴哥”检查第二个元素,用“特立尼达”检查第三个元素,等等。您应该分两个步骤进行此替换:
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"。
https://stackoverflow.com/questions/58914172
复制相似问题