0

5列のテーブルがあります。3 列目には 1 ~ 5 の数字が含まれます。1=A、2=D、3=X、4=U、5=K の数字を文字に置き換えたいと思います。Rでどうすればできますか?

4

2 に答える 2

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"
于 2013-03-01T12:50:08.983 に答える
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"

列の値を最後の行の出力に置き換えれば、準備は完了です。

于 2013-03-01T13:59:02.283 に答える