Ошибка преобразования значения фактора в числовое значение - PullRequest
1 голос
/ 22 апреля 2019

У меня есть data.frame со столбцом под названием weight в формате фактора, и у меня есть эти значения:

Weight
8.248
5.365333333333333
5.725333333333337

, и мне нужно преобразовать это в числовое значение с теми же значениями,только изменяя формат.

Но, когда я делаю это, используя этот код:

dt$New.weight=as.numeric(dt$Weight)

, и я получаю эти данные. frame:

Weight            New.weight
8.248             2547
5.365333333333333 871
5.725333333333337 958

What I 'я делаю неправильно?

1 Ответ

1 голос
/ 22 апреля 2019

Режим хранения factor равен integer, поэтому, когда мы напрямую применяем as.numeric к factor, мы получаем целочисленные значения режима хранения вместо фактических значений. Один из вариантов - конвертировать его через as.character

as.numeric(as.character(dt$Weight))

v1 <- factor(rep(c(21, 24, 32), 2))
as.numeric(v1)
#[1] 1 2 3 1 2 3

as.numeric(as.character(v1))
#[1] 21 24 32 21 24 32
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...