Open njtierney opened 5 months ago
This sometimes captures NA values, it might be best to use something like:
map_dfr(
data,
class
) %>%
pivot_longer(
cols = everything(),
names_to = "variable",
values_to = "class"
) %>%
arrange(
class,
variable
)
Or to look more closely at the internals of fingerprint or something?
Alright here we go:
library(visdat)
variable_first_value <- function(data){
data %>%
dplyr::slice_head(n = 1) %>%
tidyr::pivot_longer(
cols = tidyselect::everything(),
names_to = "variable",
values_to = "first_value",
values_transform = as.character
)
}
class_info <- function(data){
data %>%
purrr::map_dfr(
class
) %>%
tidyr::pivot_longer(
cols = tidyselect::everything(),
names_to = "variable",
values_to = "class"
) %>%
dplyr::arrange(
class,
variable
)
}
class_table <- function(data){
dplyr::left_join(
x = class_info(data),
y = variable_first_value(data),
by = "variable"
)
}
class_table(typical_data)
#> # A tibble: 9 × 3
#> variable class first_value
#> <chr> <chr> <chr>
#> 1 Age character <NA>
#> 2 ID character 0001
#> 3 Income factor 4334.29
#> 4 Race factor Black
#> 5 Sex factor Male
#> 6 Died logical FALSE
#> 7 Smokes logical FALSE
#> 8 Height(cm) numeric 175.9
#> 9 IQ numeric 110
Created on 2024-03-13 with reprex v2.1.0
Could maybe change first_value
to typical_value
to use the first non_missing value...or something?
Haaaa this is what dplyr::glimpse()
does. Ugh. I still maintain it is useful.
This is another quick workaround for showing class information, see #166
Created on 2024-03-13 with reprex v2.1.0
Session info
``` r sessioninfo::session_info() #> ─ Session info ─────────────────────────────────────────────────────────────── #> setting value #> version R version 4.3.3 (2024-02-29) #> os macOS Sonoma 14.3.1 #> system aarch64, darwin20 #> ui X11 #> language (EN) #> collate en_US.UTF-8 #> ctype en_US.UTF-8 #> tz Australia/Hobart #> date 2024-03-13 #> pandoc 3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown) #> #> ─ Packages ─────────────────────────────────────────────────────────────────── #> package * version date (UTC) lib source #> cli 3.6.2 2023-12-11 [1] CRAN (R 4.3.1) #> digest 0.6.34 2024-01-11 [1] CRAN (R 4.3.1) #> dplyr 1.1.4 2023-11-17 [1] CRAN (R 4.3.1) #> evaluate 0.23 2023-11-01 [1] CRAN (R 4.3.1) #> fansi 1.0.6 2023-12-08 [1] CRAN (R 4.3.1) #> fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.3.0) #> fs 1.6.3 2023-07-20 [1] CRAN (R 4.3.0) #> generics 0.1.3 2022-07-05 [1] CRAN (R 4.3.0) #> glue 1.7.0 2024-01-09 [1] CRAN (R 4.3.1) #> htmltools 0.5.7 2023-11-03 [1] CRAN (R 4.3.1) #> knitr 1.45 2023-10-30 [1] CRAN (R 4.3.1) #> lifecycle 1.0.4 2023-11-07 [1] CRAN (R 4.3.1) #> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.3.0) #> pillar 1.9.0 2023-03-22 [1] CRAN (R 4.3.0) #> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.3.0) #> purrr 1.0.2 2023-08-10 [1] CRAN (R 4.3.0) #> R.cache 0.16.0 2022-07-21 [2] CRAN (R 4.3.0) #> R.methodsS3 1.8.2 2022-06-13 [2] CRAN (R 4.3.0) #> R.oo 1.26.0 2024-01-24 [2] CRAN (R 4.3.1) #> R.utils 2.12.3 2023-11-18 [2] CRAN (R 4.3.1) #> R6 2.5.1 2021-08-19 [1] CRAN (R 4.3.0) #> reprex 2.1.0 2024-01-11 [2] CRAN (R 4.3.1) #> rlang 1.1.3 2024-01-10 [1] CRAN (R 4.3.1) #> rmarkdown 2.25 2023-09-18 [1] CRAN (R 4.3.1) #> rstudioapi 0.15.0 2023-07-07 [1] CRAN (R 4.3.0) #> sessioninfo 1.2.2 2021-12-06 [2] CRAN (R 4.3.0) #> styler 1.10.2 2023-08-29 [2] CRAN (R 4.3.0) #> tibble 3.2.1 2023-03-20 [1] CRAN (R 4.3.0) #> tidyr 1.3.1 2024-01-24 [1] CRAN (R 4.3.1) #> tidyselect 1.2.0 2022-10-10 [1] CRAN (R 4.3.0) #> utf8 1.2.4 2023-10-22 [1] CRAN (R 4.3.1) #> vctrs 0.6.5 2023-12-01 [1] CRAN (R 4.3.1) #> visdat * 0.6.0 2023-02-02 [2] CRAN (R 4.3.0) #> withr 3.0.0 2024-01-16 [1] CRAN (R 4.3.1) #> xfun 0.42 2024-02-08 [1] CRAN (R 4.3.1) #> yaml 2.3.8 2023-12-11 [1] CRAN (R 4.3.1) #> #> [1] /Users/nick/Library/R/arm64/4.3/library #> [2] /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library #> #> ────────────────────────────────────────────────────────────────────────────── ```