I'd like to list all Functions my package in a table.
So far I extracted all functions and title from the packages help docs
library(magrittr)
package_info <- library(help = magrittr)$info[[2]]
package_info_tbl <- package_info %>%
stringr::str_split(pattern = "\\s+", n = 2, simplify = T) %>%
tibble::as_tibble(.name_repair = "minimal")
colnames(package_info_tbl) <- c("Function", "Title")
package_info_tbl
#> # A tibble: 13 x 2
#> Function Title
#> <chr> <chr>
#> 1 "%$%" magrittr exposition pipe-operator
#> 2 "%<>%" magrittr compound assignment pipe-operator
#> 3 "%>%" magrittr forward-pipe operator
#> 4 "%T>%" magrittr tee operator
#> 5 "[[.fseq" Extract function(s) from a functional sequence.
#> 6 "debug_fseq" Debugging function for functional sequences.
#> 7 "debug_pipe" Debugging function for magrittr pipelines.
#> 8 "extract" Aliases
#> 9 "freduce" Apply a list of functions sequentially
#> 10 "functions" Extract the function list from a functional
#> 11 "" sequence.
#> 12 "magrittr" magrittr - Ceci n'est pas un pipe
#> 13 "print.fseq" Print method for functional sequence.
Created on 2020-03-29 by the reprex package (v0.3.0)
I found that some rows are seperated and result in 2 or more rows if the title is long. How to merge these rows?
We can replace blank with NA
values, use fill
to replace NA
with previous value in Function
column, group_by
Function
and create one concatenated string for each Function
.
library(dplyr)
package_info_tbl %>%
na_if('') %>%
tidyr::fill(Function) %>%
group_by(Function) %>%
summarise(Title = paste(Title, collapse = " "))
# A tibble: 12 x 2
# Function Title
# <chr> <chr>
# 1 [[.fseq Extract function(s) from a functional sequence.
# 2 %<>% magrittr compound assignment pipe-operator
# 3 %>% magrittr forward-pipe operator
# 4 %$% magrittr exposition pipe-operator
# 5 %T>% magrittr tee operator
# 6 debug_fseq Debugging function for functional sequences.
# 7 debug_pipe Debugging function for magrittr pipelines.
# 8 extract Aliases
# 9 freduce Apply a list of functions sequentially
#10 functions Extract the function list from a functional sequence.
#11 magrittr magrittr - Ceci n'est pas un pipe
#12 print.fseq Print method for functional sequence.