Я использую Rstudio и не уверен, что параметры "run" и "source" различны.
Я пробовал использовать эти термины, но "источник" - очень распространенное слово и не смог получить хорошие результаты поиска: (
Я использую Rstudio и не уверен, что параметры "run" и "source" различны.
Я пробовал использовать эти термины, но "источник" - очень распространенное слово и не смог получить хорошие результаты поиска: (
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))
}
Иногда по причинам, которые я не понимаю, вы получите другое поведение в зависимости от того, выбираете ли вы все строки кода и нажмите кнопку запуска или перейдите в меню кодов и выберите "источник". Например, в одном конкретном случае запись gplot в файл png работала, когда я выбрал все мои строки кода, но запись не удалась, когда я перешел в меню кода и выбрал "источник". Однако, если я выбираю "Source with Echo", я могу снова распечатать файл png.
Я просто сообщаю о различиях здесь, которые я видел между выбором и запуском всех ваших строк и кода и переходом в меню кодов и выбором "источника", по крайней мере, в случае, когда вы пытаетесь распечатать gplot до png файл.
Важный смысл ответа @AndyClifton:
Точки останова Rstudio работают в source
(Ctrl-Shift-S), но не в run
(Ctrl-Enter)
Предположительно, причина в том, что с run
код передается прямо в консоль без поддержки частичной отправки.
Вы все еще можете использовать browser()
, хотя с run
.
print()
для консоли поддерживается в debugSource
(Ctrl-Shift-S), а также в run
.
Кнопка "запустить" просто выполняет выбранную строку или строки. Кнопка "Источник" выполнит весь активный документ. Но почему бы просто не попробовать их и не увидеть разницу?
Run
будет запускаться каждая строка кода, а это означает, что она попадает в начало каждой строки, которая выводит вывод на консоль. Источник ничего не печатает, если вы не используете эхо, а это означает, что ggplot не будет печатать на png, как уже упоминалось.
При использовании RSTudio u можно нажать кнопку запуска в разделе script - она запустит выбранную строку. Рядом с ним у вас есть кнопка повторного запуска, чтобы снова запустить строку. и кнопка источника рядом с ней будет запускать целые фрагменты кода.
Я нашел видео по этой теме:
Я также только что обнаружил, что кодировка, используемая для чтения полученной функции, также может отличаться, если вы используете исходный файл или добавляете функцию исходного файла в вашу среду с помощью Ctrl+Enter
!
В моем случае в моей функции было регулярное выражение со специальным символом (µ). Когда я импортировал функцию напрямую (Ctrl+Enter
), все работало, хотя у меня была ошибка при поиске файла, содержащего эту функцию.
Чтобы решить эту проблему, я указал кодировку исходного файла в функции source
(source("utils.R", encoding = "UTF-8")
).