我有按大陆分类的全球数据(欧洲、亚洲、非洲、北美洲、南美洲和澳大利亚)。我想把它们分成生态区(即欧亚大陆+非洲、美洲和澳大利亚)。我正在尝试使用dplyr来获取这些数据,但是我失败了。
data <- data.frame(temp = c(1,2,3,4,5),region = c("Europe","Asia","N America", "S America","Australia")
temp region
1 1 Europe
2 2 Asia
3 3 N America
4 4 S America
5 5 Australia
我很想得到这样的东西。
temp region region_2
1 1 Europe Eurasia+Af
2 2 Asia Eurasia+Af
3 3 N America Americas
4 4 S America Americas
5 5 Australia Australia
谢谢你的帮助。
以user438383的评论为基础
library(tidyverse)
data <- data.frame(temp = c(1,2,3,4,5),
region = c("Europe","Asia","N America", "S America","Australia"))
updatedDf <- data %>%
mutate(region_2 = case_when(
region == 'N America'| region == 'S America' ~ "Americas",
region == 'Asia' | region == 'Africa' | region == 'Europe' ~ 'Eurasia+Africa',
region == 'Australia' ~ 'Australia',
TRUE ~ region)
)
您还可以使用str_detect函数来清理美洲代码并消除澳大利亚代码行,因为TRUE ~ region行将处理region和region_2相同的实例