2016-09-09 6 views
-2

В mtcars mtcars$group <- cut(mtcars$mpg,2, labels = c("small", "big")) создает новый столбец с группами «маленький» и «большой».Группировка в группе в r

Есть ли способ сделать группы, т. Е. «Маленькие» и «большие», mpg, но в группе автомобилей с 4, 6, 8 или любым количеством цилиндров, представленных в кадре данных?

SAS 9.1 дает возможность с помощью функции proc rank с аргументами by, groups и var.

+4

Не совсем уверен, что результат вы хотите , но делает 'mtcars $ group <- c (« маленький »,« большой ») [с (mtcars, ave (mpg, cyl, FUN = function (x) cut (x, 2)))] сделайте это за вас ? – thelatemail

ответ

1

Это может быть сделано группой по операциям. С data.table, после группировки по одному столбцу сказать «цил», мы cut на «миль на галлон» с breaks как 2, указать labels и назначить (:=) его «группы»

library(data.table) 
as.data.table(mtcars)[, group := cut(mpg, breaks = 2, labels = c("small", "big")), cyl][] 
Смежные вопросы