Je cherche un moyen de tester si R est exécuté à partir de RStudio. Pour une raison quelconque, je pouvais trouver la réponse sur Google hier mais pas aujourd'hui, mais je pense que cela avait à voir avec le fait de tester si une certaine variable système était définie.
Il n'y a pas de "course à l'intérieur de RStudio". RStudio est simplement une couche IDE qui enveloppe R; à la fin de la journée, il lance simplement le fichier exécutable R normal que vous devez avoir de toute façon sur votre $ PATH pour pouvoir utiliser RStudio.
En tant que proxy et en tant que R Studio, vous pouvez tester available.packages () pour le paquet 'manipulate', ou une version plus courte pour voir si RStudio s'est ajouté au contenu de .libPath()
:
R> any(grepl("RStudio", .libPaths()))
[1] TRUE
R>
R>
C'est de ?rstudio
:
# Test whether running under RStudio
isRStudio <- Sys.getenv("RSTUDIO") == "1"
Il existe également rstudioapi::isAvailable()
, mais sa vérification est moins fiable car RStudio ne semble pas vraiment avoir besoin du package rstudioapi
pour fonctionner correctement.
Cochez l'option .Platform$GUI
pour "RStudio"
is.rstudio = function(){
.Platform$GUI == "RStudio"
}
Voir:
Lorsque je lance RStudio, il semble disposer d'outils: rstudio en position 2 sur le chemin de recherche. Cela a une fonction "RStudio.version" qui n'est pas documentée mais qui semble renvoyer la chaîne de version RStudio:
> RStudio.version()
[1] "0.96.316"
Vous pouvez donc définir:
is.RStudio <- function(){
if(!exists("RStudio.version"))return(FALSE)
if(!is.function(RStudio.version))return(FALSE)
return(TRUE)
}
et peut-être l'utiliser.
Pour ajouter au nombre de suppositions de Nice, voici un message de 2011 (Ice Age)
http://support.rstudio.org/help/discussions/problems/413-location-of-installed-packages
if (Sys.getenv("RSTUDIO_USER_IDENTITY")!= ""){
.libPaths(.Library) # Avoid additional libraries } else { # not rstudio ...
A ce jour, quelques packages incluent des fonctions permettant de vérifier si RStudio est en cours d'exécution:
rstudioapi::isAvailable()
assertive::is_rstudio()
(liste non exhaustive)
Les packages assertive
et assertive.reflections
, resp., Incluent des fonctions supplémentaires permettant de rechercher d'autres IDE, versions de bureau/serveur de RStudio et diverses versions R
(par exemple, alpha, bêta, de développement, de publication, corrigée, etc.).
Je trouve les oeuvres suivantes pour moi
checkRstudio <- function () {
return ("tools:rstudio" %in% search())
}
Je suis un peu nouveau sur R moi-même, mais je pense que Rstudio charge nécessairement le package "tools: rstudio" pour pouvoir s'exécuter.
Sur un Mac, seule la réponse Sys.getenv fonctionne.
plate-forme x86_64-Apple-darwin10.8.0
version.string R version 3.1.0 (2014-04-10)
Sys.getenv ("RSTUDIO") == "1" [1] VRAI
Erreur RStudio.version (): impossible de trouver la fonction "RStudio.version"
any (grepl ("RStudio", .libPaths ())) [1] FALSE
.libPaths () [1] "/Library/Frameworks/R.framework/Versions/3.1/Resources/library"
La solution soignée est maintenant disponible via le paquet startup
via la fonction is_rstudio_console
:
startup:::is_rstudio_console()
[1] TRUE