我的代码使用以下代码显示不同状态的地图:
library(maps)
map("state", c("Virginia", "Maryland"), interior = FALSE)
map("state", boundary = FALSE, col="black", add = TRUE)
我想更改c(" Virginia"," Maryland)以使用我制作的变量,state = c(' VA',' MD')以便我可以更改代码中稍后显示的状态。有没有办法让它如此c(州)可以取代c("弗吉尼亚","马里兰")除了蛮力的说法之外
if (state == 'VA') state = Virginia
if (state == 'MD') state = Maryland
#and so on
所以我不必为每个州编写代码行?
答案 0 :(得分:3)
内置了州名和缩写的向量。如果你有
state = c('VA', 'MD')
您可以使用
获取名称state.name[match(state, state.abb)]
# [1] "Virginia" "Maryland"
答案 1 :(得分:2)
如果没有内置列表(我在阅读其他答案之前这样做了:-),您可以轻松地删除所有缩写,因此您不需要自己编写代码。然后列出值
的键library(XML)
url <- "http://state.1keydata.com/state-abbreviations.php"
abbrevs <- readHTMLTable(url)[[2]]
key <- with(abbrevs[2:nrow(abbrevs),],
setNames(as.character(unlist(abbrevs[2:nrow(abbrevs),c(1,3)])),
as.character(unlist(abbrevs[2:nrow(abbrevs),c(2,4)]))))
head(key)
# AL AK AZ AR CA CO
# "Alabama" "Alaska" "Arizona" "Arkansas" "California" "Colorado"
state <- c("VA", "MD")
key[state]
# VA MD
# "Virginia" "Maryland"