导航到RStudio

时间:2017-05-30 02:41:00

标签: r rstudio

据我所知,安装包的R源代码不能直接在安装它的库(目录)中使用。而是(在相应的R/目录中)package.rdbpackage.rdx形式的二进制文件,其中编译了R代码(我没有找到关于它们或它们的格式的大量信息,命名紧凑的包文件格式 1)。

此外,我还没有找到一种方法来安装包,包括其原始的R源代码(用于生成编译的二进制代码),方式类似于Python的“开发模式”2(另一个问题{ {3}}关于这个问题似乎证实了这一点),包的源代码可直接用于检查。

在Python的“开发模式”中,使用源代码的一些优点(至少对我而言)是:

  1. 对包源代码的任何修改都会直接反映在对其函数的调用中,而无需在修改后进行显式构建或安装。

  2. IDE(如PyCharm)允许轻松直接导航到包内的函数定义,便于检查和修改它。

  3. 由于Hadley的devtools 3包,允许重新加载修改后的包(通过load_all 4函数),第一点并不是一个大问题以一种直截了当的方式。但第二点是我遇到麻烦的那个。

    RStudio提供了一种导航到函数定义5的方法,即使对于已安装的软件包中的函数也是如此,但它显示的只是一个只读版本(我假设是)已安装的反编译R代码二进制文件。虽然它非常有用但它仍然有一些缺点,因为显示的内容不是定义函数的实际R源代码文件:

    1. 显示的代码对特定函数的范围有限,没有显示包含它的文件(也没有显示它周围的其他函数),这使得更难找到原始文件(未在这个视图)在定义函数的包源代码中(必须使用更多的间接方法,如grep)。

    2. 无法为开发目的修改定义(检查定义并了解其工作原理)。

    3. 原始源文件的注释不可用,这使得代码更难理解(对我来说,这不是一个小问题)。

    4. 我已经读过RStudio索引来自当前活动项目的文件,因此有可能(我还没有尝试)打开一个特定的包作为RStudio项目来索引其R源文件并能够导航到它们在寻找函数定义时,但它仍然是特定包的解决方案,一次一个。

      是否有方法向RStudio指示原始R源文件位于特定已安装软件包的位置,以使其对索引可见,并能够导航到其功能定义?

      我甚至乐于指向RStudio源代码(由熟悉其代码库且熟悉其代码库的人)处理代码导航功能,研究可能的解决方案(或者至少是一个适用于其的时间修改)具体案例)。

      (有一个不同的问题6表明了与此问题相同的基本问题,要求提供一个不限于RStudio的解决方案,因为没有提供令人满意的问题,我将此问题专门限于RStudio,看看是否能找到更具体的解决方案。)

      [1]:_ 7

      [2]:_ https://stat.ethz.ch/pipermail/r-help/2005-July/075948.html

      [3]:_ https://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode

      [4]:_ Install package in development mode (with R source not compiled into Rdb)

      [5]:_ https://github.com/hadley/devtools

      [6]:_ http://rstudio-pubs-static.s3.amazonaws.com/2556_4e9f1c2af93b4683a19e2303a52bb2d5.html

      [7]:_ https://support.rstudio.com/hc/en-us/articles/200710523-Navigating-Code

      编辑:遗憾的是我不能发布两个以上的链接,因为我是新的并且缺乏声誉,所以直到(如果)我得到一些声誉,大多数链接都会丢失,抱歉。

      编辑:我确认打开一个现有的包,其R源代码作为RStudio项目(File -> New Project -> Existing directory -> <package_dir>)将源文件(在R/目录内)添加到RStudio索引中在浏览函数定义时使它们可用于导航到它们。此外,作为部分(和脏)解决方案,来自其他项目的R源文件可以复制到同一目录,RStudio(通常)也会识别它们。

0 个答案:

没有答案