[R-br] .Rprofile no Linux
Jose Claudio Faria
joseclaudio.faria em gmail.com
Quinta Agosto 11 12:43:33 BRT 2011
Olá pessoal,
Este "post" tem a finalidade de compartilhar algumas coisas que
considero importantes na inicialização do R.
É voltado para o Linux, mas os princípios, com os devidos cuidados,
podem ser usados também no Windows.
Muitas das opções importantes, do ponto de vista funcional (não
relativos à aparência), podem ser feitas no arquivo .Rprofile.
Esse arquivo deve ficar localizado no home do usuário: ~/.Rprofile e é
um dos primeiros a ser lido quando uma sessão do
R é iniciada.
Tenho uma função (bem simples) que uso bastante em meu dia a dia: "cv"
para calcular o coef. de variação de uma ANOVA:
cv <- function(av)
{
if(is.null(av) || !inherits(av, 'aov'))
stop('Please, check the parameter!')
qmee <- with(av, sum(residuals^2) / df.residual)
cv <- 100 * sqrt(qmee) / mean(av$fitted.values)
return(round(cv, 2))
}
Pois bem, a medida que vamos aumentando nossa intimidade com o R
(inevitavelmente) iremos desenvolvendo nossas próprias
funções (o R foi projetado para isso!).
Ai vem o problema de ter que SEMPRE carregar a função quando for usar,
o que pode se tornar uma chatisse.
Pior ainda, ao limpar o workspace do usuário (.GlobalEnv) elas são
removidas e precisam ser recarregadas.
Tem como contornar?
Sim, de várias formas:
1. Opção muito pouco prática:
oldp <- getwd()
setwd('/home/jcfaria/dados/r/funcoes/')
source('cv.r')
setwd(oldp)
A função "cv" ficará disponível no workspace do usuário mas será
removida com a instrução:
> rm(list=ls())
muito usada por várias GUIs.
2. Opção "mais" prática:
A mesma que a anterior, contudo, a função não deverá se chamar "cv",
mas sim ".cv".
Nesse caso ela permanecerá como um objeto oculto no workspace e não
será removida com a intrução:
> rm(list=ls())
Contudo poderá ser removida com a intrução:
> rm(list=ls(all=TRUE))
3. Colocando suas funções em algum ambiente (environment) do R (optei pelo base)
oldp <- getwd()
setwd('/home/jcfaria/dados/r/funcoes/')
source('cv.r', local=baseenv())
setwd(oldp)
4. Criando seu próprio ambiente (acho a solução mais elegante):
.env <- new.env()
oldp <- getwd()
setwd('/home/jcfaria/dados/r/funcoes/')
source('cv.r', local=.env)
setwd(oldp)
Nesse último caso (4):
- O objeto ".env" ficará oculto no seu workspace evitando ser deletado
com rm(list=ls())
- Parar acessar a função "cv" será necessário
> .env$cv
Por exemplo:
> av <- aov(Sepal.Length ~ Species, data=iris)
> .env$cv(av)
[1] 8.81
Esta forma de carregar as funções de forma permanente no R pode ser
usado para qualquer objeto.
No Windows bastava usar:
source('cv', local=TRUE) que ela fica disponível no pacote base,
contudo, não testei na versão mais nova.
Proveito para disponibilizar meu .Rprofile que poderá ser útil para os
que estão começando
## José Cláudio Faria/UESC/DCET
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## General options
library(utils)
options(list(repos='http://cran-r.c3sl.ufpr.br/',
width=50,
editor='vim',
browser='chromium'))
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Package debug: options
options(list(debug.height=10,
debug.width=125,
debug.screen.pos='-1680+00')) # PARA DOIS MONITORES
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Functions
oldp <- getwd()
setwd('/home/jcfaria/dados/r/funcoes/')
#source('fitreg.r', local=baseenv())
#source('fitregl.r', local=baseenv())
#source('fitrlcor.r', local=baseenv())
#source('plotreg.r', local=baseenv())
#source('plotrl.r', local=baseenv())
#source('plotlm3d.r', local=baseenv())
#source('cv.r', local=baseenv())
#source('rs.r', local=baseenv())
#source('sourcedir.r', local=baseenv())
.env <- new.env()
source('fitreg.r', local=.env)
source('fitregl.r', local=.env)
source('fitrlcor.r', local=.env)
source('plotreg.r', local=.env)
source('plotrl.r', local=.env)
source('plotlm3d.r', local=.env)
source('cv.r', local=.env)
source('rs.r', local=.env)
source('sourcedir.r', local=.env)
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Removing variables
setwd(oldp)
rm(oldp)
##¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
## Packages: loading
#library(fdth)
#library(ScottKnott)
library(bpca)
library(reshape)
library(debug)
Abs,
--
///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
Jose Claudio Faria
Estatistica - Prof. Pleno
UESC/DCET/Brasil
joseclaudio.faria at gmail.com
///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\
Mais detalhes sobre a lista de discussão R-br