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 パッケージ内の関数とタイトルの表を作成する方法