2015-10-17 31 views
0

我有這樣一個數據幀:如何用數據框中每一行的文本替換數字?

id status 
241 1 
451 3 
748 3 
469 2 
102 3 
100 1 
203 2 

現在我想做的事情是這樣的:

1對應於「好」,2對應於「中等」,3對應於「壞」 。

所以我的輸出應該是這樣的:

id status 
241 good 
451 bad 
748 bad 
469 moderate 
102 bad 
100 good 
203 moderate 

如何做到這一點?我試圖用其他方法做到這一點,但它變得越來越複雜。

+1

'水平< - C( 「好」, 「中等」, 「壞」); df $ status < - level [df $ status]'應該可以工作。 – 2015-10-17 09:37:01

回答

2

這聽起來像你想要一個標籤因子。你可以試試:

df$status <- factor(df$status, labels=c('Good','Moderate','Bad')) 

> df 
    id status 
1 241  Good 
2 451  Bad 
3 748  Bad 
4 469 Moderate 
5 102  Bad 
6 100  Good 
7 203 Moderate 
0

這取決於什麼是狀態欄的類型。如果不是的因素,你可以做(​​如帕斯卡指出的)

level<-c("Good","Moderate","Bad") 
df$status<-level[df$status] 

數據

df<-data.frame(item=c("apple","banana","orange","papaya","mango"),grade=c(1,3,2,1,3),stringsAsFactors=FALSE) 

而且如果它被設置爲因素,你可以(由周杰倫指出的)

df$status<-factor(df$status, labels=c('Good','Moderate','Bad')) 

數據

df<-data.frame(item=c("apple","banana","orange","papaya","mango"),grade=c(1,3,2,1,3),stringsAsFactors=TRUE) 
相關問題