#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