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

How to efficiently change names of arguments in R

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

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(state) 代替 c("Virginia", "Maryland") 除了蛮力的说法

if (state == 'VA') state = Virginia
if (state == 'MD') state = Maryland
#and so on

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

内置州名和缩写向量。如果你有

state = c('VA', 'MD')

你可以用

得到名字
state.name[match(state, state.abb)]
# [1] "Virginia" "Maryland"

如果没有内置列表(我在阅读其他答案之前就这样做了:-),您可以轻松地抓取所有缩写,因此您不需要自己编写代码。然后制作一个键值列表

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"