我有一个如下数据框,我可以使用以下代码获取分箱列
df$bins<- cut(df$Col_1, breaks = c(0, seq(0.1, 25, by = 5)), labels = 0:4)
Date Name Col_1 Bins
05-11-2016 B 1 1
05-11-2016 B 2 1
05-11-2016 B 3 1
05-11-2016 B 4 1
05-11-2016 B 5 1
05-11-2016 B 6 2
05-11-2016 B 7 2
05-11-2016 B 8 2
05-11-2016 B 9 2
05-11-2016 B 10 2
05-11-2016 B 11 3
05-11-2016 A 12 3
05-11-2016 A 16 4
现在如何获取分箱间隔和min_bin和max_bin如下
Date.Time Name Col_1 Binn_claculated Binn_interval min_bin max_bin
05-11-2016 B 1 1 -1,5 1 5
05-11-2016 B 2 1 -1,5 1 5
05-11-2016 B 3 1 -1,5 1 5
05-11-2016 B 4 1 -1,5 1 5
05-11-2016 B 5 1 -1,5 1 5
05-11-2016 B 6 2 -6,1 6 10
05-11-2016 B 7 2 -6,1 6 10
05-11-2016 B 8 2 -6,1 6 10
05-11-2016 B 9 2 -6,1 6 10
05-11-2016 B 10 2 -6,1 6 10
05-11-2016 B 11 3 -11,15 11 15
05-11-2016 A 12 3 -11,15 11 15
05-11-2016 A 16 4 -16,2 16 20
提前致谢
答案 0 :(得分:1)
从你得到的,你可以做到
funs <- setNames(list(min, max), c("min", "max"))
df <- cbind(df, lapply(funs, function(f) ave(df$Col_1, df$bins, FUN = f)))
并添加间隔(原文如此),您可以这样做:
df$interval <- with(df, sprintf('(%s,%s)', min, max))
df
# Date Name Col_1 bins min max interval
# 1 05-11-2016 B 1 1 1 5 (1,5)
# 2 05-11-2016 B 2 1 1 5 (1,5)
# 3 05-11-2016 B 3 1 1 5 (1,5)
# 4 05-11-2016 B 4 1 1 5 (1,5)
# 5 05-11-2016 B 5 1 1 5 (1,5)
# 6 05-11-2016 B 6 2 6 10 (6,10)
# 7 05-11-2016 B 7 2 6 10 (6,10)
# 8 05-11-2016 B 8 2 6 10 (6,10)
# 9 05-11-2016 B 9 2 6 10 (6,10)
# 10 05-11-2016 B 10 2 6 10 (6,10)
# 11 05-11-2016 B 11 3 11 12 (11,12)
# 12 05-11-2016 A 12 3 11 12 (11,12)
# 13 05-11-2016 A 16 4 16 16 (16,16)