我有一个包含5列的表格。第3列包含1-5的数字。我想用字母替换数字,其中1 = A,2 = D,3 = X,4 = U,5 = K.我怎么能在R?
这样做答案 0 :(得分:0)
我会使用查找表,即list
,其中名称为数字1-5,列表内容为字母A-E:
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"
答案 1 :(得分: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"
将列值替换为最后一行的输出,并且您已全部设置。