Как перекодировать числовую переменную в категориальную?

#r #recode

#r #перекодировать

Вопрос:

Привет, я пытался перекодировать числовые переменные в категориальную.

Например, используя mtcars , я пытаюсь разделить mpg на 2 категории < 25 amp; => 25

Это коды, которые я пробовал, но получаю сообщение об ошибке.

 data=mtcars
summary(mtcars$mpg)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
10.40   15.43   19.20   20.09   22.80   33.90 

mpgcat <- cut(mpg, breaks = (0,24.99,34), labels = c("0","1"))
  

Ошибка: неожиданный ‘,’ в «mpgcat <- cut(mpg, breaks = (0,»

Комментарии:

1. Улучшено форматирование и добавлен соответствующий тег для R. Так что вы привлечете внимание других пользователей.

2. Когда breaks = (0, 24.99,34) вам нужно breaks = c(0,24.99,34) . Голосование за закрытие как опечатку.

3. Голосование также за закрытие комментария Пера Грегора, однако для ясности разместите полную рабочую строку: cut(mtcars$mpg, breaks = c(0,24.99,34), labels = c("0","1"))

Ответ №1:

cut делит диапазон x на интервалы и кодирует значения в x в соответствии с тем, в какой интервал они попадают. Крайний левый интервал соответствует первому уровню, следующий крайний левый — второму уровню и так далее.

разрывы — это либо числовой вектор из двух или более уникальных точек разреза, либо единственное число (большее или равное 2), задающее количество интервалов, на которые x нужно разрезать.

Итак, вам понадобится некоторый код скрипта, например:

 data=mtcars
summary(mtcars$mpg)
mpgcut <- cut(mtcars$mpg, breaks = c(0,24.99,34), labels = c("0","1"))
mpgcut
  

чтобы получить такой результат:

 [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0
Levels: 0 1