
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 ///\\\///\\\///\\\///\\\///\\\///\\\///\\\///\\\