Найти и заменить несколько символов в одном столбце В R [дублировать]

На этот вопрос уже есть ответ здесь:

Вот мой фрейм данных » преступление»:

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

У меня есть отдельный список того, что означают все коды. Например, 99 в помещении означает «резиденция», 20 означает»улица». 99 в оружии означает «руки», 40 означает»тупой предмет».

В другом посте на stackflow, я смог использовать следующий код для моей цели:

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

Это сработало, но я понял, что у меня есть 30 различных кодов в помещении и оружии. Должен быть более эффективный способ написания кода вместо копирования и вставки кода выше в несколько раз и замены целого числа строкой.

* обратите внимание, 99 означает что-то еще под посылкой и что-то еще в оружии.

Как лучше всего написать это, чтобы я мог заменить все номера соответствующими кодами? Заранее спасибо!

1 ответ

  1. если вы не хотите создавать вектор индекса, вы можете использовать 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$предпосылка»)

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