伙计们,
我想使用mapCountryData
创建一个仅有4个类别的世界地图。
我希望类别为:
BMI < 22.5
->显示为绿色/
22.5 < BMI < 25
->显示为黄色/
25 < BMI < 27.5
->显示为橙色/
BMI > 27.5
->显示为红色
我尝试使用:ifelse
函数,但确实得到了4个类别,但没有正确的颜色。
有人有主意吗?
R脚本中的全部代码:(最后一步:制作世界地图是我奋斗的地方)
http://apps.who.int/gho/data/node.main.A904?lang=en-> Excel文件,使用data.text标签->命名为data_bmi
从维基百科收集国家/地区的所有ISO 3数字代码->在Excel中复制过去并将其命名为“国家/地区代码”
library(tidyverse)
library(dplyr)
data_bmi <- select(data_bmi,2:4,6,8)
data_bmi <- filter(data_bmi, data_bmi$`Sex (string)` == "Both sexes")
data_bmi_2016 <- filter(data_bmi, data_bmi$`Year (string)` == "2016")
names(data_bmi_2016) <- c("Year", "Region", "Country", "Sex", "BMI")
data_bmi_2016[145, 3] <- "United Kingdom"
data_bmi_2016 <- merge(data_bmi_2016, country_codes, by.x = "Country", by.y = "Country")
names(data_bmi_2016) <- c("Year", "Region", "Country", "Sex", "BMI", "ISO3V10")
install.packages("rworldmap")
install.packages("sp")
library(sp)
library(rworldmap)
data_bmi_2016$BMI <- ifelse(data_bmi_2016$BMI > 27.5, 'red', ifelse(data_bmi_2016$BMI > 25, 'orange', ifelse(data_bmi_2016$BMI > 22.5, 'yellow', ifelse(data_bmi_2016$BMI < 22.5, 'green', 'white'))))
BMI <- joinCountryData2Map(data_bmi_2016)
mapCountryData(BMI, nameColumnToPlot = "BMI")