2016-12-04 49 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

@劳拉为什么这个'cut.default(df $ age_group,...)'??它不是我回答编辑。您不需要事先创建“age_group”列。当您分配“剪切”的结果时,该列将自动创建。你可能会因为'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