Я использую R studio.
Есть ли способ узнать, запущен ли скрипт R напрямую (исходной командой в консоли) или внутри другого скрипта. т.е. получен другой сценарий, и он вызывает первый сценарий.
В некоторых случаях это может быть полезно для запроса некоторых значений.
Что я сейчас делаю, так это устанавливаю переменную в значение true или false, и внутри скрипта я проверяю эту переменную. Это работает, но автоматический способ лучше.
Спасибо за ваше время.
Допустим, у меня есть независимый скрипт, который нормально работает как есть, но этот скрипт является частью процесса, запускаемого после завершения другого скрипта. Если мне нужно запустить оба, я могу запустить первый, затем второй; но также у меня есть шанс просто запустить второй.
Я спрашиваю, есть ли способ (во втором скрипте) проверить, был ли этот второй вызван из первого или нет.
Взгляните на его простые примеры (навеянные ответом Грега Сноу). Сначала файл, который я вызываю в Rstudio
# scripta.R
writeLines("script A")
if (interactive()) writeLines("interactive: true") else writeLines("interactive false")
source("scriptb.r")
writelines("after B")
Затем исходный файл
# scriptb.R
writeLines("script B")
if (interactive()) writeLines("interactive: true") else writeLines("interactive false")
writeLines("end B")
Результат в Rstudio
script A
interactive: true
script B
interactive: true
end B
after B
Мне нравится иметь что-то вроде
script A
interactive: true
script B
interactive: false
end B
after B
Надеюсь, теперь это более понятно.
Спасибо