R преобразование непрерывной переменной в категориальную - PullRequest
0 голосов
/ 28 мая 2020

У меня есть столбец непрерывных числовых c значений (NO2), которые мне нужно преобразовать в категориальные значения. Может кто-нибудь объяснить, как это достигается с помощью следующего кода:

cutpoints <- quantile(dataframe%NO2, seq(0,1,length=4),na.rm=TRUE)  
dataframe%newcol <- cut(dataframe%NO2, cutpoints)  
levels(dataframe%newcols) returns (0.3781,1.2] (1.2,1.42] (1.42,2.55]  

1 Ответ

1 голос
/ 28 мая 2020

Я думаю, вы хотели использовать $ вместо % для обозначения имен столбцов.

Если вы запустите код шаг за шагом, это поможет вам понять.

seq создает последовательность от 0 до 1 длиной 4.

seq(0,1,length=4)
#[1] 0.000 0.333 0.667 1.000

quantile разбивает вектор на квантили данных с заданной вероятностью (здесь seq(0,1,length=4) ).

set.seed(123)
x <- runif(10)
cutpoints <- quantile(x, seq(0,1,length=4),na.rm=TRUE) 
#    0%  33.3%  66.7%   100% 
#0.0456 0.4566 0.7883 0.9405 

и теперь эти разрывы используются для cut данных.

cut(x, cutpoints)

означает, что мы делим x на разные группы, где cutpoints[1]-cutpoints[2] - одна группа, cutpoints[2]-cutpoints[3] - другая группа и так далее.

Вы также можете использовать findInterval вместо cut.

...