J'utilise le logiciel R pour une analyse statistique et je suis triste de ne pas préserver et restaurer mon historique de commande rapide. En effet, appuyez sur la flèche Up sur une session interactive R nouvellement démarrée révélera une histoire vierge, à chaque fois. Ce serait génial s'il pouvait faire cela de manière, disons, similaire à Bien sûr, cette ligne est présente dans mon Tout cela se passe via SSH sur un serveur distant exécutant Linux. Toute aide grandement appréciée! P> p> iphon code>. J'ai essayé de mettre cela dans mon
.RProfile code> en vain. Aucun fichier contenant mon historique de commande n'est jamais créé.
.bash_profile code> p>
4 Réponses :
Si vous travaillez avec RGUI: sauvegardehistoire () code>,
loadhistory () code> et
historique () code> pourrait faire le travail. Sinon, je suppose que cela dépend de l'IDE .. p>
Je ne suis pas intéressé à sauver ma session pour le moment. Je voulais juste que mon histoire soit préservée. Je n'utilise aucun IDE.
La première réponse était hors sujet, je suis tellement fatiguée
Oui, j'ai identifié le sauvegarde () code> et
Loadhistory () code>. Je demande comment cela se produira automatiquement à chaque nouvelle création de session.
dans mon dans mon ~ / .profile code> J'ai:
~ / .rprofile code> J'ai: p>
if (interactive()) {
.Last <- function() try(savehistory("~/.Rhistory"))
}
Cela ne fonctionne pas pour moi. Il chargera ce qui est jamais dans ~ / .rhistory code> mais ne sauvegardera pas à la fin de chaque session, à moins que je ne réponde oui à la question de l'image de sauvegarde de l'espace de travail.
@xapple j'ai aussi alias r = 'r -no-sauvegarde - NO-restaurer-data --Quiet' code> dans mon profil qui élimine les questions sur la fermeture.
Vous pourriez envisager EMACS et ESS, qui fonctionnent bien sur SSH et permettent la méthode plus habituelle (et généralement considérée comme plus puissante) de conserver des commandes utiles dans un fichier séparé. p>
Pourriez-vous commenter plus sur les inconvénients et les avantages d'utiliser ESS et de donner un didacticiel?
Ce serait une bonne réponse, mais malheureusement plus que je suis prêt à fournir. Ma meilleure réponse est de trouver un collègue amical qui l'utilise et d'aller de là. C'est assez différent de la plupart des programmes «modernes» qui aident une main en personne sont particulièrement utiles.
Une alternative au paramètre Il y a un certain supplément cloches et sifflets ici: p> .Last code> enregistre un finaliseur pour
.globalenv code>, qui sera exécuté même si la session R est sortie avec EOF ( CTRL < / kbd> + z kbd> sous Windows et ctrl kbd> + d kbd> ailleurs):
invisible () code> veasse de la valeur de retour de
Reg.Finalizer () code> n'est pas imprimé lorsque r démarre li>
.RHistory code> est enregistré dans le répertoire actuel.
eval (bquote (.... (getwd ()) ...)) code> évalue
getwd () code> pendant le démarrage, de sorte que le répertoire actuel lors du démarrage est utilisé. à la sortie li>
onexit = true code> veille à ce que le code est en réalité exécuté li>
ul> p>
Pas vraiment une réponse, mais la plupart des gens, je pense recommander sauver les commandes que vous souhaitez utiliser à nouveau dans un script. Ensuite, vous n'avez pas à wade à travers toute votre histoire pour trouver les quelques commandes que vous souhaitez.
Ouais bien sûr, j'écrirai mon pipeline final dans un script; Mais imaginez d'utiliser quelque chose comme la coquille bash sans préservation de l'histoire entre les sessions, ne seriez-vous pas frustré aussi?
Non, pas vraiment. Je tape les commandes que je veux conserver dans mon script et un pneumatique dans la console. En fait, je suis frustré quand j'oublie de mettre quelque chose que je veux plus tard dans mon script et que je doive tacheter à travers mon histoire pour le trouver.
Vous ne mentionnez pas ce que UI vous utilisez - peut-être essayer RStudio ou similaire?
@hadley Je viens de lancer l'invite R à partir du shell Bash après la connexion à un nœud sur le cluster avec SSH.
Ah, cela clarifie beaucoup sur le type de solutions possibles et pourquoi vous vous souciez de l'histoire. La solution de Hadley travaille-t-elle pour vous?