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