2016-12-30 30 views
0

這裏是我的數據幀的「罪行」:查找和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意味着前提下的東西和武器中的其他東西。

什麼是寫這個最好的方法,所以我可以用相應的代碼替換所有的數字?先謝謝你!

+4

使用'?factor's或查找向量。 –

+2

如果您提供了一個更完整的示例(例如您當前示例中顯示的所有代碼的代碼翻譯以及預期輸出),也許還解釋了爲什麼您同時具有空白和NAs,這可能會有所幫助...... – Frank

+0

另一種方法是要使用包哈希中的哈希表, – G5W

回答

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 $前提< -recode(X $的前提下, 「99」= 「residance」, 「20」 =「Street」)

district premise Weapon 
1  313 residance  99 
2  316  <NA>  
3  314 Street  99 
相關問題