Hoje, como todo dia, estava eu "viajando" pela internet e dei "de cara" com uma página interessante que analisa um subconjunto de um arquivo de dados famoso (mais sobre ele daqui a pouco) em R.
É claro, como tudo que se refere à internet, uma coisa leva a outra, que leva a outra, etc.... e assim descobri um pacote do R que eu não conhecia que contém dados de vôos originários de New York em 2013. A fonte primária é o "Bureau of Transportation Statistics"do Governo dos EUA.
1) Uber, uber e mais uber (e similares, como AirBnb)
2) Aparelhos "inteligentes" passarão a sê-los (de verdade...). Por exemplo, as pulseirinhas para monitorar sua atividade física não precisarão de inputs e serão mais inteligentes.
Os novos dispositivos serão sensíveis ao contexto e coletarão dados automaticamente a partir de múltiplas fontes. Poderão aprender, fazer recomendações e ,em alguns casos, agir sem a necessidade de interferência de usuários.
Ahh, então minha pulseira da Nike terá que ser esperta e notar quando eu estou dirigindo numa estrada esburacada e sinuosa e não interpretar isso como um exercício vigoroso (por mais que eu quisesse...)
Além disso, e não faltarão letras MAIÚSCULAS...
A "INTERNET OF THINGS" (destes lindos aparelhinhos, dentre outros) é uma maravilhosa oportunidade para os estatísticos, cientistas de dados, etc... Por que? Já imaginaram a quantidades gerados e que precisam ser analisados por cada uma destas maquininhas?? Aliás, já vi em algum lugar, acho que numa das competições do Kaggle (juro que ainda falo sobre isso), a análise sobre um conjunto de dados que buscava identificar se a pessoa estava em movimento, de pé ou sentada a partir dos dados de um smartphone Samsung.
3) O uso de cartões de crédito vai cair e será substituído por meios eletrônicos. No Brasil deve demorar mais um pouco, não?
4) Novos conteúdos de midia e modelos de distribuição
5) Jogos online crescem ainda mais.
Em 2016 a gente olha para trás e comenta, mas tudo isso me parece bem razoável, vocês não acham?
Faz tanto tempo que quase tinha esquecido como se fazia um "post" neste blog...
Enfim, é tão fácil que não dá para esquecer.
Sei que não bastam boas intenções, mas a ideia em 2015 é escrever "posts" curtos (se é que eu consigo...) sobre as coisas que considero interessante neste oceano da internet.
A seleção de assuntos vai refletir meu interesse no momento, então por favor não espere coerência e linearidade, ok?
O único compromisso é que tentarei mante o foco em assuntos meio "estatísticos", meio "geek", meio "tecnológicos", meio "data science", meio "data science", etc e tal.
Faz tempo, né?
Mas espero que este post seja bem interessante para os meus dois leitores...
O tema: algo que vem me fascinando há algum tempo - APIs ou "Application Programmable Interfaces", Interfaces que muitos sites tem para facilitar a consulta e o uso dos dados neles hospedados.
Em muitos casos, para usar uma API, basta o registro do seu e-mail (verdadeiro, pois nele você receberá um link para confirmação ou a sua própria senha (key) de acesso).
Os termos para utilização variam muito de site para site, e o número de consultas que é permitido no plano gratuito também.
E o que eu quero fazer?
Mostrar como você pode utilizar o Excel 2013 que tem 3 lindas funções para Web para fazer consultas direto a uma API, SEM NECESSIDADE de qualquer programação!
Neste caso usarei a API do site http://www.wunderground.com/, que fornece dados gratuitos sobre o tempo atual e a previsão ds próximos dias. Os limites de uso para o registro gratuito são bem apertados, confesso que "estourei" o meu pois você pode fazer só 10 consultas por minuto, e fiz bem mais que isso.
Qual era meu objetivo?
Descobrir as condições do tempo em diversas cidades brasileiras. Veja o resultado a seguir para algumas cidades. Note que eu usei os códigos dos aeroportos. Por exemplo, CGH é o aeroporto de Congonhas, e GRU é o de Guarulhos, e ambos servem São Paulo. Por que fiz isso? Em alguns casos o site do wunderground nao conseguia achar os dados para a cidade, e tive a ideia de procurar por aeroporto. Bingo! Existiam informações para todos os aeroportos que eu queria...
Agora que você já viu que funciona, vamos ao "como fazer"...
Atenção - o help do Excel 2013 em inglês tem um "how to" excelente para o uso destas novas funções, e inclusive usa o mesmo site como exemplo, mas procura por dados nos EUA, o que leva a uma consulta um pouco diferente.
Supondo que você já tenha se registrado no site e tenha obtido sua API_key, e a colocado numa célula da planilha que eu convenientemente chamei de (adivinhe?) API_key, o próximo passo é escrever o comando:
O que a célula C$4 contém? Na planilha que eu acabei de mostrar para vocês, o código do aeroporto, por exemplo, SDU para o Santos Dumont.
O resultado da função SERVIÇOWEB acima é um arquivo .xml que tem um MONTE de informações sobre o local que você está investigando, inclusive a previsão dos próximos dias. Esta função SERVIÇOWEB é talvez a mais importante das 3 novas funções para Web do Excel 2013, e em seguida mostraremos outra.
Suponha que o resultado da função SERVIÇOWEB acima esteja na célula C3 da sua planilha.
Como eu falei, o conteúdo desta célula C3 é um arquivo .xml, no qual você tem que "pescar" a informação que te interessa (e este tem sido o meu grande problema). Para isso use a função FILTROXML, a segunda das 3 novas do Excel 2013.
Por exemplo:
=FILTROXML(C$3;"//local_time_rfc822")
Fornece a data e horário da consulta. No caso da imagem neste post, o resultado é:
Sun, 23 Feb 2014 15:16:32 -0300
Em resumo, a sintaxe da função FILTROXML é: FILTROXML(cél. que contem o arquivo xml, xpath).
E onde está a encrenca? Em definir o xpath...
No meu caso está sendo meio tentativa e erro - funciona mais ou menos como estrutura de diretórios e subdiretórios e existem aplicativos que "pegam" um arquivo .xml e te dizem qual o xpath correto para o "pedaço" de informação que você quer. Em teoria... na prática não consegui fazer funcionar para mim!
O post está meio grande e eu vou me despedindo, mas antes gostaria de dizer que:
1) O Yahoo tem uma API maravilhosa (e grátis), inclusive com uma linguagem de programação moleza, que é uma parente de SQL mas é uma obviedade! Lindo!
2) Existe um número enorme (e crescente) de APIs. Neste momento em que escrevo o post, o site: www.programmableweb.com lista 11063 APIs, sendo que 53 foram adicionadas nos últimos 7 ias e 208 nos últimos 30 dias. Isso deve significar algo, não é?
3) É claro que você pode programar as suas chamadas às APIs. Em R existe um pacote XML, mas eu ainda não usei. Ex
Abaixo alguns links de páginas dedicadas à linguagem R em português e espanhol. A lista não pretende ser exaustiva, é apenas um ponto de partida para quem detesta ler manuais.
http://www.mobileread.mobi/forums/showthread.php?t=67441 (neste link pode-se baixar o documento "Introdução à Programação em R" de Luís Torgo, que eu APENAS disponibilizo aqui também, através do slideshare na "iframe" abaixo: