Ich hatte einen Plan, R in naher Zukunft zu lernen. Als ich eine andere Frage las, erfuhr ich von Clojure. Jetzt weiß ich nicht was ich tun soll.
Ich denke, ein großer Vorteil von R ist für mich, dass einige Leute in der Volkswirtschaftslehre es verwenden, einschließlich eines meiner Vorgesetzten (obwohl der andere sagte: Bleib weg von R!). Ein Vorteil von Clojure ist, dass es auf Lisp basiert, und da ich Emacs gelernt habe und daran interessiert bin, meine eigenen Anpassungen zu schreiben, wäre es hilfreich (ja, ich weiß, dass Clojure und Elisp verschiedene Dialekte von Lisp sind, aber sie sind es sowohl Lisp als auch so ähnlich würde ich mir vorstellen).
Ich kann nicht fragen, welches besser ist, weil ich weiß, dass dies sehr persönlich ist, aber könnte mir jemand die Vorteile (oder Vorteile) von Clojure x R geben, insbesondere in praktischer Hinsicht? Welcher sollte zum Beispiel leichter zu erlernen sein, welcher ist flexibler oder leistungsfähiger, welcher hat mehr Bibliotheken, mehr Unterstützung, mehr Benutzer usw.?
Mein Verwendungszweck : Der Großteil meiner Schätzung sollte mit Matlab erfolgen, daher suche ich nicht nach einer zu umfassenden statistischen Analyse, sondern nach einer Software, die Excel anstelle der anfänglichen Datenmanipulation und -visualisierung, der zusammenfassenden Statistik und der grafischen Darstellung verwendet. aber auch einige grundlegende statistische Analysen oder die ersten Versuche meiner Einschätzung.
Antworten:
Lassen Sie mich zunächst sagen, dass ich beide Sprachen liebe: Sie können auch nichts falsch machen, und sie sind mit Sicherheit besser als C ++ oder Java für die Datenanalyse.
Für die grundlegende Datenanalyse würde ich R vorschlagen (besonders mit Plyr). IMO, R ist ein bisschen einfacher zu erlernen als Clojure, obwohl dies nicht ganz offensichtlich ist, da Clojure auf Lisp basiert und zahlreiche fantastische Lisp-Ressourcen zur Verfügung stehen (wie z. B. SICP ). Es gibt weniger Schlüsselwörter in Clojure, aber die Bibliotheken sind viel schwieriger zu installieren und zu bearbeiten. Denken Sie auch daran, dass R (oder S) größtenteils von Schema abgeleitet ist, sodass Sie bei der Verwendung von Lisp-Wissen profitieren würden.
Im Allgemeinen:
Der Hauptvorteil von R ist die Community auf CRAN (über 2461 Pakete und Zählung). In naher Zukunft wird es nichts Vergleichbares geben, nicht einmal eine kommerzielle Anwendung wie matlab.
Clojure hat den großen Vorteil, dass es auf der JVM ausgeführt wird, was bedeutet, dass es jede Java-basierte Bibliothek sofort verwenden kann.
Ich möchte hinzufügen, dass ich vor einiger Zeit einen Vortrag über Clojure / Incanter in Bezug auf R gehalten habe, damit Sie ihn vielleicht interessant finden. Nach meiner Erfahrung war Clojure bei einfachen Operationen im Allgemeinen langsamer als R.
quelle
Ich bin seit 6-7 Jahren ein starker R-User. Als Sprache weist es mehrere Designeinschränkungen auf. Für die Arbeit in der Ökonometrie und in der Datenanalyse kann ich es dennoch von ganzem Herzen empfehlen. Es hat eine große Anzahl von Paketen, die für Sie relevant sind für Ökonometrie, Zeitreihen, Consumer Choice-Modellierung usw. und natürlich exzellente Visualisierung, gute Algebra und numerische Bibliotheken usw. Ich würde mich nicht zu sehr um Datengrößenbeschränkungen kümmern. Obwohl R nicht für "Big Data" konzipiert wurde (im Gegensatz zu beispielsweise SAS), gibt es Möglichkeiten, dies zu umgehen. Die Verfügbarkeit von Paketen macht den Unterschied aus.
Ich habe nur die Sprachspezifikationen von Clojure gelesen und sie sind wunderschön und sauber. Es befasst sich auf natürliche Weise mit Fragen der Parallelisierung und Skalierung. Und wenn Sie über grundlegende Java- oder OOP-Kenntnisse verfügen, können Sie von der großen Anzahl hochwertiger Java-Bibliotheken profitieren.
Das Problem bei Clojure ist, dass es sich um eine kürzlich durchgeführte Ein-Mann-Operation (R.Hickey) handelt, also 1) sehr riskant 2) sehr unreif 3) mit Nischenadoption. Ideal für Enthusiasten, Early Adopters und CS / ML-Leute, die neue Dinge ausprobieren möchten. Für einen Benutzer, der eine Sprache als Mittel zum Zweck sieht und einen sehr robusten Code benötigt, der mit anderen geteilt werden kann, scheinen etablierte Sprachen eine sicherere Wahl zu sein. Weiß nur wer du bist.
quelle
Update (August 2014): Ab R-Version 3.0.0 sind die Grenzwerte höher, da @gappy-Kommentare unten angezeigt werden. Dies bedeutet, dass R größere Datensätze verarbeiten kann.
Hier ist ein Datenpunkt: R hat eine "Obergrenze für große Datenmengen" . Dies ist hilfreich, wenn Sie vorhaben, mit großen Datenmengen zu arbeiten.
Ich bin mir nicht sicher, ob die gleichen Einschränkungen für Clojure / Incanter gelten, ob es R übertrifft oder tatsächlich schlechter ist. Ich stelle mir vor, dass die JVM wahrscheinlich mit großen Datenmengen umgehen kann, insbesondere wenn Sie die Leistungsfähigkeit der faulen Funktionen von Clojure nutzen.
quelle