如何使用if语句分割数据?

时间:2017-04-05 06:32:37

标签: r

我在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等等?这有意义吗?对不起,如果没有。

1 个答案:

答案 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