Фиктивная переменная для интервала расстояния

В моем наборе данных я хочу создать фиктивные переменные для определения влияния переменной на определенных расстояниях.

Расстояния должны быть:

0-100 meters

100-200 meters

200-300 meters

до 1000 метров, всего 10 фиктивных переменных.

Как мне это сделать

заранее спасибо

РЕДАКТИРОВАТЬ:

Когда я запускаю регрессию с фиктивными переменными, я не могу получить интервал 0-100 метров в регрессии. Это не учтено. Любые идеи о том, почему?

заранее спасибо


person Kasper    schedule 01.07.2013    source источник


Ответы (2)


Вы ищете функцию cut:

x <- 1:1000
cut(x,c(min(x),100,200,300,max(x)))

ИЗМЕНИТЬ

Чтобы получить 10 уровней:

cut(x,seq(min(x),max(x),100))
person agstudy    schedule 01.07.2013
comment
разве это не должно быть cut(x,(0:10)*100), чтобы получить десять уровней? - person rinni; 01.07.2013

Вы также можете использовать функцию recode из пакета car в R.

install.packages("car")
library(car)
x<-0:1000
y<-recode(x,"0:100=1;101:200=2;201:300=3;301:400=4;401:500=5;501:600=6;601:700=7;701-800=8;801:900=9;else=10")

Output: 

> head(y)
[1] 1 1 1 1 1 1
> tail(y)
[1] 10 10 10 10 10 10

Примечание. Вы можете изменять минимальные и максимальные значения для каждой категории. Например, вместо 100 для максимума в первой категории вы можете написать 99,999 в зависимости от вашей структуры данных.

Существует также функция ifelse, которую вы можете использовать, если у вас всего несколько категорий. См. здесь

person Metrics    schedule 01.07.2013