我有一个数据文件,其代码重复,我需要将这些代码映射到更正式的名称。我的数据文件有一列,并且代码代表内部代理....“123”,“1234”和“12345”是代码并重复多次。代码“123”等于“ABC”,代码“1234”等于“BCA”,“12345”等于“CAB”。我想要做的就是添加另一个映射这些关系的列。
我尝试了下面的gsub代码,但是每个实例都覆盖了上一个命令。
data$agency <- gsub("12345","CAB",data$Code)
data$agency <- gsub("1234","BCA",data$Code)
data$agency <- gsub("123","ABC",data$Code)
任何建议表示赞赏。
答案 0 :(得分:0)
你可以尝试
install.packages("stringr")
library(stringr)
data$agency <- sapply(data$Code, function(x) str_replace_all(x, c("12345"="CAB","1234"="BCA","123"="ABC")))
这会将您的所有模式修改为向量中所有元素的相应替换
答案 1 :(得分:0)
解释&#34; emilliman5&#34;评论,
> data
agency
1 12345
2 1234
3 123
创建一个新的代码表,如下所示:
> codeTable
code value
1 123 ABC
2 1234 BCA
3 12345 CAB
并且,以下命令将返回您想要的结果:
> data['new_column'] <- codeTable$value[match(data$agency, codeTable$code)]
> data
agency new_column
1 12345 CAB
2 1234 BCA
3 123 ABC