【问题标题】:Shortcut for running a single line of code in R在 R 中运行单行代码的快捷方式
【发布时间】:2016-08-25 16:25:56
【问题描述】:

有谁知道我如何创建键盘快捷键或类似的东西来在 R Studio 中运行单行诊断代码?也就是说,如果我想做一些简单的事情,比如检查数据框的尺寸,但我整天都想做很多事情并且不想不断输入 dim(data),我怎么能得到 dim(data ) 转换成键盘快捷键或其他快速简便的方法来调用该单行代码?

【问题讨论】:

  • 你在使用 RStudio 吗?那可能有可定义的键盘快捷键...什么操作系统?
  • 是的,我正在使用 R Studio

标签: r keyboard-shortcuts rstudio shortcut


【解决方案1】:

R 本身可以做到这一点。不过,您的编辑器也许可以(我知道 Vim + Vim-R 可以做这样的事情)。

您可以在 R 中执行的操作是 bind a function to an active binding。这样,每当您调用绑定时,它都会执行您的代码。举例说明:

makeActiveBinding('x', function () dim(data), globalenv())

现在,每当您在 R 控制台中输入 x 时,它都会执行 dim(data)

【讨论】:

    【解决方案2】:

    普通的 R 终端具有反向增量搜索功能,使重复的​​事情变得容易。按 Ctrl-R 并开始输入,它将与您的历史记录相匹配。在这个例子中,我输入了“di”,它足以找到我最后一次调用的“dim”:

    > x=matrix(1:12,3,4)
    > dim(x)
    [1] 3 4
    > y=runif(100)
    > dim(x)
    [1] 3 4
    # hit Ctrl-R at the prompt and type "d"... "i"....
    (reverse-i-search)`di': dim(x)
    

    我现在可以点击返回,它会为我做dim(x)。事实上,它在“d”处找到了它,因为没有其他东西以“d!”开头。在历史上。

    在 Emacs-ESS 中有类似的东西,但我不认为你正在使用它。我不知道这是否在 RStudio、StatET、Architect、RCmdr 或您可能正在使用的任何其他 R 接口中实现。我认为 RStudio 可能有一个快速的历史搜索。

    【讨论】:

    • 事实上,R 终端只是使用 readlines API,因此可以通过.inputrc 进行配置。我绑定了上下键,以便它们incrementally search the history。这使得 Ctr-R 在大多数情况下是不必要的。只需键入命令的开头并使用向上箭头来完成命令。
    【解决方案3】:

    您可以尝试使用 RStudio 中的 sn-p 功能(工具 -> 全局选项...打开下面的菜单)。然后,您可以添加一个 sn-p,例如下面的代码块。

    snippet d
       dim(data)
    

    保存 sn-p 后,您可以键入 d(或您在 snippet 之后定义的任何其他字符串)。然后按 Tab 键,RStudio 将为您提供将快捷方式字符串替换为 sn-p 中列出的代码的选项(此处为 dim(data))。

    除了dim 语句这样简单的事情之外,可能还有其他选择。可能会比增值更多的努力。

    【讨论】:

    • 这只能在代码编辑器窗口中工作,而不是在 R 控制台上,对吗?那样的话我觉得对OP没用。
    • 真的。我确实认为 sn-p 功能仅限于编辑器。
    猜你喜欢
    • 2013-07-25
    • 2019-03-18
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多