Coisas do R
Breve História
A primeira questão, que penso ser a mais óbvia, é o que o R é? E a resposta é realmente muito simples. R basicamente é um dialeto de S. OK, isto nos leva à próxima questão lógica que é: o que é o S?
S foi uma linguagem, ou é uma linguagem que foi desenvolvida por John Chambers no agora extinto Bell Labs. Foi iniciada em 1976 como um ambiente de análise estatística interno, um ambiente que as pessoas do Bell Labs poderiam utilizar para analisar dados. Inicialmente foi implementada como uma série de bibliotecas FORTRAN que implementavam rotinas que eram tediosas para sempre serem feitas, então havia as bibliotecas FORTRAN que repetiam estas rotinas estatísticas.
As versões iniciais da linguagem não continham funções para modelagem estatística. Elas não chegaram até a versão três da linguagem. Então em 1988, o sistema foi reescrito na linguagem C para se tornar mais portátil entre os sistemas e começou a se assemelhar ao sistema que nós temos hoje. Essa foi a versão três. Havia um livro inicial chamado "Statistical Models in S" escrito por John Chambers e Trevor Hastie. Algumas vezes referido como o livro branco. Ele documenta todas as funcionalidades de análise estatística que vieram naquela versão da linguagem. A quarta versão da linguagem S lançada em 1998. E esta versão é a que nós mais ou menos usamos hoje.
O livro "Programming with Data", que é uma das referências para este curso e que, às vezes, é chamado de livro verde, foi escrito por John Chambers e documenta a versão quatro da linguagem S. Então, R é uma implementação da linguagem S, que foi originalmente desenvolvida no Bell Labs. Um pouco mais de história: em 1993 o Bell Labs deu à uma empresa chamada StatSci, que se tornou Insightful Corporation, uma licença exclusiva para desenvolver e vender a linguagem S. Em 2004, a Insightful comprou a linguagem S completamente da Lucent. Bell Labs se tornou Lucent Technology por $2 milhões, sendo a dona atual.Bell Labs se tornou Lucent Technology por $2 milhões, sendo a dona atual. Em 2006, a Alcatel comprou a Lucent Technologies e agora é chamada Alcatel-Lucent.
Insightful desenvolveu um produto que era a implementação da linguagem S com o nome de S-PLUS. E eles construíram um número de funcionalidades, como por exemplo, interfaces gráficas e todos os tipos de boas ferramentas. Então vimos que o PLUS vem de S-PLUS. Em 2008 a Insightful Corporation foi adquirida por uma companhia chamada TIBCO por $25 milhõesfoi adquirida por uma companhia chamada TIBCO por $25 milhões de dólares e é mais ou menos onde está agora. A TIBCO desenvolveu a S-PLUS, ainda que em uma variedade de diferentes tipos de produtos de análise de negócios, continuando desta forma até hoje. Você pode ver que a história da linguagem é um pouco tortuosa por causa das várias aquisições corporativas, mas ela ainda sobrevive até hoje. Os fundamentos básicos da linguagem S não mudaram muito desde 1998 e a linguagem que existiu em 1998 parece mais ou menos como a que nós usamos hoje, pelo menos superficialmente. É importante saber que em 1998 a linguagem S venceu o Prêmio de Sistemas de Software da Association for Computing Machinery. Uma honra muito prestigiosa.
Em um documento chamado Estágios na evolução da S, John Chambers que foi seu criador original, explicou seu princípio chave ao projetar a linguagem. É muito importante ver o que é. Basicamente eles queriam criar um ambiente interativo onde você não teria que pensar nele como programação. Então ele disse que com suas necessidades tornaram-se mais claras e a sofisticação aumentava, eles deveriam estar aptos para passar gradualmente para a programação, quando a linguagem e os aspectos do sistemas tornariam-se mais importantes. Então a ideia básica por trás da linguagem S, e mais tarde na linguagem R, é que as pessoas entrariam na linguagem em um ambiente interativo onde eles poderiam utilizar o ambiente sem saber nada sobre programação, ou ter de saber muitos detalhaes da linguagem. Logo, eles poderiam utilizar o ambiente para avaliar dados e fazer análises básicas. E então quando eles superassem o ambiente, então eles poderiam entrar para programação. Eles poderiam iniciar aprendendo os aspectos da linguagem e aprendendo a desenvolver suas próprias ferramentas. O sistema promoveria esse tipo de transição de um usuário para um programador. Essa foi a filosofia básica da linguagem S.
Isso já é o bastante sobre S. Vamos voltar a falar de R. Então o que é o R? Basicamente, R é um desenvolvimento relativamente recente. Foi criada em 1991, na Nova Zelândia, por dois cavalheiros chamados Ross Ihaka e Robert Gentleman.
Eles escreveram sobre sua experiência ao desenvolver a R em um artigo publicado em 1996 no Journal of Computation and Graphical Statistics. Em 1993, o primeiro anúncio da R foi feito ao público. Em 1995, Marting Michler convenceu Ross e Robert a licenciarem a R sob a GNU General Public License. E isso fez da R o que E isso fez da R o que chamamos de software livre. Em 1996, um lista de e-mail foi criada, de forma que havia duas listas principais. Uma chamda R-help, que é uma lista de e-mail genérica para questões. E R-devel, que é uma lista de e-mail mais específica para pessoas que estão desenvolvendo em R.
Em 1997, o chamado "Grupo Central do R" (R Core Group) foi formado. Ele continha muitas pessoas que vieram do desenvolvimento do S-PLUS. O Grupo Central basicamente controla o código fonte da R. Logo, o código fonte primário da R pode ser somente modificado por membros do Grupo Central do R. Entretanto, um número de pessoas que não estavam no Grupo Central sugeriram mudanças ao R e elas foram aceitas pelo grupo.
Algumas dessas primeiras características do R foram importantes no passado quando as pessoas ainda usavam a S-PLUS, mas como a sintaxe é muito similar a S, isso fez com que fosse fácil para usuários do S-PLUS migrarem. Essa característica não é muito relevante hoje, onde a maioria das pessoas geralmente vai diretamente para a R.
A semântica é superficialmente similar a da S, parece muito com a S, mas na realidade elas são diferentes. Iremos falar mais sobre isto nas próximas aulas. Um dos principais benefícios da R é que ela executa em qualquer plataforma de computação padrão ou sistema operacional. Mac, Windows, Linux, tudo o que você quiser, até mesmo em seu PlayStation 3. São lançadas revisões frequentes, revisões principais anuais e frequentemente há lançamentos de correções de erros (bugs) entre elas. Há um desenvolvimento muito ativo sendo feito e as coisas estão acontecendo.
O núcleo de software da R é atualmente bastante enxuto. Sua funcionalidade é dividida em pacotes modulares, de forma que você não precisa baixar e instalar um arquivo muito grande do software. Você pode baixar uma pequena com o núcleo principal e algumas funções, e então adicionar demais funcionalidades quando você precisar. As capacidades gráficas são bastante sofisticadas e dão ao usuário um grande controle sobre como os gráficos são criados. Na minha opinião são melhores que a maioria dos pacotes estatísticos. Pode até ser o melhor dos pacotes estatísticos de uso geral. É muito útil para trabalhos interativos como disse anteriormente, mas contêm esta poderosa linguagem de programação. Para desenvolver novas ferramentas, ele facilita a transição do usuário para o programa. E atualmente, para um linguagem como essa, há uma comunidade de usuários muito ativa e vibrante. As listas de email R-help e R-devel são muito ativas. Há muitas postagens por dia e há também uma série de questões no StackOverflow que podem ser respondidas. Logo, a comunidade de usuários é um dos aspectos mais interessante da R. É de onde todos os pacotes da R vem e cria muitos tipos de funcionalidades interessantes.
Provavelmente a característica mais importante da R é que ela é gratuita. Tanto no sentido de cerveja quanto no discurso. O que quis dizer é que não custa nada e você pode baixar o software completo pela internet. Como também é um software livre, vou me desviar por um segundo para falar um pouco sobre software livre. Com o software livre há quatro princípios básicos. Você tem quatro liberdades básicas. A liberdade zero é a liberdade de executar o programa para qualquer propósito, então não existem restrições em como, quando ou o que você pode ou não fazer com o programa.
A liberdade um é a liberdade de estudar como o programa trabalha e adaptá-lo às suas necessidades. Isso acontece quase todo o dia, e significa que você pode olhar no código fonte do próprio R e fazer alterações caso queira. Você pode acrescentar características ou fazer uma versão melhor do programa. Você pode vender as mudanças, se quiser. Você pode modificar o programa de qualquer forma que você queira e adaptá-lo às suas necessidades. Com certeza, você pode olhar no código fonte para alcançar a liberdade um. A liberdade dois é que você tem a liberdade para redistribuir cópias, então você pode ajudar seu vizinho. A ideia é que você pode dar cópias para outras pessoas. Você pode vender cópias. Você pode fazer o que você quiser com elas. Por fim, você tem a liberdade de melhorar o programa e liberar suas melhorias de forma que toda a comunidade se beneficie, esta é a liberdade três. A ideia é que quando pessoas fazem mudanças ao programa, elas podem liberá-las para o público, assim todos conseguem obter estas mudanças. Estas liberdades básicas são delineadas pela Free Software Foundation e você pode ver mais sobre ela em seu site.
Há algumas desvantagens do R. Não vou passar por todas elas e provavelmente outras pessoas têm muitas outras reclamações. Mas há algumas desvantagens básicas, sendo que uma delas é que essencialmente é baseada em uma tecnologia de 40 anos. A linguagem S original foi desenvolvida no anos 70 baseada em alguns princípios e as ideias básicas não mudaram tanto.
Um exemplo disso é que pouco suporte embutido para gráficos dinâmicos ou 3D. Mas as coisas tem melhorado muito nessa frente desde os velhos tempos. Há muitos pacotes com ferramentas interessantes agora para criar gráficos dinâmicos ou 3D.
Outras desvantagem do R que eu e escuto bastante é que a funcionalidade é baseada na demanda dos consumidores e basicamente em contribuições dos usuários. Se ninguém tem vontade de implementar seu método favorito então é seu trabalho implementá-lo. E você não pode reclamar, pois não há uma companhia para qual você possa reclamar. Não há uma linha de suporte na qual você pode ligar para dizer que há demanda de uma implementação ou funcionalidade específicas. Se a funcionalidade não está lá, então você tem que construi-la. ou "pelo menos um", você pode pagar alguém para construí-la.
Outra desvantagem, que é um pouco mais técnica, é que os objetos que você manipula no R tem de ser armazenados na memória física do computador. Se o objeto é maior que a memória física do computador, então você não pode carregá-lo para a memória. Portanto você não pode fazer nada no R com aquele objeto. Houve muitos avanços para lidar com isto também. Tanto na linguagem R quanto no lado do hardware. Hoje existem computadores que podem ser comprados com enormes quantidades de memória. Alguns desses problemas foram resolvidos somente pelo avanço da tecnologia. Mas não obstante, quando entramos na era da Big Data onde temos conjunto de dados cada vez maiores, o modelo de carregar objetos na memória física pode ser uma limitação. E finalmente, vou digo que o R não é ideal para todas as possíveis situações. Muitas pessoas, e eu acho isso algo bom, têm grandes expectativas pelo R. Eles esperam que ele seja capaz de fazer qualquer coisa.
Mas ele não faz tudo e você deveria prosseguir sabendo desse fato.
O sistema básico do R é dividido em dois, o que você pode pensar como duas partes conceituais. Há o sistema base do R que você baixar de um CRAN que é a rede de arquivos do R. O CRAN é o lugar a ir para encontrar tudo sobre o R. O sistema base contém o que é chamado de pacote base. Ele possui todo o tipo de funções fundamentais de baixo nível que você precisa para executar o sistema R.
Há outro pacotes contidos no sistema base que incluem, por exemplo, utilitários estatísticos, conjuntos de dados, gráficos e vários outros pacotes fundamentais que praticamente todos podem precisar usar. Há uma série de pacotes recomendados como o "bootstrap", "class" para classificação, "cluster", "codetools", "foreign" e uma variedade de outros pacotes. Estes são os pacotes comumente utilizados. Eles podem não ser pacotes críticos, mas são normalmente utilizados por várias pessoas. Todos esses pacotes vem com o sistema base do R que você pode baixar do CRAN.
Obviamente, há muito mais do que isto e no CRAN há agora cerca de 4.000 pacotes que foram desenvolvidos por usuários e programadores de todo o mundo. Esses pacotes são contribuições dos usuários e não são controlados pelo núcleo do R. E eles são carregados para o CRAN periodicamente. O CRAN tem um número de restrições e padrões que têm de ser cumpridos para se colocar um pacote no CRAN. Assim, algo positivo sobre o CRAN é que os pacotes que você baixa precisam cumprir um certo nível de qualidade. Tem de haver, por exemplo, documentação para todas as funções que estão no pacote e é preciso ter certeza de que elas passem em uma certa quantidade de testes. O CRAN tem muitos pacotes diferentes escritos pelos usuários e o número está crescendo a cada dia. Então emocionante ver todos esses pacotes no CRAN e ver novos pacotes chegando diariamente.
Há também pacotes associados com o projeto Bioconductor, que é empacotado e que é um projeto para implementação do software R para análise de dados biológicos e genômicos. E, com certeza, há também os pacotes feitos por pessoas que os disponibilizam em seu sites pessoais. Não há um modo confiável de acompanhar quantos pacotes estão disponíveis desta maneira. Existem realmente milhares de pacotes que foram escritos por pessoas que você pode descobrir e utilizar para analisar dados.
Há alguns documentos que você pode encontrar no site do R. Como você está aprendendo a usar R, você pode querer folhear alguns deles. Um é uma introdução ao R, que é um documento PDF relativamente longo que vai desde o básico de como utilizar o R a como utilizar a linguagem. Há o manual Escrevendo Extensões do R que a leitura somente é útil se você está pensando em desenvolver pacotes do R, que são as extensões do R para o sistema principal. O Manual de importação de exportação de dados do R, que é útil para obter e colocar dados no R de várias formas diferentes.
O manual de instalação do R é mais útil se você quer compilar o R a partir do código fonte. Irei falar sobre isso em outro vídeo. E finalmente o manual do interior do R. Ele é um documento técnico sobre como o R foi projetado. Como o R é implementado a um nível muito baixo. Realmente não é para os fracos de coração. Mas se você é esse tipo de pessoa, que quer saber como o R funciona a um nível muito, muito baixo, este documento é para você.
Então, eu vou encerrar por aqui com alguns textos que são de certa forma padrões ou textos clássicos nesta área. Claro, os livros de John Chambers "Software for Data Analysis" e "Programming with Data", ambos publicados pela Editora Springer.
Dois livros de Bill Venables e Brian Ripley: um chamado "Modern Applied Statitics with S" e o outro chamado "S Programming". Embora eles mencionem sobre S no título, estes livros são todos muitos relevantes para programação em R também. Há um livro de Pinheiro e Bates chamado "Mixed Effects, Models in S and S-PLUS" que também é bastante útil para programadores R. E finalmente Paul Murrel, que projetou o sistema gráfico do R e escreveu um livro chamado R Graphics e que atualmente está na sua segunda edição. Dentre alguns outros recursos temos a série de livros da Editora Springer chamada "Use R", que é um conjunto de muito livros relativamente pequenos. Como usar R para diferente tipos de tópicos, diferente áreas de aplicações. Esta é um série de livros muito boa que você talvez possa se interessar. Pode haver um livro escrito para sua área de aplicação particular. Há um lista de livros mais longa no site do R. Esta foi uma breve visão geral do R e a história de como ele surgiu. E começando com o próximo vídeo, iniciarei falando sobre os detalhes da programação com a linguagem R e como podemos utilizá-la para analisar dados. Tradução: Allan Vieira Ribeiro | Revisão: Wilson de Carvalho M. Jr.
A primeira questão, que penso ser a mais óbvia, é o que o R é? E a resposta é realmente muito simples. R basicamente é um dialeto de S. OK, isto nos leva à próxima questão lógica que é: o que é o S? S foi uma linguagem, ou é uma linguagem que foi desenvolvida por John Chambers no agora extinto Bell Labs. Foi iniciada em 1976 como um ambiente de análise estatística interno, um ambiente que as pessoas do Bell Labs poderiam utilizar para analisar dados. Inicialmente foi implementada como uma série de bibliotecas FORTRAN que implementavam rotinas que eram tediosas para sempre serem feitas, então havia as bibliotecas FORTRAN que repetiam estas rotinas estatísticas.
As versões iniciais da linguagem não continham funções para modelagem estatística. Elas não chegaram até a versão três da linguagem. Então em 1988, o sistema foi reescrito na linguagem C para se tornar mais portátil entre os sistemas e começou a se assemelhar ao sistema que nós temos hoje. Essa foi a versão três. Havia um livro inicial chamado "Statistical Models in S" escrito por John Chambers e Trevor Hastie. Algumas vezes referido como o livro branco. Ele documenta todas as funcionalidades de análise estatística que vieram naquela versão da linguagem. A quarta versão da linguagem S lançada em 1998. E esta versão é a que nós mais ou menos usamos hoje.
O livro "Programming with Data", que é uma das referências para este curso e que, às vezes, é chamado de livro verde, foi escrito por John Chambers e documenta a versão quatro da linguagem S. Então, R é uma implementação da linguagem S, que foi originalmente desenvolvida no Bell Labs. Um pouco mais de história: em 1993 o Bell Labs deu à uma empresa chamada StatSci, que se tornou Insightful Corporation, uma licença exclusiva para desenvolver e vender a linguagem S. Em 2004, a Insightful comprou a linguagem S completamente da Lucent. Bell Labs se tornou Lucent Technology por $2 milhões, sendo a dona atual.Bell Labs se tornou Lucent Technology por $2 milhões, sendo a dona atual. Em 2006, a Alcatel comprou a Lucent Technologies e agora é chamada Alcatel-Lucent.
Insightful desenvolveu um produto que era a implementação da linguagem S com o nome de S-PLUS. E eles construíram um número de funcionalidades, como por exemplo, interfaces gráficas e todos os tipos de boas ferramentas. Então vimos que o PLUS vem de S-PLUS. Em 2008 a Insightful Corporation foi adquirida por uma companhia chamada TIBCO por $25 milhõesfoi adquirida por uma companhia chamada TIBCO por $25 milhões de dólares e é mais ou menos onde está agora. A TIBCO desenvolveu a S-PLUS, ainda que em uma variedade de diferentes tipos de produtos de análise de negócios, continuando desta forma até hoje. Você pode ver que a história da linguagem é um pouco tortuosa por causa das várias aquisições corporativas, mas ela ainda sobrevive até hoje. Os fundamentos básicos da linguagem S não mudaram muito desde 1998 e a linguagem que existiu em 1998 parece mais ou menos como a que nós usamos hoje, pelo menos superficialmente. É importante saber que em 1998 a linguagem S venceu o Prêmio de Sistemas de Software da Association for Computing Machinery. Uma honra muito prestigiosa.
Em um documento chamado Estágios na evolução da S, John Chambers que foi seu criador original, explicou seu princípio chave ao projetar a linguagem. É muito importante ver o que é. Basicamente eles queriam criar um ambiente interativo onde você não teria que pensar nele como programação. Então ele disse que com suas necessidades tornaram-se mais claras e a sofisticação aumentava, eles deveriam estar aptos para passar gradualmente para a programação, quando a linguagem e os aspectos do sistemas tornariam-se mais importantes. Então a ideia básica por trás da linguagem S, e mais tarde na linguagem R, é que as pessoas entrariam na linguagem em um ambiente interativo onde eles poderiam utilizar o ambiente sem saber nada sobre programação, ou ter de saber muitos detalhaes da linguagem. Logo, eles poderiam utilizar o ambiente para avaliar dados e fazer análises básicas. E então quando eles superassem o ambiente, então eles poderiam entrar para programação. Eles poderiam iniciar aprendendo os aspectos da linguagem e aprendendo a desenvolver suas próprias ferramentas. O sistema promoveria esse tipo de transição de um usuário para um programador. Essa foi a filosofia básica da linguagem S.
Isso já é o bastante sobre S. Vamos voltar a falar de R. Então o que é o R? Basicamente, R é um desenvolvimento relativamente recente. Foi criada em 1991, na Nova Zelândia, por dois cavalheiros chamados Ross Ihaka e Robert Gentleman.
Eles escreveram sobre sua experiência ao desenvolver a R em um artigo publicado em 1996 no Journal of Computation and Graphical Statistics. Em 1993, o primeiro anúncio da R foi feito ao público. Em 1995, Marting Michler convenceu Ross e Robert a licenciarem a R sob a GNU General Public License. E isso fez da R o que E isso fez da R o que chamamos de software livre. Em 1996, um lista de e-mail foi criada, de forma que havia duas listas principais. Uma chamda R-help, que é uma lista de e-mail genérica para questões. E R-devel, que é uma lista de e-mail mais específica para pessoas que estão desenvolvendo em R.
Em 1997, o chamado "Grupo Central do R" (R Core Group) foi formado. Ele continha muitas pessoas que vieram do desenvolvimento do S-PLUS. O Grupo Central basicamente controla o código fonte da R. Logo, o código fonte primário da R pode ser somente modificado por membros do Grupo Central do R. Entretanto, um número de pessoas que não estavam no Grupo Central sugeriram mudanças ao R e elas foram aceitas pelo grupo.
Algumas dessas primeiras características do R foram importantes no passado quando as pessoas ainda usavam a S-PLUS, mas como a sintaxe é muito similar a S, isso fez com que fosse fácil para usuários do S-PLUS migrarem. Essa característica não é muito relevante hoje, onde a maioria das pessoas geralmente vai diretamente para a R. e siga a transcrição 6:06 A semântica é superficialmente similar a da S, parece muito com a S, mas na realidade elas são diferentes. Iremos falar mais sobre isto nas próximas aulas. Um dos principais benefícios da R é que ela executa em qualquer plataforma de computação padrão ou sistema operacional. Mac, Windows, Linux, tudo o que você quiser, até mesmo em seu PlayStation 3. São lançadas revisões frequentes, revisões principais anuais e frequentemente há lançamentos de correções de erros (bugs) entre elas. Há um desenvolvimento muito ativo sendo feito e as coisas estão acontecendo. O núcleo de software da R é atualmente bastante enxuto. Sua funcionalidade é dividida em pacotes modulares, de forma que você não precisa baixar e instalar um arquivo muito grande do software. Você pode baixar uma pequena com o núcleo principal e algumas funções, e então adicionar demais funcionalidades quando você precisar. As capacidades gráficas são bastante sofisticadas e dão ao usuário um grande controle sobre como os gráficos são criados. Na minha opinião são melhores que a maioria dos pacotes estatísticos. Pode até ser o melhor dos pacotes estatísticos de uso geral. É muito útil para trabalhos interativos como disse anteriormente, mas contêm esta poderosa linguagem de programação. Para desenvolver novas ferramentas, ele facilita a transição do usuário para o programa. E atualmente, para um linguagem como essa, há uma comunidade de usuários muito ativa e vibrante. As listas de email R-help e R-devel são muito ativas. Há muitas postagens por dia e há também uma série de questões no StackOverflow que podem ser respondidas. Logo, a comunidade de usuários é um dos aspectos mais interessante da R. É de onde todos os pacotes da R vem e cria muitos tipos de funcionalidades interessantes. Provavelmente a característica mais importante da R é que ela é
gratuita. Tanto no sentido de cerveja quanto no discurso. O que quis dizer é que não custa nada e você pode baixar o software completo pela internet. Como também é um software livre, vou me desviar por um segundo para falar um pouco sobre software livre. Com o software livre há quatro princípios básicos. Você tem quatro liberdades básicas. A liberdade zero é a liberdade de executar o programa para qualquer propósito, então não existem restrições em como, quando ou o que você pode ou não fazer com o programa. A liberdade um é a liberdade de estudar como o programa trabalha e adaptá-lo às suas necessidades. Isso acontece quase todo o dia, e significa que você pode olhar no código fonte do próprio R e fazer alterações caso queira. Você pode acrescentar características ou fazer uma versão melhor do programa. Você pode vender as mudanças, se quiser. Você pode modificar o programa de qualquer forma que você queira e adaptá-lo às suas necessidades. Com certeza, você pode olhar no código fonte para alcançar a liberdade um. A liberdade dois é que você tem a liberdade para redistribuir cópias, então você pode ajudar seu vizinho. A ideia é que você pode dar cópias para outras pessoas. Você pode vender cópias. Você pode fazer o que você quiser com elas. Por fim, você tem a liberdade de melhorar o programa e liberar suas melhorias de forma que toda a comunidade se beneficie, esta é a liberdade três. A ideia é que quando pessoas fazem mudanças ao programa, elas podem liberá-las para o público, assim todos conseguem obter estas mudanças. Estas liberdades básicas são delineadas pela Free Software Foundation e você pode ver mais sobre ela em seu site. Há algumas desvantagens do R. Não vou passar por todas elas e provavelmente outras pessoas têm muitas outras reclamações. Mas há algumas desvantagens básicas, sendo que uma delas é que essencialmente é baseada em uma tecnologia de 40 anos. A linguagem S original foi desenvolvida no anos 70 baseada em alguns princípios e as ideias básicas não mudaram tanto.Um exemplo disso é que pouco suporte embutido para gráficos dinâmicos ou 3D. Mas as coisas tem melhorado muito nessa frente desde os velhos tempos. Há muitos pacotes com ferramentas interessantes agora para criar gráficos dinâmicos ou 3D. Outras desvantagem do R que eu e escuto bastante é que a funcionalidade é baseada na demanda dos consumidores e basicamente em contribuições dos usuários. Se ninguém tem vontade de implementar seu método favorito então é seu trabalho implementá-lo. E você não pode reclamar, pois não há uma companhia para qual você possa reclamar. Não há uma linha de suporte na qual você pode ligar para dizer que há demanda de uma implementação ou funcionalidade específicas. Se a funcionalidade não está lá, então você tem que construi-la. ou "pelo menos um", você pode pagar alguém para construí-la. Outra desvantagem, que é um pouco mais técnica, é que os objetos que você manipula no R tem de ser armazenados na memória física do computador. Se o objeto é maior que a memória física do computador, então você não pode carregá-lo para a memória. Portanto você não pode fazer nada no R com aquele objeto. Houve muitos avanços para lidar com isto também. Tanto na linguagem R quanto no lado do hardware. Hoje existem computadores que podem ser comprados com enormes quantidades de memória. Alguns desses problemas foram resolvidos somente pelo avanço da tecnologia. Mas não obstante, quando entramos na era da Big Data onde temos conjunto de dados cada vez maiores, o modelo de carregar objetos na memória física pode ser uma limitação. E finalmente, vou digo que o R não é ideal para todas as possíveis situações. Muitas pessoas, e eu acho isso algo bom, têm grandes expectativas pelo R. Eles esperam que ele seja capaz de fazer qualquer coisa. Mas ele não faz tudo e você deveria prosseguir sabendo desse fato. O sistema básico do R é dividido em dois, o que você pode pensar como duas partes conceituais. Há o sistema base do R que você baixar de um CRAN que é a rede de arquivos do R. O CRAN é o lugar a ir para encontrar tudo sobre o R. O sistema base contém o que é chamado de pacote base. Ele possui todo o tipo de funções fundamentais de baixo nível que você precisa para executar o sistema R. Há outro pacotes contidos no sistema base que incluem, por exemplo, utilitários estatísticos, conjuntos de dados, gráficos e vários outros pacotes fundamentais que praticamente todos podem precisar usar. Há uma série de pacotes recomendados como o "bootstrap", "class" para classificação, "cluster", "codetools", "foreign" e uma variedade de outros pacotes. Estes são os pacotes comumente utilizados. Eles podem não ser pacotes críticos, mas são normalmente utilizados por várias pessoas. Todos esses pacotes vem com o sistema base do R que você pode baixar do CRAN. Obviamente, há muito mais do que isto e no CRAN há agora cerca de 4.000 pacotes que foram desenvolvidos por usuários e programadores de todo o mundo. Esses pacotes são contribuições dos usuários e não são controlados pelo núcleo do R. E eles são carregados para o CRAN periodicamente. O CRAN tem um número de restrições e padrões que têm de ser cumpridos para se colocar um pacote no CRAN. Assim, algo positivo sobre o CRAN é que os pacotes que você baixa precisam cumprir um certo nível de qualidade. Tem de haver, por exemplo, documentação para todas as funções que estão no pacote e é preciso ter certeza de que elas passem em uma certa quantidade de testes. O CRAN tem muitos pacotes diferentes escritos pelos usuários e o número está crescendo a cada dia. Então emocionante ver todos esses pacotes no CRAN e ver novos pacotes chegando diariamente. Há também pacotes associados com o projeto Bioconductor, que é empacotado e que é um projeto para implementação do software R para análise de dados biológicos e genômicos. E, com certeza, há também os pacotes feitos por pessoas que os disponibilizam em seu sites pessoais. Não há um modo confiável de acompanhar quantos pacotes estão disponíveis desta maneira. Existem realmente milhares de pacotes que foram escritos por pessoas que você pode descobrir e utilizar para analisar dados.Há alguns documentos que você pode encontrar no site do R. Como você está aprendendo a usar R, você pode querer folhear alguns deles. Um é uma introdução ao R, que é um documento PDF relativamente longo que vai desde o básico de como utilizar o R a como utilizar a linguagem. Há o manual Escrevendo Extensões do R que a leitura somente é útil se você está pensando em desenvolver pacotes do R, que são as extensões do R para o sistema principal. O Manual de importação de exportação de dados do R, que é útil para obter e colocar dados no R de várias formas diferentes. O manual de instalação do R é mais útil se você quer compilar o R a partir do código fonte. Irei falar sobre isso em outro vídeo. E finalmente o manual do interior do R. Ele é um documento técnico sobre como o R foi projetado. Como o R é implementado a um nível muito baixo. Realmente não é para os fracos de coração. Mas se você é esse tipo de pessoa, que quer saber como o R funciona a um nível muito, muito baixo, este documento é para você. Então, eu vou encerrar por aqui com alguns textos que são de certa forma padrões ou textos clássicos nesta área. Claro, os livros de John Chambers "Software for Data Analysis" e "Programming with Data", ambos publicados pela Editora Springer. Dois livros de Bill Venables e Brian Ripley: um chamado "Modern Applied Statitics with S" e o outro chamado "S Programming". Embora eles mencionem sobre S no título, estes livros são todos muitos relevantes para programação em R também. Há um livro de Pinheiro e Bates chamado "Mixed Effects, Models in S and S-PLUS" que também é bastante útil para programadores R. E finalmente Paul Murrel, que projetou o sistema gráfico do R e escreveu um livro chamado R Graphics e que atualmente está na sua segunda edição. Dentre alguns outros recursos temos a série de livros da Editora Springer chamada "Use R", que é um conjunto de muito livros relativamente pequenos. Como usar R para diferente tipos de tópicos, diferente áreas de aplicações. Esta é um série de livros muito boa que você talvez possa se interessar. Pode haver um livro escrito para sua área de aplicação particular. Há um lista de livros mais longa no site do R. Esta foi uma breve visão geral do R e a história de como ele surgiu. E começando com o próximo vídeo, iniciarei falando sobre os detalhes da programação com a linguagem R e como podemos utilizá-la para analisar dados. Tradução: Allan Vieira Ribeiro | Revisão: Wilson de Carvalho M. Jr. A primeira questão, que penso ser a mais óbvia, é o que o R é? E a resposta é realmente muito simples. R basicamente é um dialeto de S. OK, isto nos leva à próxima questão lógica que é: o que é o S? S foi uma linguagem, ou é uma linguagem que foi desenvolvida por John Chambers no agora extinto Bell Labs. Foi iniciada em 1976 como um ambiente de análise estatística interno, um ambiente que as pessoas do Bell Labs poderiam utilizar para analisar dados. Inicialmente foi implementada como uma série de bibliotecas FORTRAN que implementavam rotinas que eram tediosas para sempre serem feitas, então havia as bibliotecas FORTRAN que repetiam estas rotinas estatísticas. As versões iniciais da linguagem não continham funções para modelagem estatística. Elas não chegaram até a versão três da linguagem. Então em 1988, o sistema foi reescrito na linguagem C para se tornar mais portátil entre os sistemas e começou a se assemelhar ao sistema que nós temos hoje. Essa foi a versão três. Havia um livro inicial chamado "Statistical Models in S" escrito por John Chambers e Trevor Hastie. Algumas vezes referido como o livro branco. Ele documenta todas as funcionalidades de análise estatística que vieram naquela versão da linguagem. A quarta versão da linguagem S lançada em 1998. E esta versão é a que nós mais ou menos usamos hoje. O livro "Programming with Data", que é uma das referências para este curso e que, às vezes, é chamado de livro verde, foi escrito por John Chambers e documenta a versão quatro da linguagem S. Então, R é uma implementação da linguagem S, que foi originalmente desenvolvida no Bell Labs. Um pouco mais de história: em 1993 o Bell Labs deu à uma empresa chamada StatSci, que se tornou Insightful Corporation, uma licença exclusiva para desenvolver e vender a linguagem S. Em 2004, a Insightful comprou a linguagem S completamente da Lucent. Bell Labs se tornou Lucent Technology por $2 milhões, sendo a dona atual.Bell Labs se tornou Lucent Technology por $2 milhões, sendo a dona atual. Em 2006, a Alcatel comprou a Lucent Technologies e agora é chamada Alcatel-Lucent. Insightful desenvolveu um produto que era a implementação da linguagem S com o nome de S-PLUS. E eles construíram um número de funcionalidades, como por exemplo, interfaces gráficas e todos os tipos de boas ferramentas. Então vimos que o PLUS vem de S-PLUS. Em 2008 a Insightful Corporation foi adquirida por uma companhia chamada TIBCO por $25 milhõesfoi adquirida por uma companhia chamada TIBCO por $25 milhões de dólares e é mais ou menos onde está agora. A TIBCO desenvolveu a S-PLUS, ainda que em uma variedade de diferentes tipos de produtos de análise de negócios, continuando desta forma até hoje. Você pode ver que a história da linguagem é um pouco tortuosa por causa das várias aquisições corporativas, mas ela ainda sobrevive até hoje. Os fundamentos básicos da linguagem S não mudaram muito desde 1998 e a linguagem que existiu em 1998 parece mais ou menos como a que nós usamos hoje, pelo menos superficialmente. É importante saber que em 1998 a linguagem S venceu o Prêmio de Sistemas de Software da Association for Computing Machinery. Uma honra muito prestigiosa. Em um documento chamado Estágios na evolução da S, John Chambers que foi seu criador original, explicou seu princípio chave ao projetar a linguagem. É muito importante ver o que é. Basicamente eles queriam criar um ambiente interativo onde você não teria que pensar nele como programação. Então ele disse que com suas necessidades tornaram-se mais claras e a sofisticação aumentava, eles deveriam estar aptos para passar gradualmente para a programação, quando a linguagem e os aspectos do sistemas tornariam-se mais importantes. Então a ideia básica por trás da linguagem S, e mais tarde na linguagem R, é que as pessoas entrariam na linguagem em um ambiente interativo onde eles poderiam utilizar o ambiente sem saber nada sobre programação, ou ter de saber muitos detalhaes da linguagem. Logo, eles poderiam utilizar o ambiente para avaliar dados e fazer análises básicas. E então quando eles superassem o ambiente, então eles poderiam entrar para programação. Eles poderiam iniciar aprendendo os aspectos da linguagem e aprendendo a desenvolver suas próprias ferramentas. O sistema promoveria esse tipo de transição de um usuário para um programador. Essa foi a filosofia básica da linguagem S. Isso já é o bastante sobre S. Vamos voltar a falar de R. Então o que é o R?
Basicamente, R é um desenvolvimento relativamente recente. Foi criada em 1991, na Nova Zelândia, por dois cavalheiros chamados Ross Ihaka e Robert Gentleman. Eles escreveram sobre sua experiência ao desenvolver a R em um artigo publicado em 1996 no Journal of Computation and Graphical Statistics. Em 1993, o primeiro anúncio da R foi feito ao público. Em 1995, Marting Michler convenceu Ross e Robert a licenciarem a R sob a GNU General Public License. E isso fez da R o que E isso fez da R o que chamamos de software livre. Em 1996, um lista de e-mail foi criada, de forma que havia duas listas principais. Uma chamda R-help, que é uma lista de e-mail genérica para questões. E R-devel, que é uma lista de e-mail mais específica para pessoas que estão desenvolvendo em R. Em 1997, o chamado "Grupo Central do R" (R Core Group) foi formado. Ele continha muitas pessoas que vieram do desenvolvimento do S-PLUS. O Grupo Central basicamente controla o código fonte da R. Logo, o código fonte primário da R pode ser somente modificado por membros do Grupo Central do R. Entretanto, um número de pessoas que não estavam no Grupo Central sugeriram mudanças ao R e elas foram aceitas pelo grupo.Algumas dessas primeiras características do R foram importantes no passado quando as pessoas ainda usavam a S-PLUS, mas como a sintaxe é muito similar a S, isso fez com que fosse fácil para usuários do S-PLUS migrarem. Essa característica não é muito relevante hoje, onde a maioria das pessoas geralmente vai diretamente para a R. A semântica é superficialmente similar a da S, parece muito com a S, mas na realidade elas são diferentes. Iremos falar mais sobre isto nas próximas aulas. Um dos principais benefícios da R é que ela executa em qualquer plataforma de computação padrão ou sistema operacional. Mac, Windows, Linux, tudo o que você quiser, até mesmo em seu PlayStation 3. São lançadas revisões frequentes, revisões principais anuais e frequentemente há lançamentos de correções de erros (bugs) entre elas. Há um desenvolvimento muito ativo sendo feito e as coisas estão acontecendo. O núcleo de software da R é atualmente bastante enxuto. Sua funcionalidade é dividida em pacotes modulares, de forma que você não precisa baixar e instalar um arquivo muito grande do software. Você pode baixar uma pequena com o núcleo principal e algumas funções, e então adicionar demais funcionalidades quando você precisar. As capacidades gráficas são bastante sofisticadas e dão ao usuário um grande controle sobre como os gráficos são criados. Na minha opinião são melhores que a maioria dos pacotes estatísticos. Pode até ser o melhor dos pacotes estatísticos de uso geral. É muito útil para trabalhos interativos como disse anteriormente, mas contêm esta poderosa linguagem de programação. Para desenvolver novas ferramentas, ele facilita a transição do usuário para o programa. E atualmente, para um linguagem como essa, há uma comunidade de usuários muito ativa e vibrante. As listas de email R-help e R-devel são muito ativas. Há muitas postagens por dia e há também uma série de questões no StackOverflow que podem ser respondidas. Logo, a comunidade de usuários é um dos aspectos mais interessante da R. É de onde todos os pacotes da R vem e cria muitos tipos de funcionalidades interessantes. Provavelmente a característica mais importante da R é que ela é gratuita. Tanto no sentido de cerveja quanto no discurso. O que quis dizer é que não custa nada e você pode baixar o software completo pela internet. Como também é um software livre, vou me desviar por um segundo para falar um pouco sobre software livre. Com o software livre há quatro princípios básicos. Você tem quatro liberdades básicas. A liberdade zero é a liberdade de executar o programa para qualquer propósito, então não existem restrições em como, quando ou o que você pode ou não fazer com o programa. A liberdade um é a liberdade de estudar como o programa trabalha e adaptá-lo às suas necessidades. Isso acontece quase todo o dia, e significa que você pode olhar no código fonte do próprio R e fazer alterações caso queira. Você pode acrescentar características ou fazer uma versão melhor do programa. Você pode vender as mudanças, se quiser. Você pode modificar o programa de qualquer forma que você queira e adaptá-lo às suas necessidades. Com certeza, você pode olhar no código fonte para alcançar a liberdade um. A liberdade dois é que você tem a liberdade para redistribuir cópias, então você pode ajudar seu vizinho. A ideia é que você pode dar cópias para outras pessoas. Você pode vender cópias. Você pode fazer o que você quiser com elas. Por fim, você tem a liberdade de melhorar o programa e liberar suas melhorias de forma que toda a comunidade se beneficie, esta é a liberdade três. A ideia é que quando pessoas fazem mudanças ao programa, elas podem liberá-las para o público, assim todos conseguem obter estas mudanças. Estas liberdades básicas são delineadas pela Free Software Foundation e você pode ver mais sobre ela em seu site. Há algumas desvantagens do R. Não vou passar por todas elas e provavelmente outras pessoas têm muitas outras reclamações. Mas há algumas desvantagens básicas, sendo que uma delas é que essencialmente é baseada em uma tecnologia de 40 anos. A linguagem S original foi desenvolvida no anos 70 baseada em alguns princípios e as ideias básicas não mudaram tanto. Um exemplo disso é que pouco suporte embutido para gráficos dinâmicos ou 3D. Mas as coisas tem melhorado muito nessa frente desde os velhos tempos. Há muitos pacotes com ferramentas interessantes agora para criar gráficos dinâmicos ou 3D. Outras desvantagem do R que eu e escuto bastante é que a funcionalidade é baseada na demanda dos consumidores e basicamente em contribuições dos usuários. Se ninguém tem vontade de implementar seu método favorito então é seu trabalho implementá-lo. E você não pode reclamar, pois não há uma companhia para qual você possa reclamar. Não há uma linha de suporte na qual você pode ligar para dizer que há demanda de uma implementação ou funcionalidade específicas. Se a funcionalidade não está lá, então você tem que construi-la. ou "pelo menos um", você pode pagar alguém para construí-la. Outra desvantagem, que é um pouco mais técnica, é que os objetos que você manipula no R tem de ser armazenados na memória física do computador. Se o objeto é maior que a memória física do computador, então você não pode carregá-lo para a memória. Portanto você não pode fazer nada no R com aquele objeto. Houve muitos avanços para lidar com isto também. Tanto na linguagem R quanto no lado do hardware. Hoje existem computadores que podem ser comprados com enormes quantidades de memória. Alguns desses problemas foram resolvidos somente pelo avanço da tecnologia. Mas não obstante, quando entramos na era da Big Data onde temos conjunto de dados cada vez maiores, o modelo de carregar objetos na memória física pode ser uma limitação. E finalmente, vou digo que o R não é ideal para todas as possíveis situações. Muitas pessoas, e eu acho isso algo bom, têm grandes expectativas pelo R. Eles esperam que ele seja capaz de fazer qualquer coisa. Mas ele não faz tudo e você deveria prosseguir sabendo desse fato. O sistema básico do R é dividido em dois, o que você pode pensar como duas partes conceituais. Há o sistema base do R que você baixar de um CRAN que é a rede de arquivos do R. O CRAN é o lugar a ir para encontrar tudo sobre o R. O sistema base contém o que é chamado de pacote base. Ele possui todo o tipo de funções fundamentais de baixo nível que você precisa para executar o sistema R. Há outro pacotes contidos no sistema base que incluem, por exemplo, utilitários estatísticos, conjuntos de dados, gráficos e vários outros pacotes fundamentais que praticamente todos podem precisar usar. Há uma série de pacotes recomendados como o "bootstrap", "class" para classificação, "cluster", "codetools", "foreign" e uma variedade de outros pacotes. Estes são os pacotes comumente utilizados. Eles podem não ser pacotes críticos, mas são normalmente utilizados por várias pessoas. Todos esses pacotes vem com o sistema base do R que você pode baixar do CRAN. Obviamente, há muito mais do que isto e no CRAN há agora cerca de 4.000 pacotes que foram desenvolvidos por usuários e programadores de todo o mundo. Esses pacotes são contribuições dos usuários e não são controlados pelo núcleo do R. E eles são carregados para o CRAN periodicamente. O CRAN tem um número de restrições e padrões que têm de ser cumpridos para se colocar um pacote no CRAN. Assim, algo positivo sobre o CRAN é que os pacotes que você baixa precisam cumprir um certo nível de qualidade. Tem de haver, por exemplo, documentação para todas as funções que estão no pacote e é preciso ter certeza de que elas passem em uma certa quantidade de testes. O CRAN tem muitos pacotes diferentes escritos pelos usuários e o número está crescendo a cada dia. Então emocionante ver todos esses pacotes no CRAN e ver novos pacotes chegando diariamente. Há também pacotes associados com o projeto Bioconductor, que é empacotado e que é um projeto para implementação do software R para análise de dados biológicos e genômicos. E, com certeza, há também os pacotes feitos por pessoas que os disponibilizam em seu sites pessoais. Não há um modo confiável de acompanhar quantos pacotes estão disponíveis desta maneira. Existem realmente milhares de pacotes que foram escritos por pessoas que você pode descobrir e utilizar para analisar dados.Há alguns documentos que você pode encontrar no site do R. Como você está aprendendo a usar R, você pode querer folhear alguns deles. Um é uma introdução ao R, que é um documento PDF relativamente longo que vai desde o básico de como utilizar o R a como utilizar a linguagem. Há o manual Escrevendo Extensões do R que a leitura somente é útil se você está pensando em desenvolver pacotes do R, que são as extensões do R para o sistema principal. O Manual de importação de exportação de dados do R, que é útil para obter e colocar dados no R de várias formas diferentes. O manual de instalação do R é mais útil se você quer compilar o R a partir do código fonte. Irei falar sobre isso em outro vídeo. E finalmente o manual do interior do R. Ele é um documento técnico sobre como o R foi projetado. Como o R é implementado a um nível muito baixo. Realmente não é para os fracos de coração. Mas se você é esse tipo de pessoa, que quer saber como o R funciona a um nível muito, muito baixo, este documento é para você. Então, eu vou encerrar por aqui com alguns textos que são de certa forma padrões ou textos clássicos nesta área. Claro, os livros de John Chambers "Software for Data Analysis" e "Programming with Data", ambos publicados pela Editora Springer. Dois livros de Bill Venables e Brian Ripley: um chamado "Modern Applied Statitics with S" e o outro chamado "S Programming". Embora eles mencionem sobre S no título, estes livros são todos muitos relevantes para programação em R também. Há um livro de Pinheiro e Bates chamado "Mixed Effects, Models in S and S-PLUS" que também é bastante útil para programadores R. E finalmente Paul Murrel, que projetou o sistema gráfico do R e escreveu um livro chamado R Graphics e que atualmente está na sua segunda edição. Dentre alguns outros recursos temos a série de livros da Editora Springer chamada "Use R", que é um conjunto de muito livros relativamente pequenos. Como usar R para diferente tipos de tópicos, diferente áreas de aplicações. Esta é um série de livros muito boa que você talvez possa se interessar. Pode haver um livro escrito para sua área de aplicação particular. Há um lista de livros mais longa no site do R. Esta foi uma breve visão geral do R e a história de como ele surgiu. E começando com o próximo vídeo, iniciarei falando sobre os detalhes da programação com a linguagem R e como podemos utilizá-la para analisar dados. Tradução: Allan Vieira Ribeiro | Revisão: Wilson de Carvalho M. Jr.
Texto retirado de um vídeo num curso da Coursera dado pela universidade Johns Hopkins de Ciência de Dados programação em R.