如何在 R 的 data.table 对象中将字母转换成数字?


要在 R 的 data.table 对象中将字母转换成数字,我们可以按照以下步骤进行操作 −

  • 首先,创建一个 data.table 对象。

  • 然后,使用 dplyr 包的 mutate_each 函数以及 chartr 函数将字母转换成数字。

示例

创建 data.table 对象

让我们创建一个 data.table 对象,如下所示 −

library(data.table)
v1<-sample(LETTERS[1:5],25,replace=TRUE)
v2<-sample(LETTERS[1:5],25,replace=TRUE)
v3<-sample(LETTERS[1:5],25,replace=TRUE)
DT<-data.table(v1,v2,v3)
DT

输出

执行上述脚本后,将生成以下输出(此输出因系统上的随机性而异) −

    v1 v2 v3
1:  E  C  B
2:  A  C  B
3:  C  A  D
4:  A  E  D
5:  D  A  A
6:  E  B  E
7:  D  A  D
8:  A  B  A
9:  D  D  B
10: E  B  E
11: C  C  D
12: E  C  C
13: B  D  A
14: C  A  C
15: C  B  D
16: B  C  B
17: B  B  E
18: D  D  C
19: A  C  A
20: C  E  D
21: D  A  D
22: E  D  A
23: B  A  C
24: E  D  E
25: A  B  D
   v1 v2  v3

将字母转换成数字

使用 dplyr 包的 mutate_each 函数以及 chartr 函数将 data.table 对象 DT 中的字母转换成数字,如下所示 −

library(data.table)
v1<-sample(LETTERS[1:5],25,replace=TRUE)
v2<-sample(LETTERS[1:5],25,replace=TRUE)
v3<-sample(LETTERS[1:5],25,replace=TRUE)
DT<-data.table(v1,v2,v3)
library(dplyr)
DT %>% mutate_each(funs(chartr("ABCDE","12345",.)))

输出

    v1 v2 v3
1:  5  3  2
2:  1  3  2
3:  3  1  4
4:  1  5  4
5:  4  1  1
6:  5  2  5
7:  4  1  4
8:  1  2  1
9:  4  4  2
10: 5  2  5
11: 3  3  4
12: 5  3  3
13: 2  4  1
14: 3  1  3
15: 3  2  4
16: 2  3  2
17: 2  2  5
18: 4  4  3
19: 1  3  1
20: 3  5  4
21: 4  1  4
22: 5  4  1
23: 2  1  3
24: 5  4  5
25: 1  2  4
   v1 v2  v3

更新于: 08-11-2021

303 次浏览

开启 职业生涯

完成课程即可获得认证

开始学习
广告