如何在r中按范围分组?
我想按200把这些行分组。例如,我想根据最小值将+200分为一组。下一组按下一个最小值最多+200分组 以下是一个数据集:如何在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
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