Hi,
- I am trying to use values_fn argument in pivot_wider function.
- Initially I end up with list column, and I want to use length function (in values_fn) for each cell to get the length
- My list columns contain NULL. It seems, length function does not work with list element NULL, it gives NA. But, length(NULL) = 0. So, I am expecting 0 instead of NA.
library(tidyverse)
dx<-data.frame(A = c(1,2,2,4,5),B = c("B1","B3","B3","B1","B3"),C = c("C1","C4","C5","C8","C9"))
dx
#> A B C
#> 1 1 B1 C1
#> 2 2 B3 C4
#> 3 2 B3 C5
#> 4 4 B1 C8
#> 5 5 B3 C9
dx %>%
pivot_wider(
names_from = c(B),
values_from = c(C),
names_glue = "{B}_{.value}",
values_fn = list
)
#> # A tibble: 4 x 3
#> A B1_C B3_C
#> <dbl> <list> <list>
#> 1 1 <chr [1]> <NULL>
#> 2 2 <NULL> <chr [2]>
#> 3 4 <chr [1]> <NULL>
#> 4 5 <NULL> <chr [1]>
dx %>%
pivot_wider(
names_from = c(B),
values_from = c(C),
names_glue = "{B}_{.value}",
values_fn = length
)
#> # A tibble: 4 x 3
#> A B1_C B3_C
#> <dbl> <int> <int>
#> 1 1 1 NA
#> 2 2 NA 2
#> 3 4 1 NA
#> 4 5 NA 1
print(length(NULL))
#> [1] 0