Skip to content

Instantly share code, notes, and snippets.

@dpastoor
Created February 6, 2017 21:18
Show Gist options
  • Save dpastoor/59d1f325df9177eb7db82fb566427842 to your computer and use it in GitHub Desktop.
Save dpastoor/59d1f325df9177eb7db82fb566427842 to your computer and use it in GitHub Desktop.
original comment
Reproducible example:
code:
```
library(tidyverse)
df <- tibble::data_frame(ID = rep(c("A", "B"), each = 5), TIME = hms::hms(hours = 1:10),
some_na = c(1, NA, 3:10))
df
# this will work fine
df %>% fill(some_na)
# this will turn the TIME column into double, even though not even filled
df %>% group_by(ID) %>% fill(some_na)
devtools::session_info()
```
Code run through reprex:
```
library(tidyverse)
#> Loading tidyverse: ggplot2
#> Loading tidyverse: tibble
#> Loading tidyverse: tidyr
#> Loading tidyverse: readr
#> Loading tidyverse: purrr
#> Loading tidyverse: dplyr
#> Conflicts with tidy packages ----------------------------------------------
#> filter(): dplyr, stats
#> lag(): dplyr, stats
df <- tibble::data_frame(ID = rep(c("A", "B"), each = 5), TIME = hms::hms(hours = 1:10),
some_na = c(1, NA, 3:10))
df
#> # A tibble: 10 C 3
#> ID TIME some_na
#> <chr> <time> <dbl>
#> 1 A 01:00:00 1
#> 2 A 02:00:00 NA
#> 3 A 03:00:00 3
#> 4 A 04:00:00 4
#> 5 A 05:00:00 5
#> 6 B 06:00:00 6
#> 7 B 07:00:00 7
#> 8 B 08:00:00 8
#> 9 B 09:00:00 9
#> 10 B 10:00:00 10
df %>% fill(some_na)
#> # A tibble: 10 C 3
#> ID TIME some_na
#> <chr> <time> <dbl>
#> 1 A 01:00:00 1
#> 2 A 02:00:00 1
#> 3 A 03:00:00 3
#> 4 A 04:00:00 4
#> 5 A 05:00:00 5
#> 6 B 06:00:00 6
#> 7 B 07:00:00 7
#> 8 B 08:00:00 8
#> 9 B 09:00:00 9
#> 10 B 10:00:00 10
df %>% group_by(ID) %>% fill(some_na)
#> Source: local data frame [10 x 3]
#> Groups: ID [2]
#>
#> ID TIME some_na
#> <chr> <dbl> <dbl>
#> 1 A 3600 1
#> 2 A 7200 1
#> 3 A 10800 3
#> 4 A 14400 4
#> 5 A 18000 5
#> 6 B 21600 6
#> 7 B 25200 7
#> 8 B 28800 8
#> 9 B 32400 9
#> 10 B 36000 10
devtools::session_info()
#> Session info -------------------------------------------------------------
#> setting value
#> version R version 3.3.2 (2016-10-31)
#> system x86_64, mingw32
#> ui RTerm
#> language (EN)
#> collate English_United States.1252
#> tz America/New_York
#> date 2017-02-05
#> Packages -----------------------------------------------------------------
#> package * version date source
#> assertthat 0.1 2013-12-06 CRAN (R 3.3.2)
#> backports 1.0.5 2017-01-18 CRAN (R 3.3.2)
#> broom 0.4.1 2016-06-24 CRAN (R 3.3.1)
#> colorspace 1.3-2 2016-12-14 CRAN (R 3.3.2)
#> DBI 0.5-1 2016-09-10 CRAN (R 3.3.2)
#> devtools 1.12.0.9000 2017-02-05 Github (hadley/devtools@d8ab190)
#> digest 0.6.12 2017-01-27 CRAN (R 3.3.2)
#> dplyr * 0.5.0 2016-06-24 CRAN (R 3.3.2)
#> evaluate 0.10 2016-10-11 CRAN (R 3.3.2)
#> forcats 0.2.0 2017-01-23 CRAN (R 3.3.2)
#> foreign 0.8-67 2016-09-13 CRAN (R 3.3.2)
#> ggplot2 * 2.2.1 2016-12-30 CRAN (R 3.3.2)
#> gtable 0.2.0 2016-02-26 CRAN (R 3.3.2)
#> haven 1.0.0 2016-09-23 CRAN (R 3.3.2)
#> hms 0.3 2016-11-22 CRAN (R 3.3.2)
#> htmltools 0.3.5 2016-03-21 CRAN (R 3.3.2)
#> httr 1.2.1 2016-07-03 CRAN (R 3.3.2)
#> jsonlite 1.2 2016-12-31 CRAN (R 3.3.2)
#> knitr 1.15.1 2016-11-22 CRAN (R 3.3.2)
#> lattice 0.20-34 2016-09-06 CRAN (R 3.3.2)
#> lazyeval 0.2.0 2016-06-12 CRAN (R 3.3.2)
#> lubridate 1.6.0 2016-09-13 CRAN (R 3.3.2)
#> magrittr 1.5 2014-11-22 CRAN (R 3.3.2)
#> memoise 1.0.0 2016-01-29 CRAN (R 3.3.2)
#> mnormt 1.5-5 2016-10-15 CRAN (R 3.3.2)
#> modelr 0.1.0 2016-08-31 CRAN (R 3.3.2)
#> munsell 0.4.3 2016-02-13 CRAN (R 3.3.2)
#> nlme 3.1-128 2016-05-10 CRAN (R 3.3.2)
#> pkgbuild 0.0.0.9000 2017-02-05 Github (r-pkgs/pkgbuild@65eace0)
#> pkgload 0.0.0.9000 2017-02-05 Github (r-pkgs/pkgload@def2b10)
#> plyr 1.8.4 2016-06-08 CRAN (R 3.3.2)
#> psych 1.6.12 2017-01-08 CRAN (R 3.3.2)
#> purrr * 0.2.2 2016-06-18 CRAN (R 3.3.2)
#> R6 2.2.0 2016-10-05 CRAN (R 3.3.2)
#> Rcpp 0.12.9 2017-01-14 CRAN (R 3.3.2)
#> readr * 1.0.0 2016-08-03 CRAN (R 3.3.2)
#> readxl 0.1.1 2016-03-28 CRAN (R 3.3.2)
#> reshape2 1.4.2 2016-10-22 CRAN (R 3.3.2)
#> rmarkdown 1.3.9002 2017-02-05 Github (rstudio/rmarkdown@c4908dc)
#> rprojroot 1.2 2017-01-16 CRAN (R 3.3.2)
#> rvest 0.3.2 2016-06-17 CRAN (R 3.3.2)
#> scales 0.4.1 2016-11-09 CRAN (R 3.3.2)
#> stringi 1.1.2 2016-10-01 CRAN (R 3.3.2)
#> stringr 1.1.0 2016-08-19 CRAN (R 3.3.2)
#> tibble * 1.2 2016-08-26 CRAN (R 3.3.2)
#> tidyr * 0.6.1 2017-01-10 CRAN (R 3.3.2)
#> tidyverse * 1.1.1.9000 2017-02-05 Github (tidyverse/tidyverse@2771fd7)
#> withr 1.0.2 2016-06-20 CRAN (R 3.3.2)
#> xml2 1.1.1 2017-02-05 Github (hadley/xml2@c84db5e)
#> yaml 2.1.14 2016-11-12 CRAN (R 3.3.2)
```
@krlmlr @hadley any ideas of the most likely reason, and a way to get around this?
Tried this on tidyr v 0.6 and 0.6.1 with same results, unsurprisingly. Did not mess with dplyr version but willing to hunt around to try to track down the bug, if there are specific thing(s) you'd like me to try
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment