UPDATE: SOLVED Я обнаружил проблему.
Используя функцию .libPaths (), я смог определить, что каталог по умолчанию, в который был установлен пакет HH, не был включен в пути библиотеки при запуске Rscript через PHP, хотя он появился, когда R выполнял тот же код через командной строки.
Я решил проблему, включив отдельный вызов .libPaths ('new / file / path'); в моем динамически создаваемом синтаксисе. Когда я это сделаю, проверьте <-require ('HH'); контрольная работа; возвращает TRUE;
Спасибо всем, кто помог.
Я занимаюсь созданием PHP-скрипта, который будет запускать некоторые анализы в R. Для этого анализа требуется функция hov.bf (), которая является частью пакета HH , но весь вывод R (и, предположительно, процессы, связанные с R ) останавливается от строки, где вызывается функция hov.bf (). Тот же самый симптом возникает, если я попробую загрузить библиотеку HH через библиотеку («HH») ;. Что меня смущает, тот же самый синтаксический код R выполняет и выводит ВСЕ инструкции печати (базовые и функции HH) без ошибок при запуске через командную строку (Ubuntu).
Обзор кода:
PHP создает синтаксис R и записывает в файл Rsyntax.txt. Некоторые из следующих строк находятся в файле синтаксиса R:
dir = '/var/www/someDirectory/'; setwd(dir); sink('record.lis', append=FALSE, split=TRUE); print('hello-1'); test <- hov.bf(Values,Grouping); print('hello-2'); q();
После создания файла синтаксиса PHP запускает:
exec("/usr/bin/Rscript /var/www/someDirectory/Rsyntax.txt --no-save", $output);
При запуске через PHP выходной файл будет содержать весь вывод, созданный над вызовом hov.bf (), но после этого вызова ничего не запускается. То есть, «hello-1» присутствует в выходном файле, но «hello-2» и весь другой вывод ниже вызова hov.bf () не записываются в файл. Однако, когда я копирую и вставляю точную команду из PHP exec () в командную строку Ubuntu, она запускает весь синтаксис R без проблем. Я также попытался установить файл .Rprofile для загрузки пакета HH по умолчанию при загрузке R, но это не решило проблему через PHP.
Если у кого-то есть какие-то идеи, я бы очень признателен им. У меня кончились идеи о том, что это может быть.
Спасибо.