55个州的缩写为R中的全名

55个州的缩写为R中的全名,r,R,我有一个带有变量状态的文件,它有55个状态缩写。我想用全州的名字来代替它们。在R中有没有一种简单的方法可以做到这一点 您可以使用命名列表并利用数据集包: states <- setNames(as.list(datasets::state.name), datasets::state.abb) states[["NY"]] 您可以使用命名列表并利用数据集包: states <- setNames(as.list(datasets::state.name), datasets::

我有一个带有变量状态的文件,它有55个状态缩写。我想用全州的名字来代替它们。在R中有没有一种简单的方法可以做到这一点

您可以使用命名列表并利用数据集包:

states <- setNames(as.list(datasets::state.name), datasets::state.abb)

states[["NY"]]


您可以使用命名列表并利用数据集包:

states <- setNames(as.list(datasets::state.name), datasets::state.abb)

states[["NY"]]


如果您这样做是为了映射,那么从上面Waldi的答案中得出的这个较长的答案可能也会有所帮助。假设您有一个包含州缩写和一些数字的数据框,如:

df <- structure(list(abbrev = c("AK", "AL", "AR", "AZ", "CA", "CO", 
"CT", "DC", "DE", "FL", "GA", "GU", "HI", "IA", "ID", "IL", "IN", 
"KS", "KY", "LA", "MA", "MD", "ME", "MI", "MN", "MO", "MS", "MT", 
"NC", "ND", "NE", "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", 
"PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "VA", "VI", "VT", 
"WA", "WI", "WV", "WY"), n = c(4L, 20L, 11L, 51L, 98L, 11L, 68L, 
37L, 102L, 116L, 32L, 9L, 29L, 72L, 9L, 191L, 60L, 23L, 12L, 
32L, 43L, 24L, 8L, 65L, 38L, 44L, 15L, 12L, 59L, 11L, 38L, 48L, 
64L, 14L, 21L, 159L, 144L, 34L, 17L, 157L, 18L, 20L, 48L, 13L, 
26L, 175L, 10L, 19L, 4L, 96L, 7L, 104L, 15L, 2L)), row.names = c(NA, 
-54L), class = c("tbl_df", "tbl", "data.frame")) 

df如果您这样做是为了映射,那么从上面Waldi的答案中得出的这个较长的答案可能也会有所帮助。假设您有一个包含州缩写和一些数字的数据框,如:

df <- structure(list(abbrev = c("AK", "AL", "AR", "AZ", "CA", "CO", 
"CT", "DC", "DE", "FL", "GA", "GU", "HI", "IA", "ID", "IL", "IN", 
"KS", "KY", "LA", "MA", "MD", "ME", "MI", "MN", "MO", "MS", "MT", 
"NC", "ND", "NE", "NH", "NJ", "NM", "NV", "NY", "OH", "OK", "OR", 
"PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "VA", "VI", "VT", 
"WA", "WI", "WV", "WY"), n = c(4L, 20L, 11L, 51L, 98L, 11L, 68L, 
37L, 102L, 116L, 32L, 9L, 29L, 72L, 9L, 191L, 60L, 23L, 12L, 
32L, 43L, 24L, 8L, 65L, 38L, 44L, 15L, 12L, 59L, 11L, 38L, 48L, 
64L, 14L, 21L, 159L, 144L, 34L, 17L, 157L, 18L, 20L, 48L, 13L, 
26L, 175L, 10L, 19L, 4L, 96L, 7L, 104L, 15L, 2L)), row.names = c(NA, 
-54L), class = c("tbl_df", "tbl", "data.frame")) 

df从另一个方向开始?对于55个州/abb组合(PR、DC、VI、GM、AS)或者,您可以从这里下载数据-[并在Excel中对您的数据使用
VLOOKUP
。只需不到2分钟。从另一个方向开始并走?对于55个州/abb组合(PR、DC、VI、GM、AS),或者,您可以从这里下载数据-[并在Excel中对您的数据使用
VLOOKUP
。所需时间不到2分钟。它可以在不应用于我的文件的情况下工作,当我应用于我的文件时,它会给出错误:
$中的错误这可能是因为我使用的状态列表(包含在基本R中)只有50个状态。您可以使用dput(状态)获得列表的结构并手动添加三个缺少的状态以创建完整列表。它可以在不应用于我的文件的情况下工作,当我应用于我的文件时,它会给出错误:
$中的错误这可能是因为我使用的状态列表(包含在基本R中)只有50个状态。您可以使用dput(状态)获得列表的结构并手动添加三个缺失状态以创建完整列表。
> inner_join(df, state.info, by="abbrev")
# A tibble: 50 x 5
   abbrev     n state         long   lat
   <chr>  <int> <chr>        <dbl> <dbl>
1 AK         4 Alaska      -127.   49.2
2 AL        20 Alabama      -86.8  32.6
3 AR        11 Arkansas     -92.3  34.7
4 AZ        51 Arizona     -112.   34.2
5 CA        98 California  -120.   36.5
6 CO        11 Colorado    -106.   38.7
7 CT        68 Connecticut  -72.4  41.6
8 DE       102 Delaware     -75.0  38.7
9 FL       116 Florida      -81.7  27.9