这是我第一次尝试从CygWin终端运行R文件。 我有一个名为linreg.R的文件,我和CygWin终端中的文件位于同一目录中。 在同一目录中有一个shell脚本,它接受输入linreg.R和另一个data.txt(位于其他地方)。
当我使用适当的输入运行bash时,它会一次又一次地给我同样的错误:
$ ./build_model_from_directory.sh linreg.R /workdir/workdir/prod_data_v.txt lm_try
./build_model_from_directory.sh: line 27: type: Rscript: not found
Rscript is needed for linreg.R. Exiting
当我提出这样的事情时:
$./build_model_from_directory.sh linreg.Rscript /workdir/workdir/prod_data_v.txt lm_try
Script assumes linreg.Rscript in same directory
这是linreg.R的第一行
#!/usr/bin/env Rscript
我尝试设置路径PATH=$PATH:C:\\ProgramFiles\\R\\R-3.0.1\\bin
但没用它已经更改了PATH,但脚本仍未运行。
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
将它添加到.bashrc文件中可能值得花时间:
echo 'PATH=$PATH:/cygdrive/c/Program\ Files/R/R-3.2.3/bin' >> .bashrc
答案 1 :(得分:0)
我弄清楚我一次又一次犯的错误。
cygpath用于查找UNIX环境中目录路径的实际表示
示例:
$ cygpath 'C:\Program Files\R\R-3.0.1\bin'
/cygdrive/c/Program Files/R/R-3.0.1/bin
因此,我们需要确保PATH变量具有Program Files
而不是ProgramFiles
。
由于UNIX不了解特殊字符,我们需要回溯Program Files
$ PATH=$PATH:/cygdrive/c/Program\ Files/R/R-3.0.1/bin
之后开始识别R文件。