Eu tinha um plano de aprender R em um futuro próximo. Lendo outra pergunta , descobri o Clojure. Agora não sei o que fazer.
Eu acho que uma grande vantagem do R para mim é que algumas pessoas em Economia o usam, incluindo um dos meus supervisores (embora o outro tenha dito: fique longe do R!). Uma vantagem do Clojure é que ele é baseado em Lisp e, como eu comecei a aprender o Emacs e gosto de escrever minhas próprias personalizações, seria útil (sim, eu sei que Clojure e Elisp são dialetos diferentes do Lisp, mas são Lisp e, portanto, similar, eu imagino).
Não posso perguntar qual é o melhor, porque sei que isso é muito pessoal, mas alguém poderia me dar as vantagens (ou vantagens) do Clojure x R, especialmente em termos práticos? Por exemplo, qual deve ser mais fácil de aprender, qual é mais flexível ou mais poderoso, qual possui mais bibliotecas, mais suporte, mais usuários, etc.?
Meu uso pretendido : a maior parte da minha estimativa deve ser feita usando o Matlab, por isso não estou procurando nada muito profundo em termos de análise estatística, mas um software para substituir o Excel pela manipulação e visualização inicial de dados, estatísticas resumidas e gráficos, mas também algumas análises estatísticas básicas ou as tentativas iniciais de minha estimativa.
Respostas:
Deixe-me começar dizendo que eu amo as duas linguagens: você também não pode dar errado, e elas certamente são melhores do que algo como C ++ ou Java para fazer análise de dados.
Para análise básica de dados, sugiro R (especialmente com plyr). O IMO, R é um pouco mais fácil de aprender do que o Clojure, embora isso não seja completamente óbvio, pois o Clojure é baseado no Lisp e existem vários recursos fantásticos do Lisp disponíveis (como o SICP ). Existem menos palavras-chave no Clojure, mas as bibliotecas são muito mais difíceis de instalar e trabalhar. Além disso, lembre-se de que R (ou S) é amplamente derivado do esquema, portanto você se beneficiaria do conhecimento do Lisp ao usá-lo.
Em geral:
A principal vantagem do R é a comunidade no CRAN (mais de 2461 pacotes e contando). Nada se compara a isso em um futuro próximo, nem mesmo um aplicativo comercial como o matlab.
O Clojure tem a grande vantagem de executar na JVM, o que significa que ele pode usar qualquer biblioteca baseada em Java imediatamente.
Eu acrescentaria que dei uma palestra sobre Clojure / Incanter com R há um tempo atrás, para que você possa achar interessante. Na minha experiência em criar isso, o Clojure geralmente era mais lento que o R para operações simples.
fonte
Eu tenho sido um usuário pesado de R nos últimos 6-7 anos. Como linguagem, possui várias limitações de design. No entanto, para trabalhos em econometria e análise de dados, eu ainda o recomendo de todo o coração. Ele tem um grande número de pacotes que seriam relevantes para você em econometria, séries temporais, modelagem de escolha do consumidor etc. e, claro, excelente visualização, boa álgebra e bibliotecas numéricas etc. Eu não me preocuparia muito com as limitações de tamanho de dados. Embora o R não tenha sido projetado para "big data" (diferentemente, por exemplo, do SAS), existem maneiras de contornar isso. A disponibilidade de pacotes é o que realmente faz a diferença.
Eu só li as especificações de idioma do Clojure, e é bonito e limpo. Aborda de maneira natural questões de paralelização e escala. E se você tiver algum conhecimento básico sobre java ou OOP, poderá se beneficiar do grande número de bibliotecas java de alta qualidade.
O problema que tenho com o Clojure é que é uma operação recente de um homem (R.Hickey), portanto 1) muito arriscada 2) muito imatura 3) com adoção de nicho. Ótimo para entusiastas, adotantes precoces, pessoas de CS / ML que desejam experimentar coisas novas. Para um usuário que vê um idioma como um meio para um fim e que precisa de um código muito robusto que possa ser compartilhado com outros, os idiomas estabelecidos parecem uma opção mais segura. Apenas saiba quem você é.
fonte
Atualização (agosto de 2014): como @gappy comenta abaixo, a partir da versão 3.0.0 do R os limites são mais altos e significa que o R é capaz de lidar com conjuntos de dados maiores.
Aqui está um ponto de dados: R possui um "teto de big data" , útil para saber se você planeja trabalhar com grandes conjuntos de dados.
Não tenho certeza se as mesmas limitações se aplicam ao Clojure / Incanter, se ele supera o R ou é realmente pior. Imagino que a JVM provavelmente possa lidar com grandes conjuntos de dados, especialmente se você conseguir aproveitar o poder dos recursos preguiçosos do Clojure.
fonte