У меня есть вопрос, который кажется простым, однако он не рассматривается в документации по API OpenCPU. Я отлично установил и настроил свой сервер OpenCPU, я могу просматривать http://localhost/ocpu/test/ и я могу исследовать все просто отлично. Просматривая документацию, я вижу, что запустить пакет довольно просто, но есть ли способ просто запустить простой файл .R на моем сервере без необходимости превращать его в пакет? Я бы предпочел не превращать его в пакет, чтобы протестировать его. Кто-нибудь знает, возможно ли это, и если да, то какой правильный API?
Как запустить скрипт custom.R с помощью OpenCPU
Ответы (2)
Нет. Из часто задаваемых вопросов по OpenCPU #2: Приложение OpenCPU — это пакет R, который включает несколько веб-страниц, которые вызывают функции R в пакете с помощью API OpenCPU (выделено мной). Я настоятельно рекомендую вам научиться создавать пакеты, хотя бы для случайных функций. Пакет Hadley devtools
(среди прочего) значительно упрощает сборку пакетов; если вам нужна помощь, его документы по r-pkgs весьма хороши.
person
r2evans
schedule
23.06.2016
Есть способ запустить один R-скрипт.
К сожалению, у него есть ограничение: вы можете использовать только двойные или одинарные кавычки в сценарии R. Вот пример, который работает с одинарными кавычками:
# Make test script. DO NOT USE DOUBLE-QUOTES inside the script.
echo "a = c('10', '20')" > myscript.r
# Encode it for transfer.
SCRIPT_ENCODED="$(urlencode "$(cat myscript.r)" | sed -r 's/%0A/\\n/g')"
# Save the script on the server.
RES1=$(curl -s "localhost:8004/ocpu/library/base/R/write" \
-H "multipart/form-data" \
-d "x=\"$SCRIPT_ENCODED\"" \
-d "file='script.r'")
# Execute the script on the server.
TMP_TOKEN1=$(echo $RES1 | sed -r 's/^.*tmp\/(\w+).*$/\1/')
RES2=$(curl -s "localhost:8004/ocpu/tmp/$TMP_TOKEN1/files/script.r" -X POST)
# View the results.
echo $RES2
TMP_TOKEN2=$(echo $RES2 | sed -r 's/^.*tmp\/(\w+).*$/\1/')
curl "localhost:8004/ocpu/tmp/$TMP_TOKEN2/R/a/print"
person
Akuukis
schedule
29.12.2018
devtools
(среди прочих) значительно упрощает сборку пакетов; если вам нужна помощь, его документы r-pkgs весьма хороши. - person r2evans   schedule 23.06.2016