Я создал фрейм данных с именами функций из интересующего пакета.
# loading needed libraries
library(ggstatsplot)
library(tidyverse)
# creating a dataframe with namespace from package of interest
(
df_ns <- getNamespaceExports(ns = "ggstatsplot") %>%
tibble::as_data_frame(.) %>%
dplyr::filter(.data = ., grepl("^gg|^grouped", value)) %>%
dplyr::filter(.data = ., value != "ggcoefstats") %>%
dplyr::mutate(
.data = .,
functions = paste("ggstatsplot::", value, sep = "")
) %>%
dplyr::mutate(
.data = .,
version = dplyr::case_when(grepl("^grouped", value) ~ "grouped",
TRUE ~ "basic")
) %>%
dplyr::mutate(
.data = .,
value = stringr::str_remove(value, "grouped_")
) %>%
dplyr::arrange(.data = ., value)
)
#> # A tibble: 10 x 3
#> value functions version
#> <chr> <chr> <chr>
#> 1 ggbetweenstats ggstatsplot::grouped_ggbetweenstats grouped
#> 2 ggbetweenstats ggstatsplot::ggbetweenstats basic
#> 3 ggcorrmat ggstatsplot::grouped_ggcorrmat grouped
#> 4 ggcorrmat ggstatsplot::ggcorrmat basic
#> 5 gghistostats ggstatsplot::grouped_gghistostats grouped
#> 6 gghistostats ggstatsplot::gghistostats basic
#> 7 ggpiestats ggstatsplot::grouped_ggpiestats grouped
#> 8 ggpiestats ggstatsplot::ggpiestats basic
#> 9 ggscatterstats ggstatsplot::grouped_ggscatterstats grouped
#> 10 ggscatterstats ggstatsplot::ggscatterstats basic
Теперь мне нужен столбец, содержащий количество аргументов для каждой функции вfunctions
столбец.Это можно сделать для отдельной функции следующим образом:
# example
length(formals(ggstatsplot::ggbetweenstats))
#> [1] 42
Но я хочу сделать это для всех функций, включенных в столбец functions
, и создать новый столбец n
, который содержит количество аргументов.Но функции не оцениваются должным образом, и я получаю 0
количество аргументов для всех функций.Как мне обойти эту проблему?
# extracting argument count for all functions
purrrlyr::by_row(
.d = df_ns,
..f = ~ length(formals(rlang::parse_expr(.$functions))),
.collate = "cols",
.to = "n"
)
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> Warning in formals(fun): argument is not a function
#> # tibble [10 x 4]
#> value functions version n
#> <chr> <chr> <chr> <int>
#> 1 ggbetweenstats ggstatsplot::grouped_ggbetweenstats grouped 0
#> 2 ggbetweenstats ggstatsplot::ggbetweenstats basic 0
#> 3 ggcorrmat ggstatsplot::grouped_ggcorrmat grouped 0
#> 4 ggcorrmat ggstatsplot::ggcorrmat basic 0
#> 5 gghistostats ggstatsplot::grouped_gghistostats grouped 0
#> 6 gghistostats ggstatsplot::gghistostats basic 0
#> 7 ggpiestats ggstatsplot::grouped_ggpiestats grouped 0
#> 8 ggpiestats ggstatsplot::ggpiestats basic 0
#> 9 ggscatterstats ggstatsplot::grouped_ggscatterstats grouped 0
#> 10 ggscatterstats ggstatsplot::ggscatterstats basic 0
Создано в 2018-10-11 с помощью пакета представитель (v0.2.1)