gpt4 book ai didi

r - 从文档中获取函数的标题

转载 作者:行者123 更新时间:2023-12-04 10:26:52 26 4
gpt4 key购买 nike

我想在我的一个脚本中获取基本函数的标题(例如:rnorm)。这包含在文档中,但我不知道如何“捕获”它。

我的意思是 RD 文件中作为 \title{} 或文档中的第一行给出的行。

有没有什么简单的方法无需tools调用Rd_db函数并解析所有RD文件——因为有一个非常大的文件这个简单的东西的开销?其他:我也尝试过使用 parse_Rd,但是:

  • 我不知道哪个 Rd 文件包含我的函数,
  • 我的系统上没有 Rd 文件(只有 rdbrdxrds)。<

所以解析(离线)文档的函数将是最好的:)


POC 演示:

> get.title("rnorm")
[1] "The Normal Distribution"

最佳答案

如果您查看help 的代码,您会发现函数index.search 似乎是用来获取帮助文件位置的,并且关联的 find.packages() 函数的默认值为 NULL。事实证明,该功能既没有帮助也没有公开,所以我测试了它所在的软件包(基础、工具、实用程序)的常见嫌疑人,并以“实用程序:

utils:::index.search("+", find.package())
#[1] "/Library/Frameworks/R.framework/Resources/library/base/help/Arithmetic"

所以:

 ghelp <- utils:::index.search("+", find.package())
gsub("^.+/", "", ghelp)
#[1] "Arithmetic"
ghelp <- utils:::index.search("rnorm", find.package())
gsub("^.+/", "", ghelp)
#[1] "Normal"

您要的是 \title{Title},但在这里我向您展示了如何找到要解析的特定 Rd 文件,听起来好像您已经知道该怎么做。

编辑:@Hadley 提供了一种获取所有帮助文本的方法,一旦您知道包名称,将其应用于上面的 index.search() 值:

target <- gsub("^.+/library/(.+)/help.+$", "\\1", utils:::index.search("rnorm", 
find.package()))
doc.txt <- pkg_topic(target, "rnorm") # assuming both of Hadley's functions are here
print(doc.txt[[1]][[1]][1])
#[1] "The Normal Distribution"

关于r - 从文档中获取函数的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com