如何在 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
广告