如何将任意字符串集映射到整数并返回R?

时间:2019-06-21 08:56:29

标签: r

在任意数据集中都有字符串列,例如e。 G。虹膜集中的物种。我必须将它们转换为ML目的的小整数(矩阵运算,仅用于数字),并在计算后将其取反。例如:{“ setosa”-> 1,“ versicolor”-> 2,“ virginica”-> 3)。

我遍历列并检查每个列的类型(第一个元素的模式)。如果它是字符(仅是有问题的模式),我想从该列中获取一组不同的值(例如,虹膜集中的3种),将它们映射到连续的整数(这样,我将真正拥有矩阵而不是数据帧)并将其反转计算后(例如,将目标集中的预测值显示为字符串,而不是我的任意映射整数)。我想我需要一个列表映射列索引(我事先不知道要映射哪些列)来映射特定列(字符串->整数)。

1 个答案:

答案 0 :(得分:0)

执行以下操作:

fac <- factor(charvar)
num <- as.numeric(fac)
# Do some manipulation of num, producing newnum
newcharvar <- levels(fac)[newnum]

例如,

>     fac <- factor(iris$Species)
>     num <- as.numeric(fac)
>     head(num)
[1] 1 1 1 1 1 1
>     newnum <- num[c(1, 100)]
>     newnum
[1] 1 2
>     levels(fac)[newnum]
[1] "setosa"     "versicolor"