Rstudio différence entre run et source

J'utilise Rstudio et je ne sais pas comment les options " run " et "source" sont différentes.

J'ai essayé de googler ces termes mais 'source' est un mot très commun et n'a pas pu obtenir de bons résultats de recherche: (

entrez la description de l'image ici

30
demandé sur user2543622 2014-05-29 03:49:45

6 réponses

Run et source ont subtilement différentes significations. Selon la documentation RStudio ,

La différence entre l'exécution de lignes à partir d'une sélection et l'appel La Source est que lors de l'exécution d'une sélection toutes les lignes sont insérées directement dans la console alors que le fichier est enregistré dans un emplacement temporaire puis source dans la console à partir de là (créant ainsi moins d'encombrement dans la console).

Quelque chose à savoir, est-ce les fonctions d'approvisionnement dans les fichiers les rendent disponibles pour les scripts à utiliser. Qu'est-ce que cela signifie? Imaginez que vous essayez de résoudre une fonction appelée à partir d'un script. Vous avez besoin de source le fichier contenant la fonction, de faire des modifications disponibles dans la fonction lorsque cette ligne dans le script est alors run.

Un autre aspect de ceci est que vous pouvez source fonctions à partir de vos scripts. J'utilise ce code pour sourcer automatiquement toutes les fonctions dans un répertoire, ce qui rend il est facile d'exécuter un long script avec un seul 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))
}
21
répondu Andy Clifton 2014-06-25 21:04:03

Parfois, pour des raisons que je ne comprends pas, vous obtiendrez un comportement différent selon que vous sélectionnez Toutes les lignes de code et appuyez sur le bouton Exécuter le bouton ou allez dans le menu code et choisissez ' source."Par exemple, dans un cas précis, l'écriture d'un gplot à un fichier png travaillé lorsque j'ai sélectionné toutes mes lignes de code, mais l'écriture a échoué à quand je suis allé le code de menu et choisissez" source.'Cependant, si je choisis 'Source avec Echo', je peux imprimer à nouveau dans un fichier png.

Je signale simplement une différence ici que j'ai vu entre la sélection et l'exécution de toutes vos lignes et code et aller dans le menu code et choisir 'source', au moins dans le cas où vous essayez d'imprimer un gplot dans un fichier png.

5
répondu Christopher Skyi 2015-08-20 15:43:43

Une implication importante de la réponse de @AndyClifton est:

Rstudio points d'arrêt travailler dans source (Ctrl-Maj-S), mais pas dans run (Ctrl-Enter)

On peut supposer que la raison en est qu'avec run, le code est passé directement dans la console sans prise en charge d'une soumission partielle.

, Vous pouvez toujours utiliser browser() bien avec run bien.

print() la console est pris en charge dans debugSource (Ctrl-Maj-S) ainsi que les run.

2
répondu C8H10N4O2 2018-02-23 13:55:06

Le bouton "Exécuter" exécute simplement la ou les lignes sélectionnées. Le bouton "source" exécutera l'intégralité du document actif. Mais pourquoi ne pas simplement les essayer et voir la différence?

1
répondu Anders Ellern Bilgrau 2014-06-03 11:44:41

Run chaque ligne de code, ce qui signifie qu'elle frappe entrer au début de chaque ligne, qui affiche la sortie de la console. Source ne sera pas imprimer quoi que ce soit à moins que vous source avec echo, ce qui signifie que ggplot ne sera pas imprimer au format PNG, comme un autre posté mentionné.

1
répondu Julian Zucker 2017-05-25 22:08:22

Lorsque vous utilisez RSTudio, vous pouvez appuyer sur le bouton Exécuter dans la section script - il exécutera la ligne sélectionnée. À côté de cela, vous avez le bouton Re-run, pour exécuter à nouveau la ligne. et le bouton source à côté de lui exécutera des morceaux entiers de code.

J'ai trouvé une vidéo sur ce sujet:

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

0
répondu user3771476 2014-06-25 20:35:09