2014-01-27 3 views
0

Итак, у меня есть массив значений от 1 до 100, и мне нужно сделать его дискретным, применяя псевдоним к каждому дискретному значению. Например:Дискретизация и наложение псевдонимов в R

A 
10 
15 
55 
15 
70 

Теперь, давайте скажем, я хочу, чтобы сделать его дискретным более 2 бункеров (так что 0-50 это один бин и 51-100 является другими один) и он же этими ящики с 1 и 2. это должно привести к:

A 
1 
1 
2 
1 
2 

Пожалуйста, обратите внимание, что это отличается от функции дискретизации (содержащейся в энтропии или infotheo). Эта функция учитывает только количество значений для каждого бина.

Мой вопрос также отличается от this one (с аналогичным названием).

Теперь я могу получить этот результат, используя серию ifs, но мне было интересно, существует ли более простой способ сделать это.

ответ

2

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

x <- cut(sample(1:100, 10), c(0, 50, 100)) 
str(x) 
# Factor w/ 2 levels "(0,50]","(50,100]": 1 2 1 2 1 1 2 1 1 1 
+0

Спасибо, что это именно то, что я искал! Точнее (в случае, если будущие пользователи имеют проблемы с такими факторами, как я) as.numeric (x). :) –

Смежные вопросы