Mostrar mensagens com a etiqueta r-project. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta r-project. Mostrar todas as mensagens

sábado, 23 de agosto de 2014

Simplificando o carregamento de bibliotecas no R

Uma das preocupações que sempre tive com os meus scripts de R foi de garantir a existência das bibliotecas necessárias para que estes pudessem ser executados noutras máquinas sem o aparecimento de mensagens irritantes como a que se segue.

> library(RODBC)
Error in library(RODBC) : there is no package 'RODBC'

Para tal, sempre inclui um bloco de código no início de cada script para evitar esta situação.

#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
# install & load necessary packages ----
#<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

necessary = c(NULL, 'RODBC')

installed = necessary %in% .packages(all.available = TRUE)

# install
if (length(necessary[!installed]) >=1) 
  install.packages(necessary[!installed])

# load
for(pkg in necessary) 
  library(pkg, character.only=TRUE)  
 
rm(necessary, installed, pkg)

No entanto, esta abordagem tinha a desvantagem de me obrigar a alterar  e re-executar o código sempre que se tornava necessário adicionar uma nova biblioteca.

Decidi finalmente arranjar uma alternativa mais prática de onde surgiu a função require2 que partilho aqui.

sexta-feira, 23 de março de 2012

SQLite : Uma base de dados para o actuário

Enquanto procurava uma alternativa para o limite de 2 gigabytes do Microsoft Access, encontrei o SQLite (http://www.sqlite.org/) uma pequena biblioteca (350Kb) em linguagem C sem dependências externas que implementa um servidor de base de dados SQL.

O código fonte do SQLite é do domínio público e multi plataforma, possui um mecanismo de armazenamento seguro com transações ACID e suporta bases de dados até 2 terabytes.

A simplicidade do SQLite baseia-se no facto de actuar directamente sobre um único ficheiro (a base de dados) no disco rígido, não necessitando de instalação, configuração ou administração. A realização de uma cópia de segurança resume-se a copiar o ficheiro para outra localização.

Outra vantagem acrescida é a sua ligação directa ao R (http://www.r-project.org).

domingo, 18 de março de 2012

"Template" para um projecto em R

Actualmente este é o modo como início um novo projecto em R.

#===========================================================
# script : a project
# author : vitor chagas             last updated : 20120318
#===========================================================
 
#-----------------------------------------------------------
# create & set workspace folder
#-----------------------------------------------------------
workdir <- "~/R-projects/a project"
 
dir.create(workdir, recursive=TRUE)
 
setwd(workdir)
 
rm(workdir)
 
 
#-----------------------------------------------------------
# install & load necessary packages
#-----------------------------------------------------------
necessary <- c('sqldf', 'actuar') 
 
installed <- necessary %in% .packages(all.available=TRUE)
 
# install
if (length(necessary[!installed])>=1) 
  install.packages(necessary[!installed])
 
# load
for(pkg in necessary) 
  library(pkg, character.only=TRUE)  
 
rm(necessary, installed, pkg)

O principal objectivo deste "template" é tentar reduzir a intervenção do utilizador necessária para executar o programa que se segue.

Assim é criada a pasta de trabalho e é assegurada a instalação das bibliotecas utilizadas.

sábado, 17 de março de 2012

RStudio : O melhor ambiente de trabalho para o R

Depois de ter experimentado diversos ambientes / editores para trabalhar com o R (www.r-project.org) encontrei, no RStudio (www.rstudio.org), um "quase" perfeito para mim.

image-17

A arrumação extremamente bem conseguida do seu ecrã e o facto de existir para os principais sistemas operativos, são mais valias que não se podem ignorar.

sábado, 12 de março de 2011

Transferir dados do Excel para o R

Clipboard
Um dos modos mais simples de transferir dados dos Excel para o R é via o clipboard.

No Excel seleccionar apenas a área das células pretendidas (nomes das variáveis e dados), e copia-se para o clipboard (Ctrl-C). No R, cria-se um data frame chamado «dados» através dos seguintes comando:


dados <- read.delim("clipboard") 
dados # só para ver o resultado

De notar que esta técnica não funciona muito bem com números que tenham decimais, o já habitual problema do «ponto» ao invés da «vírgula» como separador decimal.

domingo, 11 de julho de 2010

Gerir a memória disponível numa sessão de R

No R, a memória ocupada (disponível) é algo que necessitamos de controlar continuamente.

Este é um truque muito útil que encontrei no stackoverflow.com

# improved list of objects
.ls.objects <- function (pos = 1, pattern, order.by,
decreasing=FALSE, head=FALSE, n=5) {
napply <- function(names, fn) sapply(names, function(x)
fn(get(x, pos = pos)))
names <- ls(pos = pos, pattern = pattern)
obj.class <- napply(names, function(x) as.character(class(x))[1])
obj.mode <- napply(names, mode)
obj.type <- ifelse(is.na(obj.class), obj.mode, obj.class)
obj.size <- napply(names, object.size)
obj.prettysize <- sapply(obj.size, function(r) prettyNum(r, big.mark = ",") )
obj.dim <- t(napply(names, function(x)
as.numeric(dim(x))[1:2]))
vec <- is.na(obj.dim)[, 1] & (obj.type != "function")
obj.dim[vec, 1] <- napply(names, length)[vec]
out <- data.frame(obj.type, obj.size,obj.prettysize, obj.dim)
names(out) <- c("Type", "Size", "PrettySize", "Rows", "Columns")
if (!missing(order.by))
out <- out[order(out[[order.by]], decreasing=decreasing), ]
out <- out[c("Type", "PrettySize", "Rows", "Columns")]
names(out) <- c("Type", "Size", "Rows", "Columns")
if (head)
out <- head(out, n)
out
}

# shorthand
lsos <- function(..., n=10) {
.ls.objects(..., order.by="Size", decreasing=TRUE, head=TRUE, n=n)
}

Este vai para o meu .Rprofile

domingo, 20 de setembro de 2009

Configuração do R #2

O R ao contrário da maioria dos softwares de índole matemático/estatística não possui integrado um ambiente de trabalho amigável, este tem sido porventura o maior disuasor para o utilizador eventual.
Para melhorar a nossa experiência de trabalho com o R, podemos simplesmente instalar uma biblioteca adicional denominada «Rcmdr».
Para tal basta executar na linha de comando do R a seguinte instrução (necessária ligação à internet)
install.packages("Rcmdr", dependencies=T)

Para invocar o nosso novo ambiente de trabalho executamos o habitual comando para carregar uma biblioteca no R
library(Rcmdr)

Ou em alternativa, colocar no ficheiro «Rprofile.site» os seguintes comandos
library(utils)
winMenuAddItem("Tools","Rcmdr","library(Rcmdr)")

domingo, 30 de agosto de 2009

Configuração do R #1

Para quem utiliza o R com alguma assiduidade, o facto de cada vez que é necessário instalar ou actualizar uma biblioteca, o R pedir qual o local («mirror») de onde esse download se vai efectuar é um pouco irritante.

No entanto, isso pode ser ultrapassado com bastante facilidade, bastando para tal actualizar com um editor de texto como o «Bloco de Notas» (Notepad) o ficheiro de configuração «Rprofile.site» que se encontra na subpasta «etc» da pasta de instalação do R.

O que nos interessa fazer é substituir as seguintes linhas

# set a CRAN mirror
# local({r <- getOption("repos")
# r["CRAN"] <- "http://my.local.cran"
# options(repos=r)})

pelas que nos interessam

# set a CRAN mirror
local({r <- getOption("repos")
r["CRAN"] <- "http://neacm.fe.up.pt/CRAN/"
options(repos=r)})

neste momento, estamos a informar o R para utilizar, por defeito, o servidor português para download de actualizações.

terça-feira, 18 de agosto de 2009

Utilizando o R em Actuariado

Neste post irei colocar apontadores a documentos que referem a utilização do R em Actuariado.

Vida

  • Using R for Actuarial Science (pdf)

Não Vida

  • An Introduction to R: Examples for Actuaries (pdf)

segunda-feira, 17 de agosto de 2009

Introdução ao R em vídeo

Como sou apologista de que uma imagem vale mil palavras, descobri um par de vídeos de introdução ao R no site Decision Science News (www.decisionsciencenews.com) que me pareceram com bastante qualidade.

Aqui vão os links directos:

Tutorial 1 (www.decisionsciencenews.com/?p=261)

Tutorial 2 (www.decisionsciencenews.com/?p=264)

Espero que gostem.

sábado, 8 de agosto de 2009

As Ferramentas do Actuário

Decidi iniciar este blog com um tópico que considero de bastante importância, tradicionalmente os actuários são «homens* dos sete ofícios» nas empresas onde trabalham.

Como tal, não me parece eficaz nem sensato, que o Microsoft Excel seja quase exclusivamente a única ferramenta utilizada pela maioria dos actuários, é verdade que se trata de uma ferramenta muito versátil, especialmente se tivermos em consideração a componente de programação de macros em Visual Basic for Applications (VBA).

Mas uma folha de cálculo, como o próprio nome indica, foi criada para efectuar e apresentar resultados de cálculos, apenas isso, tudo o mais são funcionalidades de conveniência.
Não é uma base de dados nem um programa de gráficos como tal as suas limitações, concluindo, para estas funções é um generalista e não um especialista.

Com o aparecimento da internet acabei por ganhar um novo hobby, encontrar ferramentas que pudessem tornar a minha vida profissional mais fácil, este será talvez o principal móbil para a criação deste blog, documentar e apresentar as minhas experiências e descobertas nesta área.

Para terminar esta nota introdutória deixo apenas um link para a minha ferramenta de eleição nos últimos anos, designa-se por R (www.r-project.org) e na minha opinião veio revolucionar a comunidade científico-matemática. O porquê penso que se tornará óbvio em próximos posts.


* Digo homens sem qualquer conotação descriminatória, visto que tradicionalmente em Portugal a comunidade actuarial é maioritariamente feminina.
Powered By Blogger