100 votes

Quitter et redémarrer une session R propre à partir de R ?

Y a-t-il un moyen de créer un alias, dans R, qui exécutera q() et ensuite redémarrer une session R propre ?

Et oui, je suis trop paresseux pour taper. q() et ensuite la lettre R :)

0 votes

Eh bien, vous pouvez vider votre espace de travail avec rm(list=ls()) mais ce n'est pas ce que vous voulez dire, n'est-ce pas ?

2 votes

Voulez-vous également détacher tous les paquets et autres choses que vous avez pu attacher ?

2 votes

Une suggestion serait peut-être d'ajouter une nouvelle option save pour q() tels que "r" qui redémarre R sans sauvegarder l'espace de travail. Ensuite, un alias pour q("r") pourrait être affecté à une nouvelle fonction qui redémarre R.

0voto

hedgedandlevered Points 332
makeActiveBinding("refresh", function() { system(paste0(R.home(),"/bin/i386/R")); q("no") }, .GlobalEnv)

ou avec --save ou --no-save

paste0(R.home(),"/bin/i386/R --no-save")

Je pense que c'est ce dont vous avez besoin si vous avez utilisé setwd() avant d'appeler refresh (bien que ni ceci ni la version originale ne fonctionne pour moi, puisqu'il redémarre R puis se ferme, une nouvelle fenêtre n'est jamais ouverte. Si quelqu'un peut faire un commentaire à ce sujet, merci de le faire)

0 votes

Lorsque j'essaie ceci, une nouvelle fenêtre s'ouvre, mais l'ancienne fenêtre reste ouverte dans un état figé jusqu'à ce que la nouvelle fenêtre soit fermée.

0voto

Adam Lee Perelman Points 651

J'ai écrit la fonction suivante. Rappelez-vous ! Vous ne pouvez l'utiliser qu'une seule fois, puis vous devez la recharger après le redémarrage de la session R.

clc <- function() {
  rm(list = ls(envir = globalenv()),envir = globalenv()) #clear Vars from global enviroment
  gc()  #grabage colector
  cat("\014") #clc
  .rs.restartR() #clear session
}

Parfois, détacher un paquet aide aussi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X