将数字转换为data.frame中的字母

时间:2018-03-04 13:54:10

标签: r string replace numbers letters

在R中,我有一些数字矩阵,我将把每个数字转换成等效字母; 1到" a",2到" b"等等。

假设这是矩阵:

set.seed(1)
x <- data.frame(matrix(sample(1:16,12,T),nrow=3,ncol=4))
#  X1 X2 X3 X4
#1  5 15 16  1
#2  6  4 11  4
#3 10 15 11  3

这是预期的输出:

#  X1 X2 X3 X4
#1  e  o  p  a
#2  f  d  k  d
#3  j  o  k  c

我使用了letters[x]letters[list(x)]但是它给了这个

  

字母错误[list(x)]:无效的下标类型&#39; list&#39;

1 个答案:

答案 0 :(得分:3)

将“x”转换为matrix后,将其用作内置letters的索引并将其分配给原始数据集

x[] <- letters[as.matrix(x)]
x
#   X1 X2 X3 X4
#1  e  o  p  a
#2  f  d  k  d
#3  j  o  k  c

或者可以使用tidyverse

完成此操作
library(dplyr)
x %>%
   mutate_all(funs(letters[.]))