2013-03-01 63 views
0

我有一個5列的表。第三列包含1-5的數字。我想用1 = A,2 = D,3 = X和4 = U和5 = K的字母替換數字。我如何在R中這樣做?更改列值?

回答

0

我會使用一個查找表,即list其中姓名是數字1-5和列表的內容字母AE:

lut = list('A', 'B', 'C', 'D', 'E') 
names(lut) = 1:5 
sample_data = sample(1:5, 10, replace = TRUE) 
as.character(lut[as.character(sample_data)]) 

> lut 
$`1` 
[1] "A" 

$`2` 
[1] "B" 

$`3` 
[1] "C" 

$`4` 
[1] "D" 

$`5` 
[1] "E" 

> sample_data 
[1] 3 5 2 5 1 4 2 2 3 3 
> as.character(lut[as.character(sample_data)]) 
[1] "C" "E" "B" "E" "A" "D" "B" "B" "C" "C" 
+0

非常感謝....! – Kisun 2013-03-01 14:15:06

0

這可能比保羅更容易理解答案(這是更好的方法恕我直言)。

創建一個小數據框,它本質上是一個查找表。然後,在我讓bar是你的數組中感興趣的列,

Rgames> foo 
$lets 
[1] "A" "D" "X" "U" "K" 

$nums 
[1] 1 2 3 4 5 

Rgames> rab<-foo$lets[bar] 
Rgames> rab 
[1] "A" "A" "X" "D" "K" 
Rgames> foo 
$lets 
[1] "A" "D" "X" "U" "K" 

$nums 
[1] 1 2 3 4 5 

Rgames> bar 
[1] 1 1 3 2 5 
Rgames> foo$lets[bar] 
[1] "A" "A" "X" "D" "K" 

與最後一行的輸出替換列值,而你所有的設置。