如何有效地更改R中的参数名称

时间:2015-07-02 20:54:06

标签: r maps

我的代码使用以下代码显示不同状态的地图:

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

所以我不必为每个州编写代码行?

2 个答案:

答案 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"