rstudio编写峰度
编写RStudio插件很容易,很有趣,而且只需几分钟! 好吧,这就是马库斯衰老研究所的朱浩最近在RStudio会议上说的 。 即使我经常使用它们,我什至没有想到要写一个。 因此,我决定尝试写一篇,看他是否正确。
我的第一个问题:使用插件可以完成什么工作? 根据RStudio的Jonathan McPherson所说,一个插件可以帮助您编写代码,格式化代码,与外部数据集成,启动脚本……基本上,常规R代码可以做的几乎所有事情。
下一个问题:它们的结构如何?
- 插件是常规的R代码。 更具体地说,插件是R函数。 但不仅仅是任何功能:它必须以某种方式使用rstudioapi包; 这就是插件与RStudio IDE交互的方式。
- 插件必须是R包的一部分。 它们不能是独立的功能。 他们需要一个包装结构。
- 并且,插件需要包括一个.dcf文件,该文件应包含有关软件包中每个插件的信息-特定格式的元数据。
这是Zhu在RStudio会议上演示的令人惊讶的易于编写的插件函数:
open_server_guide <- function() {
rstudioapi::viewer("https://ifar-connect.hsl.harvard.edu/using_rstudio_server/")
}
我将引导您完成如何构建另一个加载项的步骤:编辑RStudio R代码段文件。 该文件位于~/.R/snippets/r.snippets
。 您可以使用usethis::edit_rstudio_snippets()
函数打开该文件进行编辑; 在RStudio菜单中深入几层; 或通过运行
file.edit(paste0(path.expand('~'),'/.R/snippets/r.snippets'))
但是,让我们看看如何使外接程序执行相同的操作。
首先,您需要一个R包来放入它。
您可以在RStudio中使用所需的大多数目录结构来设置新软件包,方法是选择“文件”>“新建项目”,选择一个新目录,然后选择“软件包”。 因为代码片段是按其包名称的字母顺序排列的,并且我希望我的代码优先,所以我将我的包命名为asnippet。
你不能只用
file.edit(paste0(path.expand('~'),'/.R/snippets/r.snippets'))
在功能中打开摘要文件。 切记:代码段必须使用函数内的rstudioapi包与RStudio API进行交互。 因此,您可以使用rstudioapi的callFun()
帮助函数编写一个将 file.edit()
命令发送到RStudio控制台的函数:
edit_snippets <- function(){
rstudioapi::callFun("sendToConsole", "file.edit(paste0(path.expand('~'),'/.R/snippets/r.snippets'))")
}
这是执行简单操作的多步骤方法,但可以将功能转换为插件的一种方法。 rstudioapi的callFun()
调用RStudio函数。 哪个功能? 那是第一个参数:您要在此处调用的函数是sendToConsole
。 顾名思义,这意味着您正在向控制台发送代码。 第二个参数是您要发送到控制台的代码,在这种情况下,是打开摘要文件的file.edit()
代码。
工作外接程序的最后一块是一个单独的.dcf文件:addins.dcf。 那是一个纯文本文件,它需要存放在名为inst的文件夹下的rstudio文件夹中。 设置软件包时,默认情况下不会创建这些文件夹,因此您需要手动创建它们。
每个插件的addins.dcf文件需要四行文本:名称,描述,绑定以及是否是交互式的。 名称是您要称为插件的名称。 描述可能相当明显。 绑定是插件的函数名称。 交互式是对还是错:RStudio需要知道该插件是否将等待用户输入。 在这种情况下,答案是错误的。
这是此插件的addins.dcf中的内容:
Name: Edit snippets
Description: Opens RStudio snippets file for editing
Binding: edit_snippets
Interactive: false
加载项的名称为Edit snippets,描述为Opens RStudio snippets文件进行编辑,绑定(函数名称)为edit_snippets,并且不是交互式的。 而已。 现在,我只需要构建和加载程序包,您可以从右上方窗格中的“ RStudio构建”选项卡进行操作。
如果您已按照步骤进行操作,并查看了“加载项”下拉列表,则应该在asnippet(或任何您称呼的软件包)下看到Edit snippets。
![RStudio插件下拉列表](https://i-blog.csdnimg.cn/blog_migrate/575f865e497e97f61b79a5f6eff0b371.png)
RStudio的插件下拉列表
并且,如果您点击“编辑代码段”插件,您的代码段文件应弹出打开。
为什么要使用插件而不是仅手动运行功能? 插件的一个优点是您可以为其分配键盘快捷键。 选择“工具”>“修改键盘快捷键”,搜索您的代码段,单击名称旁边的,键入所需的键盘快捷键,然后按“应用”。 现在,如果您键入该组合键,您的代码片段文件应弹出以进行编辑。
看来朱先生是对的!
更多资源:
翻译自: https://www.infoworld.com/article/3336059/do-more-with-r-write-your-own-rstudio-addins.html
rstudio编写峰度