我需要在连续变量上应用cut
,以使其在ggplot2中以Brewer色标显示,如Setting breakpoints for data with scale_fill_brewer() function in ggplot2所示。连续变量是一个相对的差异,我想将数据格式设置为“ 18.2%”而不是“ 0.182”。有没有简单的方法可以做到这一点?
x <- runif(100)
levels(cut(x, breaks=10))
[1] "(0.0223,0.12]" "(0.12,0.218]" "(0.218,0.315]" "(0.315,0.413]"
[5] "(0.413,0.511]" "(0.511,0.608]" "(0.608,0.706]" "(0.706,0.804]"
[9] "(0.804,0.901]" "(0.901,0.999]"
我想例如第一个级别显示为
(2.23 %, 12 %]
。有没有更好的替代方法?
最佳答案
我已经在cut_format()
软件包的0.2-3版本中实现了kimisc
,现在CRAN上的版本是0.3。
# devtools::install_github("krlmlr/kimisc")
x <- seq(0.1, 0.9, by = 0.2)
breaks <- seq(0, 1, by = 0.25)
cut(x, breaks)
## [1] (0,0.25] (0.25,0.5] (0.25,0.5] (0.5,0.75] (0.75,1]
## Levels: (0,0.25] (0.25,0.5] (0.5,0.75] (0.75,1]
cut_format(x, breaks, format_fun = scales::percent)
## [1] (0%, 25%] (25%, 50%] (25%, 50%] (50%, 75%] (75%, 100%]
## Levels: (0%, 25%] (25%, 50%] (50%, 75%] (75%, 100%]
它仍然不是完美的,无法传递中断数(如原始示例中所示)。
关于r - 将cut()产生的标签格式化为百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14456371/