我在R中有一个涉及学生和GPA的数据集,例如
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等等?这有意义吗?对不起,如果没有。
答案 0 :(得分: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