如何使用相应的值替换R数据帧列中的值?

时间:2016-11-21 02:29:20

标签: r

好的,我有一个从Pew Research Center下载的数据框。其中一列(称为“cregion”)包含一系列1-56的数字,每个数字对应于美国的地理位置。这些位置中的大多数是状态,另外6个位于子状态级别。因此,例如,数字“1”对应于“Alabama”,“11”对应于“哥伦比亚特区”。

我想要做的是将'cregion'列中的每个数字替换为它对应的区域的ACTUAL名称。遗憾的是,此数据框中没有可用于交换值的列,因为数字对应于哪个区域完全独立存在的关键字(word文档)。我是R的新手,虽然我一直在寻找几个小时的最佳方式来解决这个问题,但我似乎无法找到一种方法可行(或者我只是不明白这个解释)。任何人都可以向我推荐一种方法吗?

1 个答案:

答案 0 :(得分:0)

如果你有一个状态名称的矢量作为名为statevec的字符串,其第i个元素对应于cregion i,而你的数据框名为dat,那么只需执行

dat <- data.frame(cregion = sample(1:50), stuff = runif(50))
head(dat)
#  cregion       stuff
#1      25 0.665843896
#2      11 0.144631131
#3      13 0.691616240
#4      28 0.507454243
#5       9 0.416535139
#6      30 0.004196311
statevec <- state.name
dat$cregion <- statevec[dat$cregion]
head(dat)
#     cregion       stuff
#1   Missouri 0.665843896
#2     Hawaii 0.144631131
#3   Illinois 0.691616240
#4     Nevada 0.507454243
#5    Florida 0.416535139
#6 New Jersey 0.004196311