以R为间隔对数据分组

时间:2018-07-27 11:21:42

标签: r grouping intervals

是否可以对数据进行分组并获取间隔? 例如,我有一个这样的数据(实际上,我有更长的数据):

score        class
2,100           1
8,600           3
2,600           1
5,200           2
92,900          7
10,500          3
37,500          5

所以我想按班级分组,这样可以向我显示数据间隔,例如:

class interval
1     0.1-4.3
2     4.4-7.3 etc

在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我无法复制您建议的结果,但是根据我建议的文字:

library(dplyr)
data %>% 
  group_by(class) %>% 
  summarise(range = paste0(min(score), " - ", max(score)))

输出为:

# A tibble: 5 x 2
  class range        
  <int> <chr>        
1     1 2100 - 2600  
2     2 5200 - 5200  
3     3 8600 - 10500 
4     5 37500 - 37500
5     7 92900 - 92900

答案 1 :(得分:0)

当然,您可以在score内获得class的范围。

set.seed(357)
xy <- data.frame(score = runif(10), class = sample(1:3, size = 10, replace = TRUE))
xy

aggregate(score ~ class, FUN = range, data = xy)

  class    score.1    score.2
1     1 0.22486212 0.93373648
2     2 0.05504568 0.99134086
3     3 0.74745869 0.77839970

也许

aggregate(score ~ class, data = xy, FUN = function(x) {
  paste(round(range(x), 3), collapse = " - ")
})

  class         score
1     1 0.225 - 0.934
2     2 0.055 - 0.991
3     3 0.747 - 0.778