【问题标题】:syntax errors (in R-script)语法错误(在 R 脚本中)
【发布时间】:2018-09-25 08:48:35
【问题描述】:

对于这篇文章,我感到非常抱歉,我确定它太简单了,但我一直在寻找和寻找,但找不到任何答案! (是的,我的 wifi 已打开 =P 哈哈) 我正在使用 BASH 构建 DNA 分析管道,在其中使用此脚本非常有用。 (我将 0% 的功劳归功于它的制作,但它已发布供所有人使用)https://forum.qiime2.org/t/automatic-manifest-maker-in-r/2921 我以前从未在 R 中做过任何工作,所以如果这是一个愚蠢的问题,我很抱歉。

我怀疑问题出在前几行,或者可能是它的解释方式,这里是前 3 行

library(tidyverse)

SamplesF <- list.files(path = "Data", pattern = "*.R1.fastq.gz", all.files = 
FALSE,
full.names = TRUE, recursive = FALSE,
ignore.case = FALSE, include.dirs = FALSE, no.. = FALSE)

这里是错误

/home/qiime2/Taxonomy.R: line 1: syntax error near unexpected token `tidyverse'
/home/qiime2/Taxonomy.R: line 1: `library(tidyverse)'

只是为了添加一些上下文,这是在 Ubuntu 虚拟机中,运行以下命令来安装和设置软件包

conda create -n R-Env -y
source activate R-Env
Install r-essentials and tidyverse package by running:
conda install r-essentials -y
conda install -c r r-tidyverse -y
conda install -c r r-gdata -y

我调用了脚本 Taxonomy.R 并给了它 chmod +x 它已创建,当前位于 ~ 目录中

【问题讨论】:

  • 你在 R 中安装了tidyverse 包吗?
  • 是的,我正在使用以下内容; conda install r-essentials -y conda install -c r r-tidyverse -y conda install -c r r-gdata -y
  • 如果您在帖子中添加了有关如何安装软件包调用 R 脚本的信息,这可能会有所帮助。我假设您按照上面给出的链接中的步骤进行操作,这意味着您正在通过 Anaconda 完成所有这些操作,而许多 R 用户可能不会这么认为。我没有使用它,但在那个链接中,您似乎正在使脚本可执行并从终端调用它,例如./Taxonomy.R。如果是这样,您是否尝试将 #!/usr/bin/env Rscript 添加到脚本顶部?如果使 R 脚本可执行,我通常会这样做,但话又说回来,在 Anaconda 上下文中可能会有所不同。
  • @duckmayr 谢谢!!!!所以我现在找到了 Rscript 的位置,并在 /home/qiime2/miniconda/envs/R-Env/lib/R/bin/Rscript 中找到了它,因此我将第一行更改为 # /home/qiime2/miniconda/envs /R-Env/lib/R/bin/ 这给了我以下错误 bash: /home/qiime2/Taxonomy.R: /home/qiime2/miniconda/envs/R-Env/lib/R/bin/: bad interpreter : 权限被拒绝
  • 尝试使用 #!/home/qiime2/miniconda/envs/R-Env/bin Rscript 也不起作用 bash: /home/qiime2/Taxonomy.R: /home/qiime2/miniconda/ envs/R-Env/bin/: 错误的解释器:权限被拒绝

标签: r syntax


【解决方案1】:

当将 R 脚本作为可执行文件运行时,您需要添加“shebang”(例如,参见this discussion);因此,作为 R 脚本的第一行,添加以下内容:

#!/usr/bin/env Rscript

然后,你应该可以从终端运行

source activate R-Env
./Taxonomy.R

(请参阅 this Stack Overflow question 在不同背景下对 shebangs 和 Anaconda 的简要讨论)。请注意,您可能需要停用然后重新激活您的 R-Env 才能使其正常工作。

虽然这将解决语法错误并允许您的 R 脚本运行,但它并不能保证您的 R 脚本运行时不会出现不相关的错误。

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多