rstudio编写峰度_使用R做更多事情:编写自己的RStudio插件

rstudio编写峰度

编写RStudio插件很容易,很有趣,而且只需几分钟! 好吧,这就是马库斯衰老研究所的朱浩最近在RStudio会议上说的 。 即使我经常使用它们,我什至没有想到要写一个。 因此,我决定尝试写一篇,看他是否正确。

我的第一个问题:使用插件可以完成什么工作? 根据RStudio的Jonathan McPherson所说,一个插件可以帮助您编写代码,格式化代码,与外部数据集成,启动脚本……基本上,常规R代码可以做的几乎所有事情。

[ 在我们的视频教程系列中获得Sharon Machlis的R技巧 | 阅读InfoWorld教程: 学习使用R处理大数据 如何重塑R中的数据 触手可及的R数据操作技巧R的 初学者指南 | 通过InfoWorld大数据报告新闻通讯了解最新的分析和大数据。 ]

下一个问题:它们的结构如何?

  • 插件是常规的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插件下拉列表 IDG / Sharon Machlis

RStudio的插件下拉列表

并且,如果您点击“编辑代码段”插件,您的代码段文件应弹出打开。

为什么要使用插件而不是仅手动运行功能? 插件的一个优点是您可以为其分配键盘快捷键。 选择“工具”>“修改键盘快捷键”,搜索您的代码段,单击名称旁边的,键入所需的键盘快捷键,然后按“应用”。 现在,如果您键入该组合键,您的代码片段文件应弹出以进行编辑。

看来朱先生是对的!

更多资源:

翻译自: https://www.infoworld.com/article/3336059/do-more-with-r-write-your-own-rstudio-addins.html

rstudio编写峰度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值