我想创建连续变量的间隔(离散/ bin)以使用ggplot绘制等值区域图。在阅读各种线程后,我决定使用cut
和quantile
来消除以下问题:a)手动创建箱子,以及b)处理支配状态(否则,我必须手动创建箱子并看到地图并重新调整垃圾箱)。
但是,我现在面临另一个问题。来自cut
的间隔时间很少。所以,我正在尝试按照此example和此example来提出我的漂亮标签。
这是我的清单:
x <- seq(1,50)
圆形分位数:
qs_x <- round(quantile(x, probs=c(seq(0,0.8,by=0.2),0.9)))
结果:
0% 20% 40% 60% 80% 90%
1 11 21 30 40 45
使用这些剪辑,我想提出这些标签:
1-11, 12-21, 22-30, 31-40, 41-45, 45+
我确信使用某些apply
函数转换列表有一个简单的解决方案,但我并不熟悉这些函数。
帮助表示赞赏。
答案 0 :(得分:2)
3-liner产生您想要的输出,而不使用apply
。
labels <- paste(qs_x+1, qs_x[-1], sep="-")
labels[1] <- paste(qs_x[1], qs_x[2], sep="-")
labels[length(labels)] <- paste(tail(qs_x, 1), "+", sep = "")
第一行构造(x1 + 1) - x2
形式的标签,第二行修复第一个标签,第三行修复最后一个标签。这是输出
> labels
[1] "1-11" "12-21" "22-30" "31-40" "41-45" "45+"