从r包中提取文档

时间:2017-10-12 13:07:40

标签: r documentation

我试图编写一个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相同的源。

有什么想法吗?

1 个答案:

答案 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的一个练习: - )