2017-04-05 65 views
0

我中的R,涉及学生和平均成绩的数据集,例如如何使用if语句分割数据?

Student  GPA 
Jim   3.00 
Tom   3.29 
Ana   3.99 

等。

我想要一个列,把它们放入一个bin。例如

Student  GPASplit 
Jim   3.0-3.5 
Tom   3.0-3.5 
Ana   3.5-4.0 

因为当我尝试采取的统计数据GPA所有的垃圾箱都是基于实际的GPA分隔。例如,我试图找出有多少学生比3.5高,GPA在3.0-3.5之间等等的百分比。但是,根据实际的GPA得出百分比,并且当您有4000个数据点时,所有GPA都不同,很难确定有多少GPA高于3.5等等?这有意义吗?对不起,如果没有。

+3

您是否尝试过使用'cut' –

+0

http://stackoverflow.com/questions/23664942/r-split-data-into-categories – jogo

回答

5

您可以使用cut()函数将数据拆分为您定义的仓。你必须小心谨慎地落在边界上的价值观,并确保他们得到了你想要的待遇。有了您的示例数据:

> df$GPA_split = cut(df$GPA, breaks = c(3.0, 3.5, 4.0), include.lowest = TRUE) 
> df 
    Student GPA GPA_split 
1  Jim 3.00 [3,3.5] 
2  Tom 3.29 [3,3.5] 
3  Ana 3.99 (3.5,4] 
# Count values in each bin 
> table(df$GPA_split) 

[3,3.5] (3.5,4] 
     2  1