Как отобразить произвольный набор строк в целые числа и обратно в R? - PullRequest
1 голос
/ 21 июня 2019

В произвольных наборах данных есть строковые столбцы, e. г. видов в ирисе множество. Я должен преобразовать их в маленькие целые числа для целей ML (матричные операции, поэтому только числа) и обратить их после вычислений. Например: {"setosa" -> 1, "versicolor" -> 2, "virginica" -> 3).

Я перебираю столбцы и проверяю тип каждого столбца (режим первого элемента). Если это символ (только проблемный режим), я хочу получить набор различных значений из этого столбца (например, 3 вида в наборе Iris), сопоставить их с последовательными целыми числами (поэтому у меня действительно будет матрица вместо фрейма данных) и перевернуть его после вычислений (например, показать прогнозируемые значения в целевом наборе в виде строк, а не произвольно отображенных целых чисел). Я думаю, что мне нужен индекс столбца отображения списка (я не знаю заранее, какие столбцы будут отображаться) для отображения (строка -> целое число) для конкретного столбца.

1 Ответ

0 голосов
/ 21 июня 2019

Сделайте что-то вроде этого:

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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...