Não foi possível enviar o arquivo. Será algum problema com as permissões?
Diferenças

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
Próxima revisão
Revisão anterior
Próxima revisão Ambos lados da revisão seguinte
ridiculas [2011/08/13 07:33]
jcfaria
ridiculas [2012/01/26 16:40]
walmes [section 4]
Linha 1: Linha 1:
  
-===== Ridículas ​- dicas curtas sobre R =====+===== R-idículas ​- dicas curtas sobre R =====
  
 {{:​nuvem.png?​550 |}} {{:​nuvem.png?​550 |}}
  
-**//Ridículas//** é a página do LEG dedicada à fornecer //dicas curtas// sobre R, e.g. condução de análises, operação com dados e confecção de gráficos. As dicas estão organizadas pelo título, seguido de descrição,​ palavras-chave e CMR (código mínimo reproduzível). Se você deseja contribuir com a nossa página de Ridículas, envie e-mail para ''​walmes@ufpr.br''​.+**//R-idículas//** é a página do LEG dedicada à fornecer //dicas curtas// sobre R, e.g. entre outras: otimização do ambiente, ​condução de análises, operação com dados e confecção de gráficos. As dicas estão organizadas pelo título, seguido de descrição,​ palavras-chave e CMR (código mínimo reproduzível). Se você deseja contribuir com a nossa página de R-idículas, envie e-mail para ''​walmes@ufpr.br''​.
  
 ---- ----
  
-==== .Rprofile no linux ====+==== Controlando gráficamente parâmetros de distribuições de probabilidade ​==== 
 + 
 +Temporariamente sem descrição.\\ 
 +palavras-chave:​ #rpanel. 
 <code R> <code R>
 #​------------------------------------------------------------------------------------------ #​------------------------------------------------------------------------------------------
-#                                                                                por JCFaria+#                                                                                por Walmes
 #​------------------------------------------------------------------------------------------ #​------------------------------------------------------------------------------------------
 +
 +require(rpanel)
 +
 +norm.panel <- function(panel){
 +  ##​------------------------------------------------------------------
 +  ## panel$interval:​ vetor com domínio de plotagem da função
 +  ## penel$...: serão parâmetros da distribuição de probabilidades
 +  curve(dnorm(x,​ mean=panel$mean,​ sd=panel$sd),​
 +        from=panel$interval[1],​ to=panel$interval[2])
 +  panel
 +  ##​------------------------------------------------------------------
 +}
 +
 +# passar os argumentos que serão fixos, abre a janelinha
 +panel <- rp.control(interval=c(-4,​4))
 +
 +# controla a média
 +rp.slider(panel,​ mean, -4, 4, initval=0, showvalue=TRUE,​ action=norm.panel)
 +
 +# controla o desvio-padrão
 +rp.slider(panel,​ sd, 0.001, 10, initval=1, showvalue=TRUE,​ action=norm.panel)
 +
 +#​------------------------------------------------------------------------------------------
 +</​code>​
 +
 +----
 +
 +
 +==== .Rprofile no Linux ====
 <code R> <code R>
 +#​------------------------------------------------------------------------------------------
 +#                                                                               por JCFaria
 +#​------------------------------------------------------------------------------------------
 +</​code>​
  
 Esse post tem a finalidade de compartilhar algumas coisas que considero importantes na inicialização do R no Linux! Esse post tem a finalidade de compartilhar algumas coisas que considero importantes na inicialização do R no Linux!
Linha 35: Linha 72:
  
 Pois bem, a medida que vamos aumentando nossa intimidade com o R (inevitavelmente) iremos desenvolvendo nossas próprias 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!).+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. +<fc #000080>Ai vem o problema: 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 ​precisam ​ser recarregadas.+Pior ainda, ao limpar o workspace do usuário (.GlobalEnv) ​ela é removida ​precisa ​ser recarregada. Imagine o contexto da necessidade de várias funções, que é o que geralmente acontece com o passar do tempo ...</fc>
  
-Tem como contornar? +<fc #​000080>​**Tem como contornar? Sim! De várias formas:**</​fc>​
-Sim! De várias formas:+
  
-1. Opção muito pouco prática:+**//1. Opção muito pouco prática://** 
 +<code R>
 oldp <- getwd() oldp <- getwd()
 setwd('/​home/​jcfaria/​dados/​r/​funcoes/'​) ​ setwd('/​home/​jcfaria/​dados/​r/​funcoes/'​) ​
 source('​cv.r'​) source('​cv.r'​)
 setwd(oldp) setwd(oldp)
 +</​code>​
  
-A função "​cv"​ ficará disponível no seu workspace mas será removida com a instrução:​+A função "​cv"​ ficará disponível no meu workspace mas será removida com a instrução:​
  
 <code R> <code R>
Linha 58: Linha 96:
  
  
-2. Opção ​"mais" ​prática:+**//2. Opção mais prática://**
 A mesma que a anterior, contudo, a função não deverá se chamar "​cv",​ mas sim "​.cv"​. 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 seu workspace e não será removida com a intrução:+Nesse caso ela permanecerá como um objeto oculto no meu workspace e não será removida com a intrução:
  
 <code R> <code R>
Linha 66: Linha 104:
 </​code>​ </​code>​
  
-Contudo poderá ser removida com a intrução:+Contudopoderá ser removida com a intrução:
  
 <code R> <code R>
Linha 73: Linha 111:
  
  
-3. Colocando suas funções em algum ambiente (environment) do R (optei pelo base)+**//3. Colocando suas funções em algum ambiente (environment) do R (optei pelo base)://**
 <code R> <code R>
 oldp <- getwd() oldp <- getwd()
Linha 81: Linha 119:
 </​code>​ </​code>​
  
-Ela não ficará no seu workspace, mas sim no base.+Ela não ficará no meu workspace, mas sim no base.
 Como tal, poderá ser usada com qualquer outra função desse pacote. Como tal, poderá ser usada com qualquer outra função desse pacote.
  
  
-4. Criando seu próprio ambiente (acho a solução mais elegante):+**//4. Criando seu próprio ambiente (acho a solução mais elegante)://**
 <code R> <code R>
 oldp <- getwd() oldp <- getwd()
Linha 94: Linha 132:
 </​code>​ </​code>​
  
-Nesse último caso (4)+Nesse último caso [**//4//**]
-O objeto "​.jcf"​ ficará oculto no meu workspace evitando ser deletado com rm(list=ls()) +  ​* ​O objeto "​.jcf"​ ficará oculto no meu workspace evitando ser deletado comrm(list=ls()) 
-Parar acessar a função "​cv" ​será necessário+  ​* ​Parar acessar a função "​cv" ​é necessário:
  
 <code R> <code R>
-> .env$cv+> .jcf$cv
  
 # ou # ou
Linha 118: Linha 156:
 </​code>​ </​code>​
  
-Esta forma de carregar funções de forma permanente no R pode ser usado para qualquer outro objeto.+Esta forma de carregar funções de forma permanente no R pode ser usado para qualquer outro objeto!
  
 No Windows bastava usar no /​etc/​Rprofile.site:​ No Windows bastava usar no /​etc/​Rprofile.site:​
Linha 126: Linha 164:
 </​code>​ </​code>​
  
-que ela fica disponível no pacote base. Não testei na versão em desenvolvimento (instável) que uso no linux+que ela ficava ​disponível no pacote base. 
-mas deve ainda funcionar.+ 
 +No Windows não testei na versão em desenvolvimento (instável) que uso no Linux
 +mas deve funcionar, pois usei por muitos anos em várias versões. 
 + 
 +Abaixo meu .Rprofile:​ 
 +<code R> 
 +## José Cláudio Faria/​UESC/​DCET 
 + 
 +##​¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ 
 +## General options 
 +library(utils) 
 +options(list(repos='​http://​cran-r.c3sl.ufpr.br/',​ 
 +             ​width=80,​ 
 +             ​editor='​vim',​ 
 +             ​browser='​chromium'​)) 
 + 
 +##​¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ 
 +## Package debug: options 
 +options(list(debug.height=10,​ 
 +             ​debug.width=125,​ 
 +             ​debug.screen.pos='​-1680+00'​ # dois monitores! 
 +             )) 
 + 
 +##​¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ 
 +## Funtions: myself 
 +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()) 
 + 
 +.jcf <- new.env() 
 +source('​fitreg.r', ​   local=.jcf) 
 +source('​fitregl.r', ​  ​local=.jcf) 
 +source('​fitrlcor.r', ​ local=.jcf) 
 +source('​plotreg.r', ​  ​local=.jcf) 
 +source('​plotrl.r', ​   local=.jcf) 
 +source('​plotlm3d.r', ​ local=.jcf) 
 +source('​cv.r', ​       local=.jcf) 
 +source('​rs.r', ​       local=.jcf) 
 +source('​sourcedir.r',​ local=.jcf) 
 +#​attach(.jcf) 
 + 
 +##​¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ 
 +## Removing variables 
 +setwd(oldp) 
 +rm(oldp) 
 + 
 +##​¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬ 
 +## Packages: loading 
 +#​library(fdth) 
 +#​library(ScottKnott) 
 +#​library(bpca) 
 +#​library(TukeyC) 
 +#​library(reshape) 
 +#​library(debug) 
 +</​code>​
  
 ---- ----
Linha 162: Linha 262:
 #       ​http://​www.youtube.com/​watch?​v=E4uR5I1uLFM #       ​http://​www.youtube.com/​watch?​v=E4uR5I1uLFM
  
 +#​------------------------------------------------------------------------------------------
 +
 +mergeAll <- function(...,​ by="​date",​ all=TRUE){
 +  dotArgs <- list(...)
 +  Reduce(
 +         ​function(x,​ y){
 +           ​merge(x,​ y, by = by, all = all, suffixes=paste("​.",​ names(dotArgs),​ sep = ""​))
 +         },
 +         ​dotArgs)
 +}
 +
 +mergeAll(a = a1, b = a2, c = a3, by="​id"​)
 +
 +str(.Last.value)
 +
 +You also might be able to set it up to capture names without you having to put "a = a" etc. using substitute.
 +
 +# http://​r.789695.n4.nabble.com/​merge-multiple-data-frames-td4331089.html
 +# ver reshape::​merge_all()
 #​------------------------------------------------------------------------------------------ #​------------------------------------------------------------------------------------------
 </​code>​ </​code>​
Linha 1521: Linha 1640:
 hx <- seq(media+2*stder,​ media+3*stder,​ .01) hx <- seq(media+2*stder,​ media+3*stder,​ .01)
 hy <- dnorm(hx, media, stder) hy <- dnorm(hx, media, stder)
-n <- length(hy)+n <- 
 + length(hy)
 polygon(c(hx,​ rev(hx)), c(hy, rep(0, n)), col=2) polygon(c(hx,​ rev(hx)), c(hy, rep(0, n)), col=2)
 </​code>​ </​code>​
  

QR Code
QR Code ridiculas (generated for current page)