Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用str_replace_all时缺少观测值_R_Dplyr_Concatenation_Str Replace - Fatal编程技术网

使用str_replace_all时缺少观测值

使用str_replace_all时缺少观测值,r,dplyr,concatenation,str-replace,R,Dplyr,Concatenation,Str Replace,我有一个地图数据的数据集,使用以下内容: worldMap_df <- map_data("world") %>% rename(Economy = region) %>% filter(Economy != "Antarctica") %>% mutate(Economy = str_replace_all(Economy, c("Brunei" = "Brunei Darussalam"

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

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")))

然而,某些观察结果仍将特立尼达和多巴哥置于
经济
之下,而其他观察结果仍将特立尼达和多巴哥置于
之下。有人能看出我做错了什么吗?

你提供了一个向量模式来替换所有的向量:
trin\u tobago\u vector
。然后,它将遍历您的“经济”列,检查第一个元素的“特立尼达”,第二个元素的“多巴哥”,第三个元素的“特立尼达”,依此类推。您应该分两步进行更换:

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")

worldMap\u df$Economy您提供的
str\u replace\u all
模式是一个向量:
trin\u tobago\u vector
。然后,它将遍历您的“经济”列,检查第一个元素的“特立尼达”,第二个元素的“多巴哥”,第三个元素的“特立尼达”,依此类推。您应该分两步进行更换:

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")

worldMap\u df$Economy Hi@Basibo1最初,我在调用
mutate
时加入了
“特立尼达”=“特立尼达和多巴哥”,“多巴哥”=“特立尼达和多巴哥”
,尝试这样做。在这样做的同时,对于你的任何一种解决方案,我以“特立尼达和特立尼达和多巴哥”作为结束语,以进行某些观察。有没有告诉R只搜索“特立尼达”或“多巴哥”作为唯一字符串?啊,你完全正确。如果在我的第二个解决方案中使用
str\u replace
而不是
str\u replace\u all
,会发生什么情况?另一种解决方案可能是通过编写
“^Trinidad$”
“^Tobago$”
将其转换为正则表达式,请参阅我编辑的答案。使用
stru replace
在修复替换(replacement)中引发错误
错误:缺少参数“replacement”,没有默认值。我应该在原始mutate调用中使用正则表达式吗?太棒了,无论是在原始mutate调用中的列表中,还是通过首先定义一个向量,似乎都可以完美地工作。非常感谢。您好@Basibo1我尝试过这样做,最初在调用
mutate
时加入
“Trinidad”=“Trinidad and Tobago”,“Tobago”=“Trinidad and Tobago”
。在这样做的同时,对于你的任何一种解决方案,我以“特立尼达和特立尼达和多巴哥”作为结束语,以进行某些观察。有没有告诉R只搜索“特立尼达”或“多巴哥”作为唯一字符串?啊,你完全正确。如果在我的第二个解决方案中使用
str\u replace
而不是
str\u replace\u all
,会发生什么情况?另一种解决方案可能是通过编写
“^Trinidad$”
“^Tobago$”
将其转换为正则表达式,请参阅我编辑的答案。使用
stru replace
在修复替换(replacement)中引发错误
错误:缺少参数“replacement”,没有默认值。我应该在原始mutate调用中使用正则表达式吗?太棒了,无论是在原始mutate调用中的列表中,还是通过首先定义一个向量,似乎都可以完美地工作。非常感谢。
trin_tobago_vector <- c("^Trinidad$" = "Trinidad and Tobago", "^Tobago$" = "Trinidad and Tobago")
worldMap_df$Economy <- str_replace_all(worldMap_df$Economy, trin_tobago_vector)