【问题标题】:Where is the .R script file located on the PC?.R 脚本文件位于 PC 上的什么位置?
【发布时间】:2012-03-12 05:26:44
【问题描述】:

我想找到用于在 R 中计算的脚本 .R 文件的位置。

我知道通过键入对象函数,我将获得正在运行的代码,然后我可以复制和编辑并将其保存为新的脚本文件并使用它。

要求查找foo.R文件的原因是

  1. 好奇心
  2. 了解数值计算中使用的算法是什么
  3. 更直接地说,我正在使用的 stats 包中的函数正在运行两个参数而不是其他参数的结果,并且必须弄清楚如何使其工作。 R 显示的错误意味着脚本文件中可能需要进行一些修改。

如果可能的话,我正在寻找更一般的答案。

编辑:根据目前的 cmets,这里是使用自回归方法计算时间序列谱的代码。数据输入是一个单变量系列。

x = ts(data)
spec.ar(x, method = "yule-walker")    1
spec.ar(x, method = "burg")        2

命令 1 运行正常。 命令 2 给出以下错误。

Error in ar.burg.default(x, aic = aic, order.max = order.max, na.action = na.action,  : 
  Burg's algorithm only implemented for univariate series

我确实尝试正确指定所有参数,例如 na.action=na.fail、order.max = NULL 等,但消息是相同的。 请提出可能的解决方案。

附: (这个问题是在搜索安装 R 的库文件夹和包含包、手册和打开 .rdb、.rdx 文件的 zip 文件后发布的)

【问题讨论】:

  • 查找 .R 文件的方式确实取决于您使用的软件包的具体情况(例如,您是如何安装的)。
  • 我已经使用 R 中的安装管理器安装了它们,并且正在使用与时间序列分析相关的软件包。即使使用在线 CRAN 软件包附带的 zip 或 tar 文件,我也没有在很多我检查过的脚本中找到 .R 文件。
  • 至于 (3),stats 包(它是基本 R 发行版,而不是附加组件)需要修改源代码。但这可能最好在单独的问题中解决,并提供具体信息。
  • 添加错误代码。我在想可能有一种通用的、已知的方法来查找包脚本文件(即源代码)。如果我在 tar.gz 文件中遗漏了我必须打开的任何文件,请告诉我。
  • 该错误消息表明没有什么可以“修复”。它现在只接受单变量数据。

标签: r


【解决方案1】:

.libPaths() 应该会告诉您您当前的所有图书馆位置。如果有两个库但只使用第一个库中的一个,则可以安装多个包。除非您提供代码和确切的错误消息,否则任何人都不太可能提供更好的建议。

【讨论】:

  • 在 Windows 机器上,您可以自动执行 DWin 的建议并打开所有存储库的区域:lapply(seq_along(.libPaths()), function(i) shell.exec(.libPaths()[i]))
【解决方案2】:

我想你是想看看我所说的包中函数的源代码。如果是这样,我这样做的方式如下,在我尝试了三次之后,这对我来说都很成功。我将这些说明放在一些方便的地方,然后将它们复制并粘贴在这里:

要查看程序 R 中函数的源代码,请下载包含该函数的包。具体来说,下载以“tar.gz”结尾的文件。这是一个压缩文件。使用例如“WinZip”展开压缩文件。现在您需要打开以“.tar”结尾的未压缩文件。下载免费软件“7-Zip”。单击文件“7zFM.exe”并导航到包含“.tar”文件的目录。您可以将该“.tar”文件的内容提取到一个新文件夹中。内容由显示 R 包中函数源代码的 R 文件组成。

编辑:

今天(2012 年 7 月 8 日)我能够使用最新版本的“WinZIP”打开“tar.gz”文件,并且可以从那里复制内容(源代码)而无需使用“7-Zip” '。

编辑:

今天(2013 年 1 月 19 日)我通过下载文件查看了 base R 中函数的源代码 'R-2.15.2.tar.gz'

要下载该文件,请转到http://cran.at.r-project.org/ 网页并单击此行中的该文件:

“最新版本(2012-10-26,不给糖就捣蛋):R-2.15.2.tar.gz,请阅读最新版本中的新增功能。”

解压缩文件。 WinZip 会工作,或者对我有用。然后在您的计算机上搜索 readtable.r 或其他基本 R 函数。

agstudy 在这里注意到https://stackoverflow.com/questions/14417214/source-file-for-r-function read.csv 的源代码位于文件 readtable.r 中,因此不要期望每个基本 R 函数都有自己的文件。

【讨论】:

    【解决方案3】:

    请参阅 FAQ 7.40 如何访问函数的源代码?

    在大多数情况下,输入函数名称将打印其源代码 代码。然而,代码有时隐藏在命名空间中,或者被编译。 有关如何访问源代码的完整概述,请参阅 Uwe Ligges (2006),“服务台:访问资源”,R News,6/4,43-45 (http://cran.r-project.org/doc/Rnews/Rnews_2006-4.pdf)。

    【讨论】:

      【解决方案4】:

      当 R 安装一个包时,它会评估所有“.R”源文件并将它们重新保存为二进制格式以加快加载速度。因此,您通常无法轻松找到源文件。

      正如其他地方所建议的,您可以简单地输入函数名称并查看源代码,或者下载源包并在那里找到源代码。

      library(plyr)
      ddply # prints the source for ddply
      
      # See the content of the R directory for plyr,
      # but it's only binary files:
      dir(file.path(find.package("plyr"), "R"))
      # [1] "plyr"     "plyr.rdb" "plyr.rdx"
      
      # Get the source for the package:
      download.packages("plyr", "~", type="source")
      
      # ...then unpack and inspect the R directory...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-21
        • 2014-07-31
        • 1970-01-01
        • 2019-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多