-
Notifications
You must be signed in to change notification settings - Fork 109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
label_number
error when including scale_cut
argument
#413
Comments
I was just about to post the same issue. Adding reprex here in case it helps: library(tidyverse)
library(scales)
# Error
tibble(x = seq(1, 10, 1),
y = seq(10, 9010, 1000)) |>
ggplot(aes(x, y)) +
geom_line() +
scale_y_continuous(labels = label_currency(scale_cut = cut_short_scale()))
#> Error in break_suffix[bad_break][improved_break & !power10_break] <- names(lower_break[improved_break & : NAs are not allowed in subscripted assignments
# Work Okay
tibble(x = seq(0, 10, 1),
y = 10 ^ (0:10)) |>
ggplot(aes(x, y)) +
geom_line() +
scale_y_log10(labels = label_currency(scale_cut = cut_short_scale())) tibble(x = seq(0, 10, 1),
y = 10 ^ (0:10)) |>
ggplot(aes(x, y)) +
geom_line() +
scale_y_continuous(labels = label_currency(scale_cut = cut_short_scale())) tibble(x = seq(1, 10, 1),
y = seq(10, 9010, 1000)) |>
ggplot(aes(x, y)) +
geom_line() +
scale_y_log10(labels = label_currency(scale_cut = cut_short_scale())) Created on 2023-12-03 with reprex v2.0.2 Session infosessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.3.2 (2023-10-31)
#> os macOS Sonoma 14.1.2
#> system aarch64, darwin20
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz Europe/London
#> date 2023-12-03
#> pandoc 3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> cli 3.6.1 2023-03-23 [1] CRAN (R 4.3.0)
#> colorspace 2.1-0 2023-01-23 [1] CRAN (R 4.3.0)
#> curl 5.1.0 2023-10-02 [2] CRAN (R 4.3.1)
#> digest 0.6.33 2023-07-07 [1] CRAN (R 4.3.0)
#> dplyr * 1.1.4 2023-11-17 [1] CRAN (R 4.3.1)
#> evaluate 0.23 2023-11-01 [2] CRAN (R 4.3.1)
#> fansi 1.0.5 2023-10-08 [1] CRAN (R 4.3.1)
#> farver 2.1.1 2022-07-06 [1] CRAN (R 4.3.0)
#> fastmap 1.1.1 2023-02-24 [2] CRAN (R 4.3.0)
#> forcats * 1.0.0 2023-01-29 [2] CRAN (R 4.3.0)
#> fs 1.6.3 2023-07-20 [2] CRAN (R 4.3.0)
#> generics 0.1.3 2022-07-05 [1] CRAN (R 4.3.0)
#> ggplot2 * 3.4.4 2023-10-12 [1] CRAN (R 4.3.1)
#> glue 1.6.2 2022-02-24 [1] CRAN (R 4.3.0)
#> gtable 0.3.4 2023-08-21 [1] CRAN (R 4.3.0)
#> highr 0.10 2022-12-22 [2] CRAN (R 4.3.0)
#> hms 1.1.3 2023-03-21 [2] CRAN (R 4.3.0)
#> htmltools 0.5.7 2023-11-03 [2] CRAN (R 4.3.1)
#> knitr 1.45 2023-10-30 [2] CRAN (R 4.3.1)
#> labeling 0.4.3 2023-08-29 [1] CRAN (R 4.3.0)
#> lifecycle 1.0.4 2023-11-07 [1] CRAN (R 4.3.1)
#> lubridate * 1.9.3 2023-09-27 [1] CRAN (R 4.3.1)
#> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.3.0)
#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.3.0)
#> pillar 1.9.0 2023-03-22 [1] CRAN (R 4.3.0)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.3.0)
#> purrr * 1.0.2 2023-08-10 [1] CRAN (R 4.3.0)
#> R.cache 0.16.0 2022-07-21 [2] CRAN (R 4.3.0)
#> R.methodsS3 1.8.2 2022-06-13 [2] CRAN (R 4.3.0)
#> R.oo 1.25.0 2022-06-12 [2] CRAN (R 4.3.0)
#> R.utils 2.12.3 2023-11-18 [2] CRAN (R 4.3.1)
#> R6 2.5.1 2021-08-19 [1] CRAN (R 4.3.0)
#> readr * 2.1.4 2023-02-10 [2] CRAN (R 4.3.0)
#> reprex 2.0.2 2022-08-17 [2] CRAN (R 4.3.0)
#> rlang 1.1.2 2023-11-04 [1] CRAN (R 4.3.1)
#> rmarkdown 2.25 2023-09-18 [2] CRAN (R 4.3.1)
#> rstudioapi 0.15.0 2023-07-07 [2] CRAN (R 4.3.0)
#> scales * 1.3.0 2023-11-28 [1] CRAN (R 4.3.1)
#> sessioninfo 1.2.2 2021-12-06 [2] CRAN (R 4.3.0)
#> stringi 1.8.2 2023-11-23 [1] CRAN (R 4.3.1)
#> stringr * 1.5.1 2023-11-14 [1] CRAN (R 4.3.1)
#> styler 1.10.2 2023-08-29 [2] CRAN (R 4.3.0)
#> tibble * 3.2.1 2023-03-20 [1] CRAN (R 4.3.0)
#> tidyr * 1.3.0 2023-01-24 [1] CRAN (R 4.3.0)
#> tidyselect 1.2.0 2022-10-10 [1] CRAN (R 4.3.0)
#> tidyverse * 2.0.0 2023-02-22 [2] CRAN (R 4.3.0)
#> timechange 0.2.0 2023-01-11 [1] CRAN (R 4.3.0)
#> tzdb 0.4.0 2023-05-12 [1] CRAN (R 4.3.0)
#> utf8 1.2.4 2023-10-22 [1] CRAN (R 4.3.1)
#> vctrs 0.6.5 2023-12-01 [1] CRAN (R 4.3.1)
#> withr 2.5.2 2023-10-30 [1] CRAN (R 4.3.1)
#> xfun 0.41 2023-11-01 [2] CRAN (R 4.3.1)
#> xml2 1.3.5 2023-07-06 [2] CRAN (R 4.3.0)
#> yaml 2.3.7 2023-01-23 [2] CRAN (R 4.3.0)
#>
#> [1] /Users/carlgoodwin/Library/R/arm64/4.3/library
#> [2] /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library
#>
#> ────────────────────────────────────────────────────────────────────────────── |
Same issue here, CONFIRMED IT IS SOLVED BY ROLLING BACK TO Scales v1.2.1 Error messageError in break_suffix[bad_break][improved_break & !power10_break] <- names(lower_break[improved_break & : NAs are not allowed in subscripted assignments |
Yeah, Same issue with
With
|
Same issue with other data, and I confirm that rolling back to 1.2.1 solves the problem |
How to roll back to Scales v1.2.1? |
@msgoussi I used this post as guidance https://www.r-bloggers.com/2021/01/installing-older-version-of-a-package/ |
Clearly looks like unintended behavior to me. scales 1.3.0scales::label_number(scale_cut = scales::cut_short_scale())(c(0,1000,2000))
#> [1] "0" "1K" "2K"
scales::label_number(scale_cut = scales::cut_short_scale())(c(0,500,1500,2000,2500))
#> Error in break_suffix[bad_break][improved_break & !power10_break] <- names(lower_break[improved_break & : NAs are not allowed in subscripted assignments scales 1.2.1scales::label_number(scale_cut = scales::cut_short_scale())(c(0,1000,2000))
#> [1] "0" "1K" "2K"
scales::label_number(scale_cut = scales::cut_short_scale())(c(0,500,1500,2000,2500))
#> [1] "0" "500" "1.5K" "2.0K" "2.5K" Created on 2023-12-17 with reprex v2.0.2 |
Some more thoughtsIt seems like the problem comes from this line of code in the function lower_break <- breaks[match(break_suffix[bad_break], names(breaks)) - 1] In my example above It might be sufficient to add one more line and make it: lower_break <- breaks[match(break_suffix[bad_break], names(breaks)) - 1]
lower_break[lower_break == 0] <- 1 |
Have encountered the same problem while using ggplot with scale_y_continuous. Have found a workaround that fixed it for me. library(tidyverse)
# Error in break_suffix[bad_break][improved_break & !power10_break] <- names(lower_break[improved_break & :
# NAs are not allowed in subscripted assignments
tibble(
x = 1:3,
y = as.integer(c(12312, 11931, 11185))
) |>
ggplot() +
geom_col(
aes(x = x, y = y),
) +
scale_y_continuous(
label = scales::label_number(scale_cut = scales::cut_short_scale()),
)
# Workaround: Adding a 1 between 0 and 1000 in the result of scales_cut_short() fixes the error.
library(tidyverse)
tibble(
x = 1:3,
y = as.integer(c(12312, 11931, 11185))
) |>
ggplot() +
geom_col(
aes(x = x, y = y),
) +
scale_y_continuous(
label = scales::label_number(scale_cut = append(scales::cut_short_scale(), 1, 1)),
) |
Hi.. namespace ‘scales’ 1.2.1 is already loaded, but >= 1.3.0 is required please advise. |
I have used devtools::install_github("r-lib/scales", ref = "c0f79d3") and it is working fine |
Also running into this with a basic reprex: scales::label_number(big.mark = ",", scale_cut = scales::cut_long_scale(TRUE))(range(palmerpenguins::penguins$body_mass_g, na.rm = TRUE))
#> Error in break_suffix[bad_break][improved_break & !power10_break] <- names(lower_break[improved_break & : NAs are not allowed in subscripted assignments
scales::label_number(big.mark = ",")(range(palmerpenguins::penguins$body_mass_g, na.rm = TRUE))
#> [1] "2,700" "6,300" Created on 2024-08-22 with reprex v2.1.0 |
Error occurs when supplying
scale_cut
argument&&
number input actually cut (i.e.,1,000 -> 1K
).For example, no error thrown when number input does not need cutting:
Error thrown when number input requires cutting:
Created on 2023-11-29 with reprex v2.0.2
The text was updated successfully, but these errors were encountered: