268 votes

Utilisateurs d'Expert R, qu'y a-t-il dans votre .Rprofile?

Cette question est peut-être un peu trop mignonne, mais j'ai toujours trouvé des fichiers de profils de démarrage d'autres personnes à la fois utiles et instructifs sur la langue. De plus, alors que j'ai une certaine personnalisation pour bash et vim, je n'ai rien pour R. Par exemple, une chose que j'ai toujours voulu est des couleurs différentes pour le texte d'entrée et de sortie dans un terminal, et peut-être même la coloration syntaxique.

94voto

Dirk Eddelbuettel Points 134700

Voici le mien. Ça ne va pas vous aider avec la coloration mais je l'obtiens d'ESS et d'Emacs ...

 options("width"=160)                # wide display with multiple monitors
options("digits.secs"=3)            # show sub-second time stamps

r <- getOption("repos")             # hard code the US repo for CRAN
r["CRAN"] <- "http://cran.us.r-project.org"
options(repos = r)
rm(r)

## put something this is your .Rprofile to customize the defaults
setHook(packageEvent("grDevices", "onLoad"),
        function(...) grDevices::X11.options(width=8, height=8, 
                                             xpos=0, pointsize=10, 
                                             #type="nbcairo"))  # Cairo device
                                             #type="cairo"))    # other Cairo dev
                                             type="xlib"))      # old default

## from the AER book by Zeileis and Kleiber
options(prompt="R> ", digits=4, show.signif.stars=FALSE)


options("pdfviewer"="okular")         # on Linux, use okular as the pdf viewer
 

58voto

dalloliogm Points 2628

Je déteste taper les mots complets «tête», «résumé», «noms» à chaque fois, donc j'utilise des alias.

Vous pouvez mettre des alias dans votre fichier .Rprofile, mais vous devez utiliser le chemin d'accès complet à la fonction (par exemple utils :: head) sinon cela ne fonctionnera pas.

 # aliases
s <- base::summary
h <- utils::head
n <- base::names
 

EDIT: pour répondre à votre question, vous pouvez utiliser le package colorout pour avoir différentes couleurs dans le terminal. Cool! :-)

57voto

Eduardo Leoni Points 4470
 options(stringsAsFactors=FALSE)
 

Bien que je ne l'ai pas réellement dans mon .Rprofile, parce que cela pourrait casser le code de mes coauteurs, je souhaite que ce soit le défaut. Pourquoi?

1) Les vecteurs de caractères utilisent moins de mémoire (mais seulement à peine);

2) Plus important encore, nous éviterions des problèmes tels que:

 > x <- factor(c("a","b","c"))
> x
[1] a b c
Levels: a b c
> x <- c(x, "d")
> x
[1] "1" "2" "3" "d"
 

et

 > x <- factor(c("a","b","c"))
> x[1:2] <- c("c", "d")
Warning message:
In `[<-.factor`(`*tmp*`, 1:2, value = c("c", "d")) :
  invalid factor level, NAs generated
 

Les facteurs sont géniaux quand vous en avez besoin (par ex. Mettre en place des commandes dans les graphiques) mais gênent la plupart du temps.

26voto

hadley Points 33766

Voici la mienne. J'utilise toujours le dépôt principal de Cran, et j'ai du code pour le rendre facile à trouver dans le code du paquet de développement.

 .First <- function() {
    library(graphics)
    options("repos" = c(CRAN = "http://cran.r-project.org/"))
    options("device" = "quartz")
}

packages <- list(
  "describedisplay" = "~/ggobi/describedisplay",
  "linval" = "~/ggobi/linval", 

  "ggplot2" =  "~/documents/ggplot/ggplot",
  "qtpaint" =  "~/documents/cranvas/qtpaint", 
  "tourr" =    "~/documents/tour/tourr", 
  "tourrgui" = "~/documents/tour/tourr-gui", 
  "prodplot" = "~/documents/categorical-grammar"
)

l <- function(pkg) {
  pkg <- tolower(deparse(substitute(pkg)))
  if (is.null(packages[[pkg]])) {
    path <- file.path("~/documents", pkg, pkg)
  } else {
    path <- packages[pkg]
  }

  source(file.path(path, "load.r"))  
}

test <- function(path) {
  path <- deparse(substitute(path))
  source(file.path("~/documents", path, path, "test.r"))  
}
 

26voto

Jeff Points 1047

J'aime sauvegarder mon historique des commandes R et le rendre disponible chaque fois que je lance R:

Dans la coquille ou .bashrc:

 export R_HISTFILE=~/.Rhistory
 

en .Rprofile:

 .Last <- function() {
        if (!any(commandArgs()=='--no-readline') && interactive()){
                require(utils)
                try(savehistory(Sys.getenv("R_HISTFILE")))
        }
}
 

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