regions_numbers <- c(2,9,21,142,150,419)
regions_names <- c("Oceania", "Africa", "North America", "Asia", "Europe", "Latin America")
我需要将数字替换为相应的地区名称,但我不确定使用的代码
我相信有很多方法,但我会不由自主地使用数据帧。通过这种方式,我们可以在excel中执行类似left_join
的映射(类似于vlookup(。
我们首先创建一个映射数据帧:
df_region = data.frame(regions_numbers = c(2,9,21,142,150,419),
regions_names = c("Oceania", "Africa", "North America", "Asia", "Europe", "Latin America"))
现在,我们可以通过将任何未来矢量转换为数据帧来进行映射:
new_region_numbers = data.frame(regions_numbers = sample(c(2,9,21,142,150,419),10,replace = TRUE))
sample
只是给了我一组随机的region_numbers
。现在,通过使用left_join
,我们可以轻松获得您想要的映射:
new_region_names =new_region_numbers %>%
left_join(df_region, by = c("regions_numbers" = "regions_numbers"))
输出:
regions_numbers regions_names
1 142 Asia
2 142 Asia
3 150 Europe
4 9 Africa
5 150 Europe
6 150 Europe
7 21 North America
8 21 North America
9 419 Latin America
10 150 Europe
如果您只想要矢量,那么您可以通过说:来选择它
new_names_only = new_region_names$regions_names
这是一种方法。我相信有更多的"内置"功能可以进行这种映射。但现在想不出什么了。
另一种简单的方式,整洁的方式。。。
sample_vec <- sample(regions_numbers, 20, replace = TRUE)
recode(sample_vec, "2" = "Oceania", "9" = "Africa", "21" = "North America",
"142" = "Asia", "150" = "Europe", "419" = "Latin America")
有用的链接。