R system2 запускает разные скрипты параллельно

Я считаю, что использование system2 () - хороший вариант для параллельного запуска двух сценариев R. Я пробую что-то вроде следующего:

Sys.time()
system2(command = 'Sys.sleep(5)', wait = FALSE)
system2('Sys.sleep(7)', wait = FALSE)
Sys.time()

Однако это не работает, и я также получаю это предупреждение:

running command '"Sys.sleep(7)"' had status 127

Документация системы или системы2 не показывает никаких примеров, и я не могу найти много чего. Кто-нибудь пробовал этот вариант решить эту проблему?

Параметр command ожидает системную команду, а не команду R.

F. Privé 26.10.2018 08:38

Пакет R будущееCRAN.R-project.org/package=future может использоваться для параллельной оценки выражений.

Florian 26.10.2018 22:23
2
2
153
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У меня работает следующее:

 system("Rscript -e 'Sys.sleep(5); \"task 1\"'", wait=FALSE)
 system("Rscript -e 'Sys.sleep(7); \"task 2\"'", wait=TRUE)
 [1] "task 1"
 [1] "task 2"

Версия с system2() (спасибо комментарию HenrikB):

system2("Rscript", args = c("-e", "'Sys.sleep(5); \"task 1\"'"), wait=FALSE)
system2("Rscript", args = c("-e", "'Sys.sleep(7); \"task 2\"'"), wait=TRUE)
[1] "task 1"
[1] "task 2"

Первый аргумент system2() должен быть исполняемым файлом, поэтому вы хотите использовать system2("Rscript", args = c("-e", "'Sys.sleep(5); \"task 1\"'"), ...) в последнем случае.

HenrikB 26.10.2018 18:42

Другие вопросы по теме