Подтвердить что ты не робот

Разность Rstudio между запуском и источником

Я использую Rstudio и не уверен, что параметры "run" и "source" различны.

Я пробовал использовать эти термины, но "источник" - очень распространенное слово и не смог получить хорошие результаты поиска: (

enter image description here

4b9b3361

Ответ 1

Run и source имеют тонко разные значения. Согласно документации RStudio ,

Разница между бегущими строками от выбора и вызова Источник заключается в том, что при запуске выделения все строки вставлены прямо в консоль, тогда как для источника файл сохраняется в временное местоположение, а затем доставлено в консоль оттуда (тем самым создавая меньше помех в консоли).

Что-то, о чем нужно знать, заключается в том, что функции поиска в файлах делают их доступными для использования скриптов. Что это значит? Представьте, что вы пытаетесь устранить неисправность функции, вызываемой из script. Вам нужно source файл, содержащий эту функцию, чтобы изменения, доступные в функции, использовались, когда эта строка в script равна Run.

Еще один аспект этого состоит в том, что вы можете source выполнять функции из ваших скриптов. Я использую этот код для автоматического источника всех функций в каталоге, что упрощает запуск длинного script с помощью одного Run:

# source our functions
code.dir <- "c:\temp"
code.files = dir(code.dir, pattern = "[.r]")
for (file in code.files){
  source(file = file.path(code.dir,file))
}

Ответ 2

Иногда по причинам, которые я не понимаю, вы получите другое поведение в зависимости от того, выбираете ли вы все строки кода и нажмите кнопку запуска или перейдите в меню кодов и выберите "источник". Например, в одном конкретном случае запись gplot в файл png работала, когда я выбрал все мои строки кода, но запись не удалась, когда я перешел в меню кода и выбрал "источник". Однако, если я выбираю "Source with Echo", я могу снова распечатать файл png.

Я просто сообщаю о различиях здесь, которые я видел между выбором и запуском всех ваших строк и кода и переходом в меню кодов и выбором "источника", по крайней мере, в случае, когда вы пытаетесь распечатать gplot до png файл.

Ответ 3

Важный смысл ответа @AndyClifton:

Точки останова Rstudio работают в source (Ctrl-Shift-S), но не в run (Ctrl-Enter)

Предположительно, причина в том, что с run код передается прямо в консоль без поддержки частичной отправки.

Вы все еще можете использовать browser(), хотя с run.

print() для консоли поддерживается в debugSource (Ctrl-Shift-S), а также в run.

Ответ 4

Кнопка "запустить" просто выполняет выбранную строку или строки. Кнопка "Источник" выполнит весь активный документ. Но почему бы просто не попробовать их и не увидеть разницу?

Ответ 5

Run будет запускаться каждая строка кода, а это означает, что она попадает в начало каждой строки, которая выводит вывод на консоль. Источник ничего не печатает, если вы не используете эхо, а это означает, что ggplot не будет печатать на png, как уже упоминалось.

Ответ 6

При использовании RSTudio u можно нажать кнопку запуска в разделе script - она ​​запустит выбранную строку. Рядом с ним у вас есть кнопка повторного запуска, чтобы снова запустить строку. и кнопка источника рядом с ней будет запускать целые фрагменты кода.

Я нашел видео по этой теме:

http://www.youtube.com/watch?v=5YmcEYTSN7k

Ответ 7

Я также только что обнаружил, что кодировка, используемая для чтения полученной функции, также может отличаться, если вы используете исходный файл или добавляете функцию исходного файла в вашу среду с помощью Ctrl+Enter!

В моем случае в моей функции было регулярное выражение со специальным символом (µ). Когда я импортировал функцию напрямую (Ctrl+Enter), все работало, хотя у меня была ошибка при поиске файла, содержащего эту функцию.

Чтобы решить эту проблему, я указал кодировку исходного файла в функции source (source("utils.R", encoding = "UTF-8")).