R 将数据划分为大小相等的组
我想把我的数据分成不同的类,每个类的宽度为10 例如: 第一数据R 将数据划分为大小相等的组,r,cut,bin,R,Cut,Bin,我想把我的数据分成不同的类,每个类的宽度为10 例如: 第一数据 variable 10 20 33 23 8 14 16 40 新数据 variable classify group classify 10 10-20 2 20 20-30 3 33 30-40 4 23
variable
10
20
33
23
8
14
16
40
新数据
variable classify group classify
10 10-20 2
20 20-30 3
33 30-40 4
23 20-30 3
8 0-10 1
14 10-20 2
16 10-20 2
40 40-50 5
使用
cut
并按10
中断。但要注意间隔的终点
brks <- seq(from = min(variable %/% 10) * 10,
to = (max(variable %/% 10) + 1) * 10,
by = 10)
classify <- cut(variable, breaks = brks, include.lowest = TRUE, right = FALSE)
group <- match(classify, levels(classify))
data.frame(variable, classify, group)
# variable classify group
#1 10 [10,20) 2
#2 20 [20,30) 3
#3 33 [30,40) 4
#4 23 [20,30) 3
#5 8 [0,10) 1
#6 14 [10,20) 2
#7 16 [10,20) 2
#8 40 [40,50] 5
您可以使用
floor
功能:
df$group_classify <- floor(df$variable/10) + 1
df$classify <- paste((df$group_classify - 1) * 10,
df$group_classify * 10, sep = '-')
df
# variable group_classify classify
#1 10 2 10-20
#2 20 3 20-30
#3 33 4 30-40
#4 23 3 20-30
#5 8 1 0-10
#6 14 2 10-20
#7 16 2 10-20
#8 40 5 40-50
df$group\u使用cut
功能
variable <- c(10, 20, 33, 23, 8, 14, 16, 40)
df$group_classify <- floor(df$variable/10) + 1
df$classify <- paste((df$group_classify - 1) * 10,
df$group_classify * 10, sep = '-')
df
# variable group_classify classify
#1 10 2 10-20
#2 20 3 20-30
#3 33 4 30-40
#4 23 3 20-30
#5 8 1 0-10
#6 14 2 10-20
#7 16 2 10-20
#8 40 5 40-50
df <- structure(list(variable = c(10, 20, 33, 23, 8, 14, 16, 40)),
class = "data.frame", row.names = c(NA, -8L))