R para não Programadores – [6] Finalmente gerando uma página HTML

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

Após longo e tenebroso inverno aqui estamos!.

O que falta para fechar esse pequeno ciclo de nossa aplicação de mapas é passear um pouco pelas possibilidades de exportar o que foi produzido enquanto um página na web.

A página será estática, mas o mapa graças aos recursos do “leaflet” não.

O passo é pequeno em termos de linhas de código, mas tem grandes implicações e algumas barreiras a serem vencidas se realmente pretendermos publicar na web.

Recapitulando rapidamente

estamos agora no estágio de termos uma pequena aplicação que lê dados sobre as capitais do Brasil, filtra aquelas com altitude superior a 200 metros e as exibe em um mapa. Vide aqui.

img_582e0b79ca322

O script e os arquivos de dados podem ser baixados aqui.

O mapa leaflet pertence a uma categoria especial de aplicativos autônomos que podem ser incorporados em páginas web denominados “widgets”. Os mais conhecidos são os aplicativos em Flash, mas que são cada vez menos usados e sendo substituídos por soluções que empregam html5, css e javascript.

htmlwidgets

O time do RStudio desenvolveu um pacote de widgets html que facilita a inserção de código R em páginas da web, os chamados htmlwidgets. Os “htmlwidgets” são blocos de código cujo principal objetivo é trazer para o R alguns dos avanços alcançados em bibliotecas de visualização empregando html5, css e javascript.

O showcase é impressionante. http://www.htmlwidgets.org/showcase_leaflet.html

e vai de facilidades de representação de dados em tabela, passando por mapas 3D, séries históricas

 , diagramas e fluxogramas.

e o mais interessante, são funcionalidades interativas. O usuário da sua aplicação pode alterar as visualizações dentro de certos parâmetros.

E será justamente um dos recursos da biblioteca “htmlwidgets” que usaremos para exportar o nosso mapa e faremos isso tudo com apenas 1 linha de código.

que por sua vez auto explicativa, “savewidget”. Salvar o widget em um arquivo. Aquichamado mapaMetrico.html.

Se temos algo de mais complicado para explicar é sobre o tratamento dado para especificar o caminho do arquivo e o comando paste0.

Vamos lá.

Primeiro não esqueça de rever a publicação onde falamos sobre referências relativas no sistema de arquivos quando estamos executando um script em R. Referências relativas a pastas e arquivos no RStudio.

O seu script/programa em R assim como qualquer outro arquivo existe fisicamente dentro do sistema de pastas do sistema operacional.

Quando fazemos referência a outros “locais” no sistema de arquivos é necessário ou que saibamos o caminho físico exato do arquivo, ou que adotemos uma referência relativa. As referências relativas são as mais recomendadas pois permitem que o script possa ser re-utilizado ou movido sem maiores consequências.

Veja que lá no início usamos um comando para que scripts que rodem a partir do RStudio “saibam” aonde estão.

Após executar comando setwd(), o diretório de trabalho é definido como sendo aquele aonde o seu script está.

Agora no momento de salvarmos a nossa página desejamos faze-lo em uma sub-pasta chamada html. A decisão é minha aqui, você pode alterar a gosto.

O importante é que preciso dizer para o comando savewidget o nome e o endereço do arquivo por meio do parâmetro “file” em

file=paste0(getwd(),”html/mapa.html”

e aqui 2 novidades, o comando paste0 e o getwd().

O getwd() recupera o caminho fisico do diretório de trabalho corrente, não importa qual seja. Fazendo assim nós, os programadores, ficamos livres para não nos preocupar o caminho exato, se o script movido, o comando simplesmente recupera e pronto.

E o paste0 ?  O paste0 é combinador de strings de caracteres. Para os usuários do Excel é o CONCATENAR.

Faça um teste no seu console.

paste0( “Curso de R”, “Salvando Mapas”)

Observe que o R e Salvando ficaram unidos sem qualquer espaço, vem daí o Zero, zero espaço.

O irmão do paste0 é o paste e esse inclui por padrão 1 espaço em branco, mas com a opção “sep” podemos especificar outros separadores.

pronto o que faz então o comando

file=paste0(getwd(),”html/mapa.html”  ?

Concatena o nome do diretório corrente na minha máquina com a sub pasta “html/”  mais  o nome do arquivo  “mapaMetrico.html”

 “/Volumes/APPLEHDD/wordpress metrico/scripts R metrico/leaflet/html/mapaMetrico.html”

No seu computador será diferente dado que irá corresponder aos nomes de pastas onde salvou o seu script.

Pronto.

Ao final o que temos?  Vamos o painel Files do Rstudio.

O diretório e a pasta html/

e dentro da pasta html, o arquivo html como o nome que propusemos e uma pasta com arquivos de apoio. Clique no arquivo .html.

Duas opções, abrir no editor ou no browser.

No editor o cenário não é bonito, pois o que estamos vendo é o código de parte do widget.

mas no browser é o que esperávamos.

Eu coloque o resultado no meu servidor web e pode ser visualizado aqui http://metrico.statanything.com/html/mapaMetrico.html

Ainda não é um programa interativo, mas o mapa é.  É possível deslocar, aproximar, afastar, clicar sobre os marcadores etc.

Gostou?  Avise aos colegas e amigos. 🙂

Bye

João Carlos

Leave a Comment

Related Story
%d bloggers like this: