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.
Réponses
Trop de publicités?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
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! :-)
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.
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"))
}
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")))
}
}