我最近获得了一个人口普查数据集并成功转换为 R 格式。然而,我刚刚注意到该国的地区被记录为从 901 到 911 的数字。我认为我可以创建一个带有哈希函数的字典,并使用它创建一个单独的变量,将地区名称列为字符。有谁知道如何做到这一点?
最佳答案
两个选项:
dat <- data.frame(id = 1:10,region = sample(901:911,size = 10,replace = TRUE))
# Option 1 - left join
key1 <- data.frame(region = 901:911,
region_name = paste("Region",901:911),stringsAsFactors = FALSE)
library(dplyr)
> left_join(dat,key1,by = "region")
id region region_name
1 1 902 Region 902
2 2 902 Region 902
3 3 903 Region 903
4 4 903 Region 903
5 5 911 Region 911
6 6 909 Region 909
7 7 902 Region 902
8 8 911 Region 911
9 9 906 Region 906
10 10 905 Region 905
# Option 2 - Indexing
key2 <- setNames(paste("Region",901:911),901:911)
dat$region_name <- key2[as.character(dat$region)]
> dat
id region region_name
1 1 902 Region 902
2 2 902 Region 902
3 3 903 Region 903
4 4 903 Region 903
5 5 911 Region 911
6 6 909 Region 909
7 7 902 Region 902
8 8 911 Region 911
9 9 906 Region 906
10 10 905 Region 905
关于r - 如何使用字典在r中构造另一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57256125/