我试图编写一个R函数,它将从R包中提取导出的函数,并返回一个包含每个函数的列表,调用签名和文档中的描述。
通过执行以下操作,可以相对轻松地获取导出函数列表:
# Extracts all exported function names from dplyr
library(dplyr)
lsf.str("package:dplyr")
我还可以使用名称
获取给定函数的调用签名# Extract call signature for the join function in dplyr
lsf.str("package:dplyr")[10] %>%
get() %>%
deparse() %>%
head(1)
我甚至可以自动打开每个功能的帮助部分:
# Opens help for the join function in dplyr
help(lsf.str("package:dplyr")[10], package = "dplyr")
但是如何才能返回包含此函数描述文本的字符串?因此,对于dplyr中的join函数,它应该返回:
这些是分发给各个tbl方法的通用函数 - 有关各个数据源的详细信息,请参阅方法文档。 x和y通常应来自同一数据源,但如果copy为TRUE,y将自动复制到与x相同的源。
有什么想法吗?
答案 0 :(得分:3)
library(tidyverse)
lsf.str("package:dplyr")[10] %>%
help("dplyr") %>%
utils:::.getHelpFile() %>%
keep(~attr(.x, "Rd_tag") == "\\description") %>%
map(as.character) %>%
flatten_chr() %>%
paste0(., collapse="")
## [1] "\nThese are generic functions that dispatch to individual tbl methods - see the\nmethod documentation for details of individual data sources. x and\ny should usually be from the same data source, but if copy is\nTRUE, y will automatically be copied to the same source as x.\n"
删除换行符是OP的一个练习: - )