Referências Bibliográficas, Métricas, Fatores de Impacto, Co-citação? > Bibliometrix

December 1, 2016 no comments Posted in Análise de Dados, R

Pouco tempo para escrever, mas continuo tentando coletar coisas interessantes do mundo R e assemelhados. O conteúdo desse post interessa aos que lidam referências bibliográficas e gostam de gráficos.

Com a falta de tempo aqui terei uma enxurrada de links relacionados a gráficos relacionais, associações, publicações e conexões entre autores.

As descobertas da semana vieram no curso de tentar representar de forma hierárquica e também histórica um conjunto de referências bibliográficas disponíveis em sites especializados como o Web of Science, Scopus e Google Scholar.

A representação que desejo se assemelha a uma árvore onde os níveis são função das datas e cada nó pode ter mais pai, ou seja, um grafo acíclico direcionado,  mas com um layout de representação bem particular, similar ao da figura a seguir.

Alguns autores chamam de lattice, o que geral provoca alguma confusão com lattices em cristais, pelo menos em buscas no Google isso fica evidente.

Ou seja tenho alguns problemas para resolver, obter a informação, extrair a parte interessante e isso com frequência é muito mais complicado do que parece e ao fim representar os achados no formato desejado.

As fontes das informações priorizei as do Scopus e Web of Science em função do primeiro achado, o BIBLIOMETRIX. Um pacote para R que opera sobre referências bibliométricas em vários formatos entre eles o BIBTex.

 

Resumidamente, o Bilbiometrix é capaz de a partir de suas referências bibliográficas extrair uma série de indicadores de produção dos autores, fatores de impacto de revistas etc e tal, e o mais importante, as referências e  as citações, permitindo análises de co-citação.

Alguns dos relatórios que o Bibliometrix é capaz de produzir.

 

O Bibliometrix produz grafos de co-citação, mas acho de pouco utilidade, vejam o exemplo.

Parte da dificuldade é oriunda de diversidade de formatos das referências que ocorrem em cada referência, aqui um pequeno exemplo

Onde para os meus objetivos de exibir em diagrama a principal dificuldade é a existência de informações adicionais depois do título e que podem estar ou não presentes. Alem disso o ano está embebido no título e entre parêntesis e para piorar existem títulos que adotam vírgulas, mas isso é outra conversa.  Até o presente momento já consegui extrair o núcleo da informação no formato <ano> | < primeiro autor> | < parte inicial do título >

[1] “1993 | AGRAWAL, R | MINING ASSOCIATION RULES BETWEE…;1995 |  AGRAWAL, R | MINING SEQUENTIAL PATTERNS (199…;1996 |  AGRAWAL, R | FAST DISCOVERY OF ASSOCIATION R…;1995 |  BAIROCH, A | THE PROSITE DATABASE, ITS STATU…;1996 |  BETTINI, C | TESTING COMPLEX TEMPORAL RELATI…;1997 |  DAS, G | EPISODE MATCHING (1997) PROCEED…”

A seguir irei produzir o lattice desejado a partir dessa estrutura de informação. Veremos. Hei, esqueci em falar nos pacotes gráficos que encontrei nessa busca. Sem tempo agora, fica para a próxima.

Bye,

João Carlos

Atualizando a versão do R (2016) e todos os pacotes instalados (Ubuntu/Linux)

November 13, 2016 no comments Posted in R

Atividade periódica:

Verificar a versão + recente do R.

Hoje, 13/11/2016,  3.3.2

Onde está a versão + recente do R? CRAN

O CRAN é uma rede de servidores web/ftp em todo o mundo que armazenam versões idênticas e atualizadas de código e da documentação para R. Use o o servidor espelho CRAN mais próximo de você para minimizar a carga da rede. (tradução livre)

https://cran.r-project.org/index.html

Atualização do pacote base do R:

Atualizar todos os pacotes

Aqui uma excelente dica vinda do blog do Rainer e que nos libera de saber lista dos pacotes instalados e de enumerar o seu camino físico.  (Update all user installed R packages – again.)

Como root ou sudo, No R em linha de comando

Selecione o servidor espelho mais próximo no Brasil é o servidor da CRAN Fiocruz Brasil:

e pronto

É bom ficar em dia! 🙂

Referências relativas a pastas e arquivos no RStudio

November 10, 2016 no comments Posted in Código, R, RStudio

Esse post está sendo escrito após o lançamento da versão 1.0 do RStudio em 2016, que tornou a importação de arquivos e a publicação de resultados bem mais agradável. Se ainda não tem o RStudio, trate de instalar a versão desktop [1].

Uma pausa para falar em Diretórios e Referências dentro dos códigos em R. O R adota o conceito de diretório de trabalho. Em geral há uma definição padrão durante a instalação que irá depender do sistema operacional.

Esse diretório pode ser alterado pelo comando setwd(“caminho do diretorio – path”)  – set working directory.

Se o seu script faz referências a pastas externas e o script não está na mesma pasta que o diretorio de trabalho e/ou os dados estão em diretórios diferentes, podemos ter problemas.

A desvantagem de usar o setwd() para um diretório físico é que toda vez que movermos esse script para outra pasta/folder teremos que alterar o código.

Se você pretende que o script seja executado no próprio RStudio, mas eventualmente em em outra pasta, o próprio RStudio facilita a nossa vida,  vá no menu SESSION > To Source File Location. Pronto ele ajustará o diretório de trabalho para a pasta aonde está o seu script.

Screen Shot 2016-11-10 at 10.41.52.png

Mas é possível automatizar ainda mais e evitar essa ida ao menu Session usando o pacote rstudioapi.

Instalar um pacote no RStudio é possível de 3 maneiras:

1 ) na área de trabalho onde existe uma aba “packages”

 

2 ) no menu tool > install packages

 

3) e direto na janela de console do R

Uma vez instalado o pacote rstudioapi, basta inserir o comando abaixo logo

em uma linha que anteceda a qualquer comando que pretenda referenciar arquivos externos.

Feito isso agora o nosso script pode fazer referências relativas a diretórios que estão dentro da pasta do script.

 

Agora podemos mover a vontade toda a pasta para outros locais sabendo que as referências não serão afetadas.

 

Referências

Choose Your Version of RStudio – RStudio Desktop  https://www.rstudio.com/products/rstudio/download3/

R para não Programadores – Importação de arquivos EXCEL, SPSS, STATA e SAS – Curso Prático

November 10, 2016 no comments Posted in R, R para não Programadores, RStudio

Esse post está sendo escrito após o lançamento da versão 1.0 do RStudio em 2016, que tornou a importação de arquivos e a publicação de resultados bem mais agradável. Se ainda não tem o RStudio, trate de instalar a versão desktop [1].

Se você tem recursos para instalar a versão servidor na intranet da sua empresa, melhor ainda, pois todos os interessados dentro do seu espaço de trabalho podem se beneficiar.

Em outro momento posso falar sobre a instalação RStudio Server em ambiente Linux.

Aqui a parte super “cool” do novo RStudio, as telas falam tudo, veja:

Aba Environment, Import Excel. Aproveite e perceba logo as opções de importação SAS, STATA, SPSS.

Screen Shot 2016-11-10 at 10.21.03.png

Se estiver conectado a internet o RStudio vai verificar a necessidade de instalação de pacotes adicionais para a tarefa e irá emitir um alerta. Aceite.

screen-shot-2016-11-10-at-10-23-53

Uma janela se abre,

screen-shot-2016-11-10-at-10-25-00

selecione o arquivo a ser importado,

screen-shot-2016-11-10-at-10-25-28

um preview dos dados são apresentados,

screen-shot-2016-11-10-at-10-25-50

Primeira linha tem nomes das colunas?

screen-shot-2016-11-10-at-10-26-17

o código que gerou o preview e que iremos inserir em nosso script

screen-shot-2016-11-10-at-10-26-04

aceite e pronto os dados já importados para um data frame com o mesmo nome do arquivo sem a extensão .xlsx.

O arquivo era “capitasMetrico.xlsx”, agora temos um data frame capitaisMetrico para trabalhar.

screen-shot-2016-11-10-at-10-26-35

Aqui o código ja inserido no script.

E aqui uma pausa para falar em Diretórios e Referências dentro dos códigos em R. O código gerado faz uma apontamento ao caminho físico completo onde está o nosso script, o que é problema, toda vez que movermos esse script teremos que alterar o código.

Se você pretende que o script seja executado no próprio RStudio, mas eventualmente em em outra pasta, o próprio RStudio facilita a nossa vida,  vá no menu SESSION > To Source File Location. Pronto ele ajustará o diretório de trabalho para a pasta aonde está o seu script.

Screen Shot 2016-11-10 at 10.41.52.png

Mas é possível automatizar ainda mais e evitar essa ida ao meu Session. Basta inserir o comando abaixo logo

em uma linha que anteceda a qualquer comando que pretenda referenciar arquivos externos.

Feito isso agora o nosso script pode fazer referências relativas a diretórios que estão dentro da pasta do script.

Agora podemos mover a vontade toda a pasta para outros locais sabendo que as referências não serão afetadas.

Um tópico a parte face a enorme quantidade de opções é sobre “como” os dados são importados, codificações diferentes entre países e caracteres especiais.

No exemplo anterior os dados estavam em um formato apropriado para o sistema brasileiro, casas decimais como “,” e pontos como separado de milhares. A rotina read_excel não oferece recursos maiores para alteração do formato quanto a origem da planilha, então adotamos a solução temporária, feia :).

Alteramos no Excel as virgulas por pontos e importamos novamente, mais a frente iremos explorar alternativas mais estruturadas para extração de dados.

Outro detalhe importante, se não especificamos no read_excel quais colunas são numéricas, todas são importadas como “Texto”, logo não poderemos operar como números.

Duas soluções possíveis, especificar o tipo de dados com atributo “col_types” no read_excel, ou alterar o tipo depois.

A segunda opção aqui é mais didática pois exemplifica como operar sobre colunas de um data frame.

Referências

Choose Your Version of RStudio – RStudio Desktop  https://www.rstudio.com/products/rstudio/download3/

“RStudio and Shiny are trademarks of RStudio, Inc.”

Importando Dados da Série Histórica das ações BM&F Bovespa usando R

November 4, 2016 no comments Posted in Código, R

Aos interessados em estudar o comportamento das ações BM&F Bovespa saiba que as informações são disponibilizadas em uma base de dados contendo a série histórica das ações negociadas[4].

Particularmente não tenho experiência como investidor em bolsa, mas tenho uma grande curiosidade sobre os modelos matemáticos que tentam estimar ou prever o comportamento do mercado de ações.

Entretanto para o início de um estudo ou proposição de modelo que procure estimar o comportamento representado dos dados ao longo do tempo é necessário que primeiro tenhamos acesso aos dados.

No caso dos dados das ações BM&F Bovespa, a recuperação não é imediata via Excel, a enumeração dos campos é bem desconfortável. Provavelmente deve haver um modo inteligente de especificar onde inicia e termina cada campo, mas até essa data ao pesquisar uma solução, quando escrevi esse post, a solução propostano site da Microsoft  me pareceu “boring”, cansativa e propensa e erros.
Anyway, suplantada ou não por outro método mais eficiente, para iniciantes e curiosos sempre é bom ver formas alternativas de se remover um obstáculo. Ai vai.

O objetivo principal aqui é mesmo o demonstrar uma das aplicações de um pacote muito eficiente na leitura de grandes arquivos de dados, o IOTOOLS, e estimular curiosos a se iniciar na programação em R.

Em 2014, automatizei o processo de importação no R, mas de modo extremamente ineficiente, demorava demais.

Voltei a pesquisar as alternativas + recentes e me deparei com o pacote IOTOOLS para o R. Se você tem interesse por Análise de Dados, não importando se é um Estatístico ou não devia levar em consideração aprender “um pouco de R”.

Infelizmente para alguns, a grande maioria do material que considero interessante para curiosos de qualquer área de formação está disponível em Inglês.

Em Inglês a série para Leigos (for Dummies) tem um opção interessante, versão Kindle e Impressa. Até a presente data (11/2016) não vi versão em português.

Vamos ao que interessa, como importar a série histórica com o R. É simples curto e grosso. Assumo que a versão mais recente R já está instalado em sua máquina. Caso contrário veja os links na lista de Referências ao final.

Cuidado preliminar, após baixar o arquivo e usando um editor de texto como Notepad++ para Windows ou TextWrangler para Mac OSX e similares, remova a primeira e a última linha do arquivo.

As definições dos nomes dos campos e suas posições em cada linha do arquivo eu armazeno em um pequeno arquivo de apoio, mas poderiam ser definidas diretamente no corpo do script em R.

Esse pequeno arquivo só contem 3 colunas, o nome do campo, sua posição inicial e final e está salvo no arquivo “LayoutCamposSerieHistorica.csv”.

O script apenas lê esses campos e cria um vetor chamado “endings” com as posições de início de cada campo + última posição de cada linha do arquivo da série histórica das ações BM&F Bovespa e passa o processo de importação para rotina input.file do IOTOOLS.

E lá estamos nós. O arquivo convertido.

 

É realmente muito rápido.  No meu mac mini que não é de ponta, todo o processo de ler um arquivo com 390.000 linhas, gerar um data.frame e depois exportar no formato csv, levou 2.48 segundos. A importação algo próximo a 1.4 segundos.

Em tempo, se usam o R e ainda não usam o RStudio, vão correndo baixar a versão + recente. O mundo R pode ser dividido em 2 eras, antes e depois do RStudio.

Em outro “post”, caso surja interesse,  irei falar sobre como transformar essa aplicação pode se tornar interativa. Um site na web com o Shiny.

Aqui a interface da minha aplicação web de conversão de dados do IBOVESPA.

 

Referências

  1. AÇÃO (FINANÇAS). In: WIKIPÉDIA. Wikipédia, a enciclopédia livre. [S.l: s.n.], 31 jul. 2016. Disponível em: <https://pt.wikipedia.org/w/index.php?title=A%C3%A7%C3%A3o_(finan%C3%A7as)&oldid=46318787>. Acesso em: 5 nov. 2016.
  2. AZEVEDO, J. Instalação do R e do RStudio. Estatística é com R! [S.l: s.n.]. Disponível em: <http://www.estatisticacomr.uff.br/?p=164>. Acesso em: 5 nov. 2016. , 8 jul. 2015
  3. BM&F BOVESPA. BM&F BOVESPA – Serviços financeiros · Centro de negócios. Disponível em: <http://www.bmfbovespa.com.br/pt_br/index.htm>. Acesso em: 5 nov. 2016a.
  4. BM&F BOVESPA. Séries históricas. Disponível em: <http://www.bmfbovespa.com.br/pt_br/servicos/market-data/historico/mercado-a-vista/series-historicas/>. Acesso em: 5 nov. 2016b.
    Notepad++ v7.2 – Current Version. Disponível em: <https://notepad-plus-plus.org/download/v7.2.html>. Acesso em: 5 nov. 2016.
  5. R: The R Project for Statistical Computing. Disponível em: <https://www.r-project.org/>. Acesso em: 5 nov. 2016.
    RSTUDIO INC. RStudio. RStudio. [S.l: s.n.]. Disponível em: <https://www.rstudio.com/products/rstudio/>. Acesso em: 5 nov. 2016. , [S.d.]
  6. TextWrangler na Mac App Store. Disponível em: <https://itunes.apple.com/pt/app/textwrangler/id404010395?mt=12>. Acesso em: 5 nov. 2016.
  7. The Comprehensive R Archive Network. Disponível em: <https://cran.fiocruz.br/>. Acesso em: 5 nov. 2016.
    URBANEK, S.; ARNOLD, T. iotools: I/O Tools for Streaming. [S.l: s.n.], 2015. Disponível em: <https://cran.r-project.org/web/packages/iotools/index.html>. Acesso em: 5 nov. 2016.

(favor avisar caso algum dos endereços endereço se altere)

R – Convertendo listas com número variável de elementos em data frames as.data.frame.list()

October 31, 2016 no comments Posted in Código, R

Quem já passou pelo problema de ter trabalhar com listas e data.frames em R sabe que nem sempre a sua conversão é trivial, especialmente nos casos onde o número elementos em cada elemento da lista é variável. Em Inglês muitos usam a expressão “list flattening”, soa estranho a tradução para achatamento ou planarização?, talvez o mais apropriado seja “redução de uma lista para um a data.frame”.

Um exemplo possível:

Via o RBloggers um artigo publicado por  resolve o problema via uma função própria as.data.frame.list().

A código da função pode ser baixada diretamente do gitHub, https://gist.github.com/jbryer/4676064, mas o metodo recomendado é usar o devtools diretamente no seu código de modo a sempre usar a versão mais atualizada.

require(devtools)
source_gist(4676064)

A principal exigência para o uso da função é que todos os elementos da lista sejam vetores. O que no meu nível de conhecimento atual de R só consegui através de uma transposição para data.frame prévia.

Aqui um exemplo com 3 listas de tamanho diferente

e o resultado

A nossa lista p, fica assim. Extremamente útil.