2016-12-04 4 views
0

Выборочные данныеГруппировка данных в R с новым именем столбца

Name: test 
id age 
1 25 
2 48 
3 77 
4 17 
5 27 

Я хотел бы добавить новый столбец, который называется age_group поэтому я добавил:

test$age_group<-NA 

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

<18=1 
19-30=2 
31-45=3 
46-60=4 
61-75=5 
>76 = 6 

поэтому данные будут выглядеть следующим образом:

id age age_group 
1 25 2 
2 48 4 
3 77 6 
4 17 1 
5 27 2 

Может кто-то помочь с кодом о том, как заполнить age_group?

+1

Вы хотите посмотреть в 'вырезать()' –

+0

age_group [тест $ возрастного> 0 и тест $ возраст <= 18] <- 1 –

ответ

1

Попробуйте это:

df$age_group <- cut(df$age, breaks = c(0,18,30,45,60,75,Inf), labels = 1:6) 

# id age age_group 
#1 1 25   2 
#2 2 48   4 
#3 3 77   6 
#4 4 17   1 
#5 5 27   2 
+0

Ошибка в cut.default (df $ age_group, breaks = c (0,18,30,45,60,75, Inf «x» должно быть числовым –

+0

, но спасибо за вашу помощь ! –

+0

@ laura почему этот 'cut.default (df $ age_group, ...)' ?? его не то, что я отвечаю редактор Вам не нужно заранее создавать столбец «age_group». Когда вы назначаете результат 'cut', столбец будет создан автоматически. Вероятно, вы получаете ошибку, потому что 'df $ age_group' - это все' NA'. Обратите внимание, что первым аргументом 'cut' является' df $ age'! – 989

0

Вот еще один эффективный вариант с findInterval

findInterval(test$age, c(0, 18, 30,45, 60, 75, Inf)) 
#[1] 2 4 6 1 2