thomasp85/gganimate

`transition_states()` returns error when there are factor levels not in the dataset

maxdrohde opened this issue · 1 comments

I tried rerunning a blog post from a few months ago and I ran into this error. This seemed to work a few months ago, so not sure if there was a breaking change in a package?

Minimal Example

library(tidyverse)
library(gganimate)
library(sf)

# Read example data from the SF package
nc <- st_read(system.file("shape/nc.shp", package="sf"))

# Create an arbitrary index for the animation and make it a factor
nc$index <- factor(1:nrow(nc))

# Add 3 extra levels to the factor
levels(nc$index) <- 1:(length(nc$index) + 3)

# This works
 nc |>
  ggplot() +
  geom_sf() +
  transition_manual(index)

# This doesn't work
nc |>
  ggplot() +
  geom_sf() +
  transition_states(index)

# Error in seq_len(nrow(data)) : 
# argument must be coercible to non-negative integer
# In addition: Warning message:
# In seq_len(nrow(data)) : first element used of 'length.out' argument

Session Info

> devtools::session_info()
─ Session info ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.2.1 (2022-06-23)
 os       macOS Monterey 12.6
 system   x86_64, darwin17.0
 ui       RStudio
 language (EN)
 collate  en_US.UTF-8
 ctype    en_US.UTF-8
 tz       America/Chicago
 date     2022-10-26
 rstudio  2022.07.2+576 Spotted Wakerobin (desktop)
 pandoc   2.19.2 @ /usr/local/bin/pandoc

─ Packages ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 package       * version    date (UTC) lib source
 assertthat      0.2.1      2019-03-21 [1] CRAN (R 4.2.0)
 backports       1.4.1      2021-12-13 [1] CRAN (R 4.2.0)
 broom           1.0.1      2022-08-29 [1] CRAN (R 4.2.0)
 cachem          1.0.6      2021-08-19 [1] CRAN (R 4.2.0)
 callr           3.7.2      2022-08-22 [1] CRAN (R 4.2.0)
 cellranger      1.1.0      2016-07-27 [1] CRAN (R 4.2.0)
 class           7.3-20     2022-01-16 [1] CRAN (R 4.2.1)
 classInt        0.4-8      2022-09-29 [1] CRAN (R 4.2.0)
 cli             3.4.1      2022-09-23 [1] CRAN (R 4.2.0)
 colorspace      2.0-3      2022-02-21 [1] CRAN (R 4.2.0)
 crayon          1.5.2      2022-09-29 [1] CRAN (R 4.2.0)
 DBI             1.1.3      2022-06-18 [1] CRAN (R 4.2.0)
 dbplyr          2.2.1      2022-06-27 [1] CRAN (R 4.2.0)
 devtools        2.4.5      2022-10-11 [1] CRAN (R 4.2.0)
 digest          0.6.30     2022-10-18 [1] CRAN (R 4.2.0)
 dplyr         * 1.0.10     2022-09-01 [1] CRAN (R 4.2.0)
 e1071           1.7-12     2022-10-24 [1] CRAN (R 4.2.1)
 ellipsis        0.3.2      2021-04-29 [1] CRAN (R 4.2.0)
 fansi           1.0.3      2022-03-24 [1] CRAN (R 4.2.0)
 farver          2.1.1      2022-07-06 [1] CRAN (R 4.2.0)
 fastmap         1.1.0      2021-01-25 [1] CRAN (R 4.2.0)
 forcats       * 0.5.2      2022-08-19 [1] CRAN (R 4.2.0)
 fs              1.5.2      2021-12-08 [1] CRAN (R 4.2.0)
 gargle          1.2.1      2022-09-08 [1] CRAN (R 4.2.0)
 generics        0.1.3      2022-07-05 [1] CRAN (R 4.2.0)
 gganimate     * 1.0.8.9000 2022-10-27 [1] Github (thomasp85/gganimate@7cd46dc)
 ggplot2       * 3.3.6      2022-05-03 [1] CRAN (R 4.2.0)
 glue            1.6.2      2022-02-24 [1] CRAN (R 4.2.0)
 googledrive     2.0.0      2021-07-08 [1] CRAN (R 4.2.0)
 googlesheets4   1.0.1      2022-08-13 [1] CRAN (R 4.2.0)
 gtable          0.3.1      2022-09-01 [1] CRAN (R 4.2.0)
 haven           2.5.1      2022-08-22 [1] CRAN (R 4.2.0)
 hms             1.1.2      2022-08-19 [1] CRAN (R 4.2.0)
 htmltools       0.5.3      2022-07-18 [1] CRAN (R 4.2.0)
 htmlwidgets     1.5.4      2021-09-08 [1] CRAN (R 4.2.0)
 httpuv          1.6.6      2022-09-08 [1] CRAN (R 4.2.0)
 httr            1.4.4      2022-08-17 [1] CRAN (R 4.2.0)
 jsonlite        1.8.3      2022-10-21 [1] CRAN (R 4.2.0)
 KernSmooth      2.23-20    2021-05-03 [1] CRAN (R 4.2.1)
 later           1.3.0      2021-08-18 [1] CRAN (R 4.2.0)
 lifecycle       1.0.3      2022-10-07 [1] CRAN (R 4.2.0)
 lpSolve         5.6.17     2022-10-10 [1] CRAN (R 4.2.0)
 lubridate       1.8.0      2021-10-07 [1] CRAN (R 4.2.0)
 magick          2.7.3      2021-08-18 [1] CRAN (R 4.2.0)
 magrittr        2.0.3      2022-03-30 [1] CRAN (R 4.2.0)
 memoise         2.0.1      2021-11-26 [1] CRAN (R 4.2.0)
 mime            0.12       2021-09-28 [1] CRAN (R 4.2.0)
 miniUI          0.1.1.1    2018-05-18 [1] CRAN (R 4.2.0)
 modelr          0.1.9      2022-08-19 [1] CRAN (R 4.2.0)
 munsell         0.5.0      2018-06-12 [1] CRAN (R 4.2.0)
 pillar          1.8.1      2022-08-19 [1] CRAN (R 4.2.0)
 pkgbuild        1.3.1      2021-12-20 [1] CRAN (R 4.2.0)
 pkgconfig       2.0.3      2019-09-22 [1] CRAN (R 4.2.0)
 pkgload         1.3.0      2022-06-27 [1] CRAN (R 4.2.0)
 prettyunits     1.1.1      2020-01-24 [1] CRAN (R 4.2.0)
 processx        3.7.0      2022-07-07 [1] CRAN (R 4.2.0)
 profvis         0.3.7      2020-11-02 [1] CRAN (R 4.2.0)
 progress        1.2.2      2019-05-16 [1] CRAN (R 4.2.0)
 promises        1.2.0.1    2021-02-11 [1] CRAN (R 4.2.0)
 proxy           0.4-27     2022-06-09 [1] CRAN (R 4.2.0)
 ps              1.7.1      2022-06-18 [1] CRAN (R 4.2.0)
 purrr         * 0.3.5      2022-10-06 [1] CRAN (R 4.2.0)
 R6              2.5.1      2021-08-19 [1] CRAN (R 4.2.0)
 Rcpp            1.0.9      2022-07-08 [1] CRAN (R 4.2.0)
 readr         * 2.1.3      2022-10-01 [1] CRAN (R 4.2.0)
 readxl          1.4.1      2022-08-17 [1] CRAN (R 4.2.0)
 remotes         2.4.2      2021-11-30 [1] CRAN (R 4.2.0)
 reprex          2.0.2      2022-08-17 [1] CRAN (R 4.2.0)
 rlang           1.0.6      2022-09-24 [1] CRAN (R 4.2.0)
 rstudioapi      0.14       2022-08-22 [1] CRAN (R 4.2.0)
 rvest           1.0.3      2022-08-19 [1] CRAN (R 4.2.0)
 s2              1.1.0      2022-07-18 [1] CRAN (R 4.2.0)
 scales          1.2.1      2022-08-20 [1] CRAN (R 4.2.0)
 sessioninfo     1.2.2      2021-12-06 [1] CRAN (R 4.2.0)
 sf            * 1.0-8      2022-07-14 [1] CRAN (R 4.2.0)
 shiny           1.7.2      2022-07-19 [1] CRAN (R 4.2.0)
 stringi         1.7.8      2022-07-11 [1] CRAN (R 4.2.0)
 stringr       * 1.4.1      2022-08-20 [1] CRAN (R 4.2.0)
 tibble        * 3.1.8      2022-07-22 [1] CRAN (R 4.2.0)
 tidyr         * 1.2.1      2022-09-08 [1] CRAN (R 4.2.0)
 tidyselect      1.2.0      2022-10-10 [1] CRAN (R 4.2.0)
 tidyverse     * 1.3.2      2022-07-18 [1] CRAN (R 4.2.0)
 transformr      0.1.4.9000 2022-10-27 [1] Github (thomasp85/transformr@edea9ce)
 tweenr          2.0.2      2022-09-06 [1] CRAN (R 4.2.0)
 tzdb            0.3.0      2022-03-28 [1] CRAN (R 4.2.0)
 units           0.8-0      2022-02-05 [1] CRAN (R 4.2.0)
 urlchecker      1.0.1      2021-11-30 [1] CRAN (R 4.2.0)
 usethis         2.1.6      2022-05-25 [1] CRAN (R 4.2.0)
 utf8            1.2.2      2021-07-24 [1] CRAN (R 4.2.0)
 vctrs           0.5.0      2022-10-22 [1] CRAN (R 4.2.0)
 withr           2.5.0      2022-03-03 [1] CRAN (R 4.2.0)
 wk              0.7.0      2022-10-13 [1] CRAN (R 4.2.0)
 xml2            1.3.3      2021-11-30 [1] CRAN (R 4.2.0)
 xtable          1.8-4      2019-04-21 [1] CRAN (R 4.2.0)

 [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library

Should now work with dev gganimate, dev tweenr, and dev transformr 😅