Rにおいて、指定したパッケージに含まれる関数とそのタイトルの一覧をデータフレームとして作成する方法をお伝えします。

自作関数による方法

次の関数extract_function()は、パッケージ名を与えると、そのパッケージに含まれる関数名と簡単な説明をデータフレームで返します。


extract_function <- function(package_name) {
  new_line <- NULL
  lines <- c()
  for (line in library(help = package_name, character.only = TRUE)[["info"]][[2]]) {
    if (substring(line, 1, 1) == " ") {
      new_line <- paste(new_line, gsub("^\\s*", "", line))
    } else {
      lines <- c(lines, new_line)
      new_line <- line
    }
  }
  lines <- c(lines, new_line)
  data.frame(
    name = gsub("\\s.*", "", lines),
    title = gsub("^\\S*\\s*", "", lines)
  )
}

baseパッケージの関数一覧を取得してみます。


extract_function("base") |>
  head()

         name                                    title
1       .Call          Modern Interfaces to C/C++ code
2     .Device    Lists of Open/Active Graphics Devices
3   .Internal                Call an Internal Function
4 .Last.value       Value of Last Evaluated Expression
5    .Library                Search Paths for Packages
6    .Machine Numerical Characteristics of the Machine

devtoolboxパッケージを使用した方法

devtoolboxパッケージは、2022-09-24にアーカイブされ、現在は使用できません。そのため、以下のコードは現在利用できません。

一覧表を作成するコードは次になります。ここでは、例としてdplyrパッケージに含まれる関数とそのタイトルをデータフレームとして作成してみます。


library(tidyverse)
library(devtoolbox)

package_name <-"dplyr"

df <- data.frame(function_name = ls(paste("package", package_name, sep = ":"))) %>%
  rowwise() %>%
  mutate(title = extract_title(function_name, package_name))

変数dfは、次のようになっております。


> print(df)
# A tibble: 291 × 2
# Rowwise: 
   function_name title                                                  
                                                              
 1 %>%           Objects exported from other packages                   
 2 across        Apply a function (or functions) across multiple columns
 3 add_count     Count observations by group                            
 4 add_count_    Deprecated SE versions of main verbs.                  
 5 add_row       Objects exported from other packages                   
 6 add_rownames  Convert row names to an explicit variable.             
 7 add_tally     Count observations by group                            
 8 add_tally_    Deprecated SE versions of main verbs.                  
 9 all_equal     Flexible equality comparison for data frames           
10 all_of        Objects exported from other packages                   
# … with 281 more rows
R パッケージ内の関数とタイトルの表を作成する方法