如何在r中按范围分组?

如何在r中按范围分组?,r,dplyr,group-by,R,Dplyr,Group By,我想按200把这些行分组。例如,我想根据最小值将+200分为一组。下一组按下一个最小值最多+200分组 以下是一个数据集: data <- data.frame(data = c(10, 110, 1011, 1622, 1822, 2311, 2373, 2388, 6233, 6433)) data 1 10 2 110 3 1011 4 1622 5 1822 6 2311 7 2373

我想按200把这些行分组。例如,我想根据最小值将+200分为一组。下一组按下一个最小值最多+200分组

以下是一个数据集:

data <- data.frame(data = c(10, 110, 1011, 1622, 1822, 2311, 2373, 2388, 6233, 6433))

   data
1   10  
2   110  
3   1011 
4   1622  
5   1822          
6   2311  
7   2373           
8   2388          
9   6233   
10  6433       


data$group <- c(1, 1, 2, 3, 3, 4, 4, 4, 5, 5)

  data     group
1   10       1        #(group: 1, range:10~200)
2   110      1        
3   1011     2        #(group: 2, range:1011~1211)
4   1622     3        #(group: 3, range:1622~1822)
5   1822     3         
6   2311     4        #(group: 4, range:2311~2511) 
7   2373     4         
8   2388     4        
9   6233     5        #(group: 5, range:6233~6433) 
10  6433     5       

data这里有一个基本R选项,使用
while
循环:

data$group <- NA
group <- 1
min_val <- data$data[1]
next_val <- min_val + 200  
i <- 1

while(i <= nrow(data)) {
  if(data$data[i] > next_val) {
    min_val <- data$data[i]
    next_val <- min_val + 200  
    group <- group + 1
  }
  data$group[i] <- group
  i <- i + 1
}

data
#   data group
#1    10     1
#2   110     1
#3  1011     2
#4  1622     3
#5  1822     3
#6  2311     4
#7  2373     4
#8  2388     4
#9  6233     5
#10 6433     5

data$group这里是一个使用
while
循环的基本R选项:

data$group <- NA
group <- 1
min_val <- data$data[1]
next_val <- min_val + 200  
i <- 1

while(i <= nrow(data)) {
  if(data$data[i] > next_val) {
    min_val <- data$data[i]
    next_val <- min_val + 200  
    group <- group + 1
  }
  data$group[i] <- group
  i <- i + 1
}

data
#   data group
#1    10     1
#2   110     1
#3  1011     2
#4  1622     3
#5  1822     3
#6  2311     4
#7  2373     4
#8  2388     4
#9  6233     5
#10 6433     5
data$group