str_replace_all 不适用于包含括号的字符串
str_replace_all doesn't work with strings that contains parenthesis
我有以下df
library(tidyverse)
a <- tibble(country = c(
"Bolivia (Estado Plurinacional de)",
"Corea del Sur (República de)",
"Reino Unido de Gran Bretaña e Irlanda del Norte",
"Venezuela (República Bolivariana de)",
"Congo (República Democrática del)",
"República Árabe Siria"
))
然后,我尝试用 str_replace_all 函数
替换国家
dict <- c(
"Bolivia (Estado Plurinacional de)" = "Bolivia",
"Corea del Sur (República de)" = "Corea del Sur",
"Reino Unido de Gran Bretaña e Irlanda del Norte" = "Reino Unido",
"Venezuela (República Bolivariana de)" = "Venezuela",
"Congo (República Democrática del)" = "Congo",
"República Árabe Siria" = "Siria"
)
a$country %>% str_replace_all(pattern = dict)
但代码不适用于所有字符串,例如委内瑞拉 (República Bolivariana de) 或刚果 (República Democrática del)。有人可以帮我解决这个问题吗?
非常感谢
只需将您的字典替换为
dict <- c(
"Bolivia \(Estado Plurinacional de\)" = "Bolivia",
"Corea del Sur \(República de\)" = "Corea del Sur",
"Reino Unido de Gran Bretaña e Irlanda del Norte" = "Reino Unido",
"Venezuela \(República Bolivariana de\)" = "Venezuela",
"Congo \(República Democrática del\)" = "Congo",
"República Árabe Siria" = "Siria"
)
在正则表达式中,括号是特殊字符。所以你必须使用转义字符,在这种情况下 \(
和 \)
而不是 (
和 )
.
使用这个新的 dict
您的代码 returns
> a$country %>% str_replace_all(pattern = dict)
[1] "Bolivia" "Corea del Sur" "Reino Unido" "Venezuela" "Congo" "Siria"
我有以下df
library(tidyverse)
a <- tibble(country = c(
"Bolivia (Estado Plurinacional de)",
"Corea del Sur (República de)",
"Reino Unido de Gran Bretaña e Irlanda del Norte",
"Venezuela (República Bolivariana de)",
"Congo (República Democrática del)",
"República Árabe Siria"
))
然后,我尝试用 str_replace_all 函数
替换国家dict <- c(
"Bolivia (Estado Plurinacional de)" = "Bolivia",
"Corea del Sur (República de)" = "Corea del Sur",
"Reino Unido de Gran Bretaña e Irlanda del Norte" = "Reino Unido",
"Venezuela (República Bolivariana de)" = "Venezuela",
"Congo (República Democrática del)" = "Congo",
"República Árabe Siria" = "Siria"
)
a$country %>% str_replace_all(pattern = dict)
但代码不适用于所有字符串,例如委内瑞拉 (República Bolivariana de) 或刚果 (República Democrática del)。有人可以帮我解决这个问题吗?
非常感谢
只需将您的字典替换为
dict <- c(
"Bolivia \(Estado Plurinacional de\)" = "Bolivia",
"Corea del Sur \(República de\)" = "Corea del Sur",
"Reino Unido de Gran Bretaña e Irlanda del Norte" = "Reino Unido",
"Venezuela \(República Bolivariana de\)" = "Venezuela",
"Congo \(República Democrática del\)" = "Congo",
"República Árabe Siria" = "Siria"
)
在正则表达式中,括号是特殊字符。所以你必须使用转义字符,在这种情况下 \(
和 \)
而不是 (
和 )
.
使用这个新的 dict
您的代码 returns
> a$country %>% str_replace_all(pattern = dict)
[1] "Bolivia" "Corea del Sur" "Reino Unido" "Venezuela" "Congo" "Siria"