我正在尝试通过PHP执行以下简单的R脚本,但如果我放置library()
函数调用,我总是得到退出代码1。
library('optparse')
quit()
PHP脚本' test.php'给出如下:
<?php
$calc = exec("Rscript test.r", $R_output, $R_exitcode);
print $calc_routine;
当我删除library()
函数调用时,脚本会生成退出代码0,因此它确保R脚本位置正确。
答案 0 :(得分:1)
有an environment variable名为R_LIBS_USER
,告诉R在哪里寻找库。默认情况下,它设置为主目录中的子目录。当然,当从Web服务器调用时,您将不会运行它 - 主目录将是不同的。
首先,您需要确定您的库目录是什么。从R,call .libPaths()
得到它。
然后,您可以告诉PHP有关更新的值:
<?php
setenv("R_LIBS_USER", "/path/to/your/libraries");
$calc = exec("Rscript test.r", $R_output, $R_exitcode);
或者,在您的R代码中,使用带有参数的.libPaths将库路径设置为新值:
.libPaths('/path/to/your/libraries')
library('optparse')
quit()