55个州的缩写为R中的全名
我有一个带有变量状态的文件,它有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::
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