Comment puis-je faire R lire mes variables d'environnement?
Je suis en cours d'exécution de R sur EC2 instances ponctuelles et j'ai besoin de R pour mettre fin à l'instance et d'annuler le spot demande une fois que le script est exécuté.
Pour ce que j'ai mis la "Demande" ID dans une variable d'environnement dans /.bashrc
et mon plan était de simplement appeler le code suivant dans la R une fois que le script est prêt
system("ec2-cancel-spot-instance-requests $SIR")
La question que je vais avoir, c'est que R n'est pas "voir" les mêmes variables d'environnement je l'ai vu quand j'type env
de l'extérieur R ainsi, la commande ne fonctionne pas.
J'ai vérifié et si j'ai mis mes variables d'environnement à /etc/environment
R est capable de voir ces variables, mais ici, c'est l'autre problème. Comme ces variables sont dynamiques (l'ID de l'instance et l'ID de la demande est différente à chaque fois un spot instance est créée), je suis en cours d'exécution d'un script pour créer la forme de:
export SIR=`cat /etc/ec2_instance_spot_id.txt`
Où ce fichier contient la dynamique ID
Alors, comment puis-je insérer "dynamique" variables d'environnement dans /etc/environment
? Ou, comment puis-je faire R lire les variables d'environnement à /.bashrc
?
Tout pointe dans la bonne direction sera très appréciée!
source ~/.profile
, puis R
à partir d'un terminal pour le faire fonctionner après l'ajout de nouvelles variables.OriginalL'auteur JordanBelf | 2012-09-06
Vous devez vous connecter pour publier un commentaire.
Vous voulez
Sys.getenv()
comme dansSys.getenv("PATH")
, dire.Ou pour votre exemple, essayez de
Comme pour les variables de configuration au démarrage, voir
help(Startup)
à apprendre à propos de~/.Renvironment
etcnames(s <- Sys.getenv())
puisSIR
n'est pas là, si je neSIR <- Sys.getenv("SIR")
il n'y a rien dans MONSIEUR, mais quand je l'ai sortie R et je neenv
que la liste des variables d'environnement est totalement différent de celui que j'obtiens quand jeSys.getenv()
et là, je peux voir SIR et d'autres dont j'ai besoin. Je vais donner un coup d'oeil àRenvironment
, merci beaucoup encore une fois.OK, c'est honteux.Pourquoi j'ai envie de lire les variables d'environnement dans R si j'ai déjà créé 2 fichiers avec l'ID de la demande et de l'ID d'instance? Je peux obtenir la valeur de ces dossiers et effectuer ma tâche... cela n'explique pas pourquoi la R ne voyait pas les mêmes variables environnementales comme je le vois quand j'ai quitté la R, mais me va! Merci pour l'inspiration!
J'ai fait ce travail en utilisant
Sys.setenv()
et, fondamentalement, la copie de mes variables d'environnement de l'extérieur de R vers R. Bien que mon script fonctionne, je souhaite que je pourrais comprendre pourquoi il y a toute une série de différentes variables environnementales écrit, où doivent figurer ROriginalL'auteur Dirk Eddelbuettel
À l'aide de
Sys.getenv()
vous voyez toutes les variables énumérées dans l'environnement actuel.Cependant, ils sont différents de ceux utilisés dans votre shell courant, par exemple spécifié .de profil.
De définir les variables de R créer un
.Renviron
fichier dans votre répertoire home et y écrireAprès le redémarrage de R vous serez en mesure d'accéder à cette variable avec
OriginalL'auteur Thorsten