Yes. Nevermind tibbles, the [rep(NA, len),] construction only happens to work because len will always be >= the number of rows in value[[1L]], witness
> (1:10)[rep(NA, 20)] [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > (1:20)[rep(NA, 10)] [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA > (1:20)[rep(NA_integer_, 10)] [1] NA NA NA NA NA NA NA NA NA NA > (1:10)[rep(NA_integer_, 20)] [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA -pd > On 21 Nov 2020, at 16:55 , Mario Annau <mario.an...@gmail.com> wrote: > > Hello, > > using the `unsplit()` function with tibbles currently leads to the > following error: > >> mtcars_tb <- as_tibble(mtcars, rownames = NULL) >> s <- split(mtcars_tb, mtcars_tb$gear) >> unsplit(s, mtcars_tb$gear) > Error: Must subset rows with a valid subscript vector. > ℹ Logical subscripts must match the size of the indexed input. > x Input has size 15 but subscript `rep(NA, len)` has size 32. > Run `rlang::last_error()` to see where the error occurred. > > Tibble seems to (rightly) complain, that a logical vector has been used for > subsetting which does not have the same length as the data.frame (rows). > Since `NA` is a logical value, the subset should be changed to > `NA_integer_` in `unsplit()`: > >> unsplit > function (value, f, drop = FALSE) > { > len <- length(if (is.list(f)) f[[1L]] else f) > if (is.data.frame(value[[1L]])) { > x <- value[[1L]][rep(*NA_integer_*, len), , drop = FALSE] > rownames(x) <- unsplit(lapply(value, rownames), f, drop = drop) > } > else x <- value[[1L]][rep(NA, len)] > split(x, f, drop = drop) <- value > x > } > > Cheers, > Mario > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel