从r包中提取文档

从r包中提取文档,r,documentation,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 dp

我正在尝试编写一个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通常应来自同一数据源,但如果“复制”为TRUE,则y将自动复制到与x相同的源

有什么想法吗

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的练习:-)


删除换行符是留给OP:-)

的一项练习,这在大多数情况下都非常有效,但有时会导致混合使用格式化代码。例如,从平均值中提取用法会导致:“\n是否有方法清除这些列表调用?是的。”。这就是所谓的“工作”。您有一个适用于大多数情况的通用解决方案的大纲。现有的代码中有很多提示,可以在哪里找到更多的答案。完美取决于寻求者或其他想为你工作的人。请不要把我的后续工作视为我没有工作,因为那将是一个完全错误的假设。我正在做这个和其他很多事情。如果您或其他任何人对我的后续行动有答复并愿意提供,我将不胜感激。我进一步感谢您已经给出的答案,这非常有用。这在大多数情况下都非常有效,但有时会导致混合格式代码。例如,从平均值中提取用法会导致:“\n是否有方法清除这些列表调用?是的。”。这就是所谓的“工作”。您有一个适用于大多数情况的通用解决方案的大纲。现有的代码中有很多提示,可以在哪里找到更多的答案。完美取决于寻求者或其他想为你工作的人。请不要把我的后续工作视为我没有工作,因为那将是一个完全错误的假设。我正在做这个和其他很多事情。如果您或其他任何人对我的后续行动有答复并愿意提供,我将不胜感激。我进一步感谢你已经给出的答案,这是非常有用的。