When row-binding a named list containing multiple consecutive NULL elements the resulting data frame identifiers (using the .id argument) are shifted:
library(tidyverse) list(a = tibble(expected_id = "a"), b = NULL, c = NULL, d = tibble(expected_id = "d"), c = NULL, e = tibble(expected_id = "e")) %>% bind_rows(.id = "id") #> # A tibble: 3 x 2 #> id expected_id #> <chr> <chr> #> 1 a a #> 2 c d #> 3 d e
Created on 2019-03-20 by the reprex package (v0.2.1)
Single NULL elements are handled accurately:
library(tidyverse) list(a = tibble(expected_id = "a"), b = NULL, c = tibble(expected_id = "c"), d = NULL, e = tibble(expected_id = "e")) %>% bind_rows(.id = "id") #> # A tibble: 3 x 2 #> id expected_id #> <chr> <chr> #> 1 a a #> 2 c c #> 3 e e
Created on 2019-03-20 by the reprex package (v0.2.1)