Это должно сделать это:
tableOne <- within(tableOne, quartile <- as.integer(cut(salesPrice, quantile(salesPrice, probs=0:4/4), include.lowest=TRUE)))
... Некоторые детали:
Функция within
отлично подходит для вычисления новых столбцов. Вы не должны ссылаться на столбцы как
tableOne$salesPrice
и т. Д.
tableOne <- within(tableOne, quartile <- <<<some expression>>>)
Функция quantile
вычисляет квантили (или, в вашем случае, квартили). 0:4/4
оценивается как c(0, 0.25, 0.50, 0.75, 1)
.
Наконец, функция cut
разделяет ваши данные на эти квартили. Но вы получаете factor
со странными именами, поэтому as.integer
превращает его в группы 1,2,3,4
.
Попробуйте ?within
и т. Д., Чтобы узнать больше о функциях, упомянутых здесь ...