The "tidyselect" package offers a select helper function where. where is used to select dataframe columns with a custom function. It is an internal function from "tidyselect". That means where will not be loaded to your namespace and you can only call it by tidyselect:::where.
However, I saw the following example from the dplyr vignettes: columnwise operations.
starwars %>%
summarise(across(where(is.character), ~ length(unique(.x))))
#> # A tibble: 1 x 8
#> name hair_color skin_color eye_color sex gender homeworld species
#> <int> <int> <int> <int> <int> <int> <int> <int>
#> 1 87 13 31 15 5 3 49 38
In this example, where is written without a prefixal "tidyselect:::" but clearly, there is no errors in the code and it produces meaningful result. This seems odd to me. I would like to know why the code functions normally.
I guess it is due to the "code quotation", which is a part of the tidyeval methodology. Roughly speaking, code quotation suspends the codes as expressions, and evaluates the expressions later in an "inner environment". This is only an intuitive guess and I don't know how to test it.
I hope someone can help me with the "where" problem, or leave some references about how the code functions for me.