在R中的一列中查找并替换多个字符

时间:2016-12-30 20:19:38

标签: r replace dplyr

这是我的数据框架“犯罪”:

District  Premise Weapon
313       99      99
316       NA
314       20      99
312       13      40
312       9       99

我有一个单独列出所有代码的含义。例如,99 in inise意为“居住”,20意味着“街道”。武器中的99表示“手”,40表示“钝物”。

在stackflow的另一篇文章中,我能够将以下代码用于我的目的:

crime$Premise[crime$Premise == 13] <- "House"

这有效但我意识到我在前提和武器中有30种不同的代码。必须有一种更有效的编写代码的方法,而不是多次复制和粘贴上面的代码,并用字符串替换整数。

*注意,99表示Premise下的其他内容以及Weapon中的其他内容。

写这个的最好方法是什么,所以我可以用相应的代码替换所有数字?提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果您不想构建索引向量,可以使用recode

  x<-data.frame(district=c(313,316,314),premise=c(99,NA,20),Weapon=c(99,"",99))

      district premise Weapon
    1      313      99     99
    2      316      NA       
    3      314      20     99

X $前提&LT; -recode(X $前提下, “99”= “residance”, “20”= “街”)

  district   premise Weapon
1      313 residance     99
2      316      <NA>       
3      314    Street     99