【问题标题】:R script from command line命令行中的 R 脚本
【发布时间】:2013-06-24 17:39:02
【问题描述】:

我想从 Windows 命令行运行这个示例脚本:http://mazamascience.com/WorkingWithData/?p=912。所以我打开命令行并输入Rscript tryCatch.R 1。但是,我不断收到错误消息Error: R not found。我确实将 PATH 环境变量设置为C:\Programme\R\R-3.0.1\bin。如果我只输入R.exe,它会启动R,但它找不到要在启动时加载的包(例如package 'utils' in options<"defaultPackages"> was not found)。我想我必须在某个地方设置另一个通往图书馆的路径,但我不知道在哪里执行此操作。

更新:在明确输入 PATH C:\Programme\R\R-3.0.1\bin(而不是仅仅将其添加到环境变量 PATH 的值)之后,似乎找到了 R。但是,出现了一个新问题:In normalizePath<path.expand(path), winslash, mustWork>: path[2] = "C:/Programme/R/R-3.0.1/library": Access denied,与methods 库相同。然后:Calls: .First ... library -> .getRequiredPackages2 -> library -> normalizePath Execution stopped。我使用的是 Windows 7,并且拥有管理员权限。

【问题讨论】:

  • 尝试使用R CMD BATCH tryCatch.R 1。您可能必须更改脚本以接受命令行参数(如果是这样,我将发布完整的答案,但我很想知道这是否首先有效)
  • @SimonO101 感谢您的建议,但不幸的是我收到了相同的错误消息 (Error: R not found)。
  • 你可能想看看batchfiles.googlecode.com。看看R.bat。例如R.bat script myscript.R,它是自动的,但需要一个合理的标准安装或 RPathSet.bat 替代方案,它是一个灵活的批处理文件,您可以在其中编辑变量,然后在运行 R 之前运行它来设置您的环境变量。它附带了一个 pdf 文件。
  • @G.Grothendieck 感谢您的建议,我会看看这个!

标签: r command-line


【解决方案1】:

我在windows 7下遇到了这个问题,显然,设置环境变量时>用户变量路径没有添加到PATH中,所以用户必须在系统变量中添加这个路径> PATH 最后只需添加 .EXE 文件的路径即可。

【讨论】:

    【解决方案2】:

    我发现这是 Windows 7 上特定于语言的问题,类似于此处描述的问题:https://stat.ethz.ch/pipermail/r-help/2011-May/276932.html

    PATH 更改为C:\Program Files\R\R-3.0.1\bin 后,脚本会从命令提示符正确执行。

    感谢所有试图提供帮助的人!

    【讨论】:

    • 谢谢!需要注意的是,我们将 PATH 变量指向 \bin 文件夹,而不是直接定位 .exe 文件
    【解决方案3】:

    Rscript 非常好用(R CMD BATCH 是老办法)特别是在 windows 下,但一般在我创建一个批处理文件以避免所有路径的头痛。

    例如说launcher.bat:

    @echo off
    C:
    PATH C:\Programme\R\R-3.0.1\bin;%path%
    cd PATH_TO_YOUR_RSCRIPT
    Rscript tryCatch.R 1
    pause
    

    然后打开一个控制台(使用 cmd),转到您存储 launcher.bat 的位置并启动它。或者从 R cosnole 使用shell:

    shell('path_to_launcher\launcher.bat')
    

    【讨论】:

    • 感谢您的建议,这是个好主意。根据您的启动器文件的内容,我尝试明确定义PATH,这使我向前迈出了一步,但仍然无法正常工作。一旦我解决了这个问题,我会尝试运行批处理文件。
    • @AnjaM 我不明白你为什么要明确定义PATH?你有什么错误。
    • 我已经更新了我原来的问题并在那里描述了新的错误。通过显式定义 PATH 我的意思是在输入 Rscript tryCatch.R 1 之前在命令行中真正写 PATH C:\Programme\R\R-3.0.1\bin (在启动器文件中执行此操作的方式)。之前我只是在Windows中添加PATH环境变量的路径,觉得这样就够了。
    • 首先尝试使用 source 从 R 执行脚本。一旦你得到它的工作,该方法应该工作。
    • 太棒了!非常感谢您的分享
    猜你喜欢
    • 2018-10-05
    • 2016-09-05
    • 2014-04-24
    • 2015-09-20
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多