R Programmiergrundlagen R Statistical Computing Environment: Teaching Experience R Programmiersprache für Anfänger

Über den Kurs
In diesem Kurs betrachten wir R hauptsächlich als Programmiersprache, nicht als Werkzeug zum Anwenden bestimmter Algorithmen. Das Programm stellt grundlegende Datentypen und universelle semantische Regeln vor und berührt einige komplexe Themen im Zusammenhang mit typischen Aufgaben, die bei der Datenverarbeitung und -analyse auftreten.

Was zum Bestehen erforderlich ist
Eigentlich die Sprache R (Version 3.2.0 oder neuer). Die Videotutorials verwenden RStudio als Entwicklungsumgebung. Wenn Sie möchten, können Sie jedoch in jeder anderen IDE oder Ihrem bevorzugten Editor arbeiten.

Zertifikat
Bestehendes Ergebnis für den Erhalt eines Zertifikats - 70 von 100 Punkten. Für eine Ehrenurkunde - 92 .

Für wen ist dieser Kurs

Studenten und Doktoranden, Forscher, Analysten und Forscher, die auf dem Gebiet der Datenanalyse arbeiten

Der Kurs setzt keine Kenntnisse in R oder anderen Programmiersprachen voraus. Erfahrung in der Datenverarbeitung oder Kenntnisse der Grundprinzipien des Programmierens erleichtern jedoch das Verfolgen des Unterrichts. Dieser Kurs ist gut kompatibel mit dem Kurs "Datenanalyse in R". Diese Kurse sind unabhängig voneinander und können in beliebiger Reihenfolge belegt werden

Die statistische Analyse ist ein wesentlicher Bestandteil der wissenschaftlichen Forschung. Eine qualitativ hochwertige Datenverarbeitung erhöht die Chancen, einen Artikel in einer angesehenen Zeitschrift zu veröffentlichen und die Forschung auf internationales Niveau zu bringen. Es gibt viele Programme, die qualitativ hochwertige Analysen liefern können, aber die meisten von ihnen sind kostenpflichtig, und oft kostet die Lizenz mehrere hundert Dollar oder mehr. Aber heute werden wir über eine statistische Umgebung sprechen, die nicht bezahlt werden muss und deren Zuverlässigkeit und Popularität mit den besten kommerziellen Statistiken konkurriert. Pakete: Wir lernen R kennen!

Was ist R?

Bevor eine klare Definition gegeben wird, sollte beachtet werden, dass R mehr als nur ein Programm ist: Es ist eine Umgebung, eine Sprache und sogar eine Bewegung! Wir werden R aus verschiedenen Blickwinkeln betrachten.

R ist eine Computerumgebung, entwickelt von Wissenschaftlern für Datenverarbeitung, mathematische Modellierung und Grafik. R kann als einfacher Taschenrechner verwendet werden, Sie können einfache statistische Analysen (wie ANOVA oder Regressionsanalyse) und komplexere Langzeitberechnungen durchführen, Hypothesen testen, Vektorgrafiken und Karten erstellen. Dies ist keine vollständige Liste dessen, was in dieser Umgebung getan werden kann. Es ist erwähnenswert, dass es kostenlos verteilt wird und sowohl auf Windows- als auch auf UNIX-Betriebssystemen (Linux und MacOS X) installiert werden kann. Mit anderen Worten, R ist kostenlos und plattformübergreifend.

R ist eine Programmiersprache, damit Sie Ihre eigenen Programme schreiben können ( Skripte) mit und verwenden und erstellen Sie spezialisierte Erweiterungen ( Pakete). Ein Paket ist ein Satz von Dateien mit Hilfeinformationen und Beispielen, die in einem Archiv zusammengefasst sind. spielen eine wichtige Rolle, da sie als zusätzliche Erweiterungen auf Basis von R verwendet werden. Jedes Paket widmet sich normalerweise einem bestimmten Thema, zum Beispiel: Das Paket "ggplot2" wird verwendet, um schöne Vektorplots mit einem bestimmten Design zu erzeugen, während das Paket "qtl" Paket ist ideal für die genetische Kartierung . Derzeit gibt es mehr als 7000 solcher Pakete in der R-Bibliothek! Alle sind auf Fehler geprüft und gemeinfrei.


R steht für Gemeinschaft/Bewegung.
Da R ein kostenloses Open-Source-Produkt ist, wird es nicht von einer separaten Firma mit angestelltem Personal entwickelt, getestet und debuggt, sondern von den Benutzern selbst. Seit zwei Jahrzehnten hat sich aus dem Kern von Entwicklern und Enthusiasten eine riesige Community gebildet. Den neuesten Daten zufolge haben sich mehr als 2 Millionen Menschen freiwillig gemeldet, um auf die eine oder andere Weise bei der Entwicklung und Förderung von R zu helfen, angefangen bei der Übersetzung von Dokumentationen über die Erstellung von Schulungskursen bis hin zur Entwicklung neuer Anwendungen für Wissenschaft und Industrie. Es gibt eine Vielzahl von Foren im Internet, in denen Sie Antworten auf die meisten Fragen zu R finden können.

Wie sieht die R-Umgebung aus?

Es gibt viele "Schalen" für R, die sich in Aussehen und Funktionalität stark unterscheiden können. Aber wir werden uns nur drei der beliebtesten Optionen kurz ansehen: Rgui, Rstudio und R, das in einem Linux/UNIX-Terminal als Befehlszeile ausgeführt wird.


R-Sprache in der Welt der Statistikprogramme

Derzeit gibt es Dutzende hochwertiger Statistikpakete, unter denen SPSS, SAS und MatLab die klaren Spitzenreiter sind. Im Jahr 2013 wurde R jedoch trotz starker Konkurrenz zum meistgenutzten Softwareprodukt für statistische Analysen in wissenschaftlichen Publikationen (http://r4stats.com/articles/popularity/). Darüber hinaus wurde R in den letzten zehn Jahren zunehmend im Unternehmenssektor nachgefragt: Riesenunternehmen wie Google, Facebook, Ford und die New York Times nutzen es aktiv, um Daten zu sammeln, zu analysieren und zu visualisieren (http://www .revolutionanalytics .com/companies-using-r). Um die Gründe für die wachsende Popularität der Sprache R zu verstehen, schauen wir uns ihre Ähnlichkeiten und Unterschiede zu anderen statistischen Produkten an.

Im Allgemeinen können die meisten statistischen Tools in drei Typen unterteilt werden:

  1. GUI-Programme, basierend auf dem Prinzip "hier klicken, hier und das fertige Ergebnis erhalten";
  1. statistische Programmiersprachen, die grundlegende Programmierkenntnisse erfordern;
  1. "gemischt", die auch eine grafische Oberfläche haben ( GUI) und die Möglichkeit, Skriptprogramme zu erstellen (z. B.: SAS, STATA, Rcmdr).

Funktionen von Programmen mit GUI

Programme mit einer grafischen Oberfläche sehen dem durchschnittlichen Benutzer vertraut aus und sind leicht zu erlernen. Sie eignen sich jedoch nicht zum Lösen nicht trivialer Aufgaben, da sie nur über eine begrenzte Anzahl von Statistiken verfügen. Methoden und es ist unmöglich, eigene Algorithmen darin zu schreiben. Der gemischte Typ kombiniert den Komfort einer GUI-Shell mit der Leistungsfähigkeit von Programmiersprachen. In einem ausführlichen Vergleich statistischer Fähigkeiten mit den Programmiersprachen SAS und STATA verlieren jedoch sowohl R als auch MatLab (Vergleich der statistischen Methoden R, MatLab, STATA, SAS, SPSS). Außerdem müssen Sie für eine Lizenz für diese Programme ordentlich Geld hinblättern, und die einzige kostenlose Alternative ist Rcmdr: ein Wrapper für R mit einer GUI (Rcommander).

Vergleich von R mit den Programmiersprachen MatLab, Python und Julia

Unter den für statistische Berechnungen verwendeten Programmiersprachen nehmen R und Matlab die führenden Positionen ein. Sie sind einander ähnlich, sowohl im Aussehen als auch in der Funktionalität; aber sie haben unterschiedliche Benutzerlobbys, die ihre Besonderheiten bestimmen. In der Vergangenheit konzentrierte sich MatLab auf die angewandten Wissenschaften der Ingenieurwissenschaften, daher ist Mathematik seine Stärke. Modellierung und Berechnungen, außerdem ist es viel schneller als R! Da R jedoch als Sprache mit schmalem Profil für die statistische Datenverarbeitung entwickelt wurde, sind viele experimentelle stat. Methoden erschienen und wurden darin fixiert. Diese Tatsache und die Nullkosten machten R zu einer idealen Plattform für die Entwicklung und Nutzung neuer Pakete, die in den Grundlagenwissenschaften verwendet werden.

Andere "konkurrierende" Sprachen sind Python und Julia. Meiner Meinung nach eignet sich Python als universelle Programmiersprache eher für die Datenverarbeitung und Informationsbeschaffung mit Webtechnologien als für statistische Analysen und Visualisierungen (die Hauptunterschiede zwischen R und Python sind gut beschrieben). Aber die Statistiksprache Julia ist ein recht junges und ambitioniertes Projekt. Das Hauptmerkmal dieser Sprache ist die Geschwindigkeit der Berechnungen, die in einigen Tests R um das 100-fache übertrifft! Bisher befindet sich Julia in einem frühen Entwicklungsstadium und hat nur wenige zusätzliche Pakete und Follower, aber langfristig ist Julia vielleicht die einzige potenzielle Konkurrentin von R.

Fazit

Damit ist die R-Sprache derzeit eines der führenden statistischen Werkzeuge der Welt. Es wird aktiv in den Bereichen Genetik, Molekularbiologie und Bioinformatik, Umweltwissenschaften (Ökologie, Meteorologie) und landwirtschaftliche Disziplinen eingesetzt. Auch in der medizinischen Datenverarbeitung wird R zunehmend eingesetzt und verdrängt kommerzielle Pakete wie SAS und SPSS vom Markt.

Vorteile der R-Umgebung:

  • kostenlos und plattformübergreifend;
  • reichhaltiges Arsenal an Statistik. Methoden;
  • hochwertige Vektorgrafiken;
  • über 7000 getestete Pakete;
  • flexibel einsetzbar:
    - ermöglicht das Erstellen/Bearbeiten von Skripten und Paketen,
    - interagiert mit anderen Sprachen wie C, Java und Python,
    - kann mit Datenformaten für SAS, SPSS und STATA arbeiten;
  • aktive Community von Benutzern und Entwicklern;
  • Regelmäßige Updates, gute Dokumentation und Tech. Unterstützung.

Nachteile:

  • ein paar Informationen auf Russisch (obwohl in den letzten fünf Jahren mehrere Schulungen und interessante Bücher erschienen sind);
  • relative Schwierigkeit bei der Verwendung für einen Benutzer, der mit Programmiersprachen nicht vertraut ist. Teilweise kann dies durch Arbeiten in der Rcmdr-GUI-Shell, über die ich oben geschrieben habe, ausgeglichen werden, aber für nicht standardmäßige Lösungen müssen Sie immer noch die Befehlszeile verwenden.

Liste nützlicher Quellen

  1. Offizielle Seite: http://www.r-project.org/
  2. Seite für Anfänger: http://www.statmethods.net/
  3. Eines der besten Nachschlagewerke: The R Book, 2. Auflage von Michael J. Crawley, 2012
  4. Liste der verfügbaren Literatur in russischer Sprache + guter Blog

]. "Proletarier der geistigen Arbeit". Ausgebildeter Physiker. Ich arbeite seit über 30 Jahren im Bereich der medizinischen und biologischen Informationsverarbeitung.
Ich arbeite seit genau 10 Jahren in R, nachdem ich nach 15 Jahren enger Zusammenarbeit mit Matlab darauf umgestiegen bin. Die Hauptursache für meine Migration auf eine andere Arbeitsplattform war meine eigene physische Migration auf die andere Seite der Erde in Auckland, Neuseeland. Hier hat mich das Leben von den ersten Tagen an in die Arme von R getrieben, was ich bis heute nicht bereuen musste.

Zunehmend sehe ich im professionellen ru.net Interessensausbrüche für R. Nun, Artikel über ihn erscheinen auf dieser angesehenen Ressource. Weiter unter dem Schnitt ist mein erster Versuch einer russischsprachigen Einführung in R der erste (verbale) Teil der Präsentation, die ich vor drei Jahren für Kollegen der Fakultät für Tierwissenschaften der Iova State University gehalten habe.
(zur Seite: aber es stellt sich heraus, dass es schwierig ist, sich selbst zu übersetzen ...)


In diesem Beitrag

  • Was ist R?
  • Wo kommt er her
  • Warum liebe ich ihn
  • Mythen und Wahrheit

Was R

Als allererstes R ist ein System für statistische und andere wissenschaftliche Berechnungen unter Verwendung einer Programmiersprache S .

S- Sprache geschrieben Statistiker für Statistiker. wie vom Autor John Chambers definiert. Die Sprache wurde seit ihrer Einführung von Generationen sehr wählerischer Statistiker sehr gut aufgenommen und getestet. Es kann davon ausgegangen werden, dass es in der weltweiten statistischen Gemeinschaft weithin bekannt und akzeptiert ist. Auf der Zunge S Eine Reihe kritischer epidemiologischer, umweltbezogener und finanzieller Modelle wurden implementiert und sind weltweit und in vielen Branchen immer noch im Einsatz. Als Sprache aus meiner Sicht als "Schriftstellerin", S ist eine sehr schöne Alternative zur Sprache SAS .

Aus eigener Erfahrung - Bekanntschaft und erster Unterricht S Ich selbst erhielt in den frühen 90er Jahren von WHO-Statistikern, mit denen ich mich in der damaligen wissenschaftlichen Forschung kreuzte.

Nach vielen Schätzungen ist R (beides meiner Meinung nach - und nicht stark übertrieben) eines der erfolgreichsten Open-Source-Projekte, das gemäß den GNU-Lizenzstandards kostenlos von Dutzenden von Mirrors auf der ganzen Welt vertrieben wird.
Die Autoren antworten mit einer kategorischen Ablehnung aller Vorschläge zur Kommerzialisierung des Projekts, obwohl heute Grund zu der Annahme besteht, dass die Anzahl der weltweit installierten Kopien von R die Gesamtzahl der Kopien übersteigt alle andere Systeme der statistischen Analyse.

Von Anfang an und bis heute löst das Projekt bei mir tiefsten Respekt (am Rande der Bewunderung) für Stabilität, Benutzerunterstützung, Codekompatibilität usw. aus, die ich im Konzept verbinden würde Kultur.
Allerdings gilt der letzte Satz eher für nachfolgende Unterabschnitte.

Wo ist es hergekommen S Und was hat das mit R zu tun?

Wikipedia wird Ihnen zweifellos noch viele weitere Buchstaben geben.
Ich werde nur anmerken, was ich für wichtig halte, um den Platz von S und R in diesem Leben in dieser Welt zu verstehen.

Bell Laboratories (auch bekannt als Bell Labs, AT&T Bell Laboratories) sind in der Geschichte der Wissenschaft und Technologie und insbesondere der IT Co. ziemlich berühmt. Die statistische Forschung dort war schon immer sehr ernsthaft und wurde auch ernsthaft von allen verfügbaren Computerwerkzeugen unterstützt (lesen Sie - Tonnen von Fortran- und Lisp-Code).

Was später zur S-Sprache wurde, entstand in den 70er Jahren auf Initiative und unter der Leitung von John Chambers (John Chambers) als eine Reihe von Skripten, die es einfacher machen, Fortran-Code mit Daten zu "füttern". Diese. Im Vordergrund standen die Aufgabe der interaktiven Datenmanipulation, Kompaktheit, angenehmes Schreiben und Lesbarkeit des Codes sowie das Erhalten einer anständigen Ausgabe von Tabellen und Grafiken auf verschiedenen Geräten.

Die Syntax der Sprache ermöglicht den Aufbau nahezu beliebig komplexer Datenstrukturen, Mittel zur Beschreibung bestimmter statistischer Aufgaben und Objekte - stat. Tests, Modelle usw.

Seit 1984 hat die Sprache einen Namen angenommen, eine eigene „Bibel“ (veröffentlichtes Buch von Chambers und Beckers: S: Eine interaktive Umgebung für Datenanalyse und Grafiken), begann standardmäßig ein fast vollständiges "Gentleman's Set" von Statistiken und "Wahrscheinlichkeiten" zu enthalten - Verteilungen, Zufallszahlengeneratoren, statistische Tests, viele statistische Standardanalysen, Arbeit mit Matrizen usw., ganz zu schweigen von einem entwickelten wissenschaftlichen System Grafik. Am wichtigsten ist, dass es Benutzern auf der ganzen Welt zu einem sehr günstigen Preis zur Verfügung steht.

1988 (ein weiteres Buch veröffentlicht Die neue S-Sprache) - mit OOP geändert, alles wurde zu Objekten mit sehr vernünftigen Standardwerten, Zugänglichkeit für Änderungen, selbstkommentierende Elemente usw. usw.

Gleichzeitig veröffentlichten die Labore die Quellcodes und „Bell Lab“ S wurde für Studenten und für wissenschaftliche Zwecke kostenlos. Es hing alles irgendwie mit der „Enteignung“ von AT&T zusammen, aber diese Details interessierten mich nicht sehr.

Es gab und gibt wahrscheinlich immer noch kommerzielle Implementierungen der Sprache S. ich konfrontiert SPlus Und S2000. Sie wurden von verschiedenen Unternehmen zu unterschiedlichen Zeiten unterstützt, im Grunde lebten sie (live?) Aufgrund der Unterstützung von zuvor erstellten S Anwendungen. In diesen Post-Bell-Versionen S Es gab eine neue Version der OOP-Engine, aber für einen reinen Benutzer ging es in Bezug auf die Kompatibilität mit historischem Code fast unblutig.

R- die einzige nichtkommerzielle, vollständig unabhängige (von der ursprünglichen Bell) Implementierung der Sprache S.

Und durch eine in unserer Zeit seltene, für mich irgendwie unvorstellbare Vereinbarung der Entwickler der aktuellen Versionen des Werbespots S und gemeinnützig R ihre nahezu vollständige Kompatibilität und Kontinuität beibehalten.

Und jetzt R

Hinter jedem bedeutenden Phänomen in diesem Leben steht eine Art charismatische Persönlichkeit. Dies kann jedoch passieren und ist die Definition der Bedeutung des Phänomens.

Im Fall von R gibt es drei solcher Personen.
John Chambers habe ich bereits erwähnt.

Ross Ihaka, Student und dann Research Fellow am Department of Statistics der University of Auckland, wählte als Thema seiner Dissertation die Untersuchung der Möglichkeit, eine virtuelle Maschine (VM) für statistische Programmiersprachen zu bauen durchgeführt am MIT, USA). wurde als Zwischensprache gewählt. Lispeln (Gemeines Lispeln, CL) und darauf wird ein VM-Prototyp implementiert, der kleine Teilmengen von „versteht“. SAS Und S.
Ross kehrte nach Oakland zurück, um seine Dissertation abzuschließen, wo er bald Robert Gentleman traf und sich für das R-Projekt interessierte.
Ross hat seine Dissertation nie verteidigt, hat aber bereits einen Abschluss von mehreren Universitäten "auf der Grundlage von Verdiensten". Im vergangenen Jahr wurde ihm der Titel verliehen und er erhielt die Stelle eines Associate Professors (außerordentlicher Professor) an seiner Heimatuniversität.

Robert Gentleman, ein weiterer Statistiker mit einer Leidenschaft für das Programmieren, ursprünglich aus Kanada, während er an der University of Auckland ein Praktikum absolvierte (er arbeitete damals in Australien), schlug Ross vor, „eine Art Sprache zu schreiben“.
Der Legende nach, die ich selbst von diesen "Gründervätern" gehört habe, haben sie in etwas mehr als einem Monat in einem Anfall von wahnsinniger Begeisterung umgeschrieben CL fast alle Mannschaften S, einschließlich einer leistungsstarken linearen Modellierungsbibliothek.

Rechenmaschine R, der Tradition des Prototyps folgend, wurde die bekannte, allgemein anerkannte und kostenlose BLAS-Bibliothek gewählt (mit der Möglichkeit, ATLAS usw. mit derselben Schnittstelle zu verwenden).
Paul Murrel, einer der engsten Freunde von Ross und auch ein Angestellter der University of Oakland, hat sich alle Mühe gegeben, (in C, wie es scheint) eine Grafik-Engine von Grund auf neu zu schreiben, die die Funktionalität der in vollständig reproduziert S.

Das Ergebnis war ein kostenloses, voll ausgestattetes Paket, das sich sofort einen Platz im Lehrplan der Oaklanle University eroberte und vollständig mit den Beschreibungen in Chambers' sehr detaillierten und qualitativ hochwertigen Büchern übereinstimmte, die traditionell als Taschenbücher und in mittlerer Druckqualität veröffentlicht wurden, aber es waren günstig und zugänglich.
Mehrere Aktivistengruppen in der GNU-Bewegung (z. B. GIS) haben R als Plattform für wissenschaftliches Rechnen angenommen.

Aber wirklich der größte Ruhm R in der Bioinformatik erworben, als einer der "Väter" Robert Gentleman, der damals an der Arbeit der Firma Affimmetrix beteiligt war, alle Funktionen der kommerziellen Software der Firma duplizierte und (na ja, natürlich nicht eine) das Open-Source-Projekt startete Bioleiter. Derzeit Bioleiter ist der unangefochtene Marktführer im Bereich Bioinformatik Open Source für alle "-omics" (Genomics, Proteomics, Metabolomics etc.).

Natürlich ist die einzige Schnittstellensprache für diesen Aufruhr bioinformatischer Fantasien geworden R.

Der Kreis wurde geschlossen, als Chambers, der Schöpfer der Sprache, in den Ruhestand ging S, wurde ein vollwertiges Mitglied der Gruppe der aktiven Entwickler R.

Warum ich ihn liebe (Liste)

  1. Interaktivität, „Programmieren mit Daten“ ist mein bevorzugter Arbeitsstil
  2. Elegante (für einen Amateur) Sprache - Ich liebe Listen, Datenrahmen, funktionale Programmierung und Lambda-Funktionen (a-la) yu Meinungsfreiheit: Das gleiche Problem kann auf zehn Arten gelöst werden (mildert das Gefühl von Routine)
  3. „Er schaut nüchtern auf diese Welt“ – selten „fällt“ oder „hängt“ ein Faden, logische Operationen bei fehlenden Daten, Fehlerbehandlung zur Laufzeit (Try-Error), einfacher Austausch mit dem System auf der Ebene von Standard-I/O, usw.
  4. Vollständiger Satz gebrauchsfertiger statistischer Verfahren
  5. Gut dokumentiert und gepflegt - Kompatibilität, Kontinuität usw.
  6. Um ihn versammelt sich eine menschlich angenehme Fachgemeinschaft (Foren, Anwenderkonferenzen etc.)
  7. Gut dokumentierte Schnittstelle für externe Bibliotheken und Funktionen für alles - Fortran, C, Java. Daher das Meer an gut dokumentierten Bibliotheken zu allen Aspekten der Statistik und Datenverarbeitung in fast allen Bereichen der Wissenschaft, jedoch mit Schwerpunkt Bioinformatik/Biostatistik; alles wird regelmäßig und korrekt aktualisiert, sofern ein Verfasserwille vorhanden ist
  8. Das Fehlen einer obligatorischen GUI in der "Grundkonfiguration" - Nun, ich bin kein "Maus" -Mensch!
Aus der Liste: Ich bin nur froh, dass mein wichtigstes Arbeitswerkzeug … Seele hat.
Was ich in der Tat versuche, in meinem Artikel zu zeigen.

Warum und wie verwende ich es (Beispiele)

Ich habe angefangen, in diesem Abschnitt zu schreiben, aber aufgehört.
Sonst wäre ich nie fertig geworden.
Ach, vielleicht später.

Mythen und Wahrheit

R langsam
R ist dünn, verwendet Blas/Lapack/Atlas-Bibliotheken für Berechnungen, versuchen Sie, etwas schneller zu schreiben als diese guten alten Fortran (oft) Arbeitspferde. Alle kritischen Funktionen verwenden in der Regel Vektoroperationen und sind in implementiert VON.
R missbraucht Rechenressourcen, insbesondere Arbeitsspeicher
Ja, die Entwickler erkennen eine solche Sünde. Doch die Arbeitszeit eines Spezialisten ist mittlerweile teurer als Hardware. Entladen Sie Spielzeug von einem modernen Arbeitscomputer und mit den meisten echten Datensätzen werden Sie keine Probleme mit R haben.
Freie Software kann nicht zuverlässig sein
Vielleicht: Fortran, Linux, C, Lisp, Java usw.
Anstelle eines Epilogs
Wie oben erwähnt, ist der folgende Beitrag eigentlich eine Übersetzung meiner Präsentation für eine ziemlich spezifische Zielgruppe, und ich werde diese Zielgruppe kurz beschreiben.

Viele „saubere“ IT-Unternehmen werden auf solche Leute treffen müssen, da die Lebensmittelindustrie seit langem mit Öl und anderen Energiequellen konkurriert, um Kapital zu beschaffen und Gewinne zu erzielen. Und die Kapazität des Bioinformatik-Marktes in Medizin und Pharmakologie ist begrenzt, wie man das auch sagen mag.

Mein Publikum sind also Menschen mit einer Grundausbildung in Genetik und Zucht, Veterinärmedizin, seltener Biologie (hauptsächlich Molekulare). Onkel und Tanten (von letzteren gibt es mehr), 20-30 Jahre alt ... Programmieren (!) Auf FORTRAN oder VB, die bekanntermaßen Excel-Tabellen mit 100.000 Zeilen / Spalten verwalten und ihre Aufgaben (und ihre Programmierung) regelmäßig mit ihrem Computer-Linux 500+ Core-Cluster mit 12 TB gemeinsamem Speicher „fallen lassen“ und von Zeit zu Zeit eine Erweiterung des Festplattenspeichers um weitere zehn Terabyte erfordern.

Die methodische Basis ist eine explosive Mischung aus antiken wie der Welt der Varianzanalysen mit gemischten Modellen, die auf keine andere Weise als durch die Maximum-Likelihood-Methode gelöst werden können, "brain-melting" Bayesian Networks usw.

Daten - Datentabellen von Einheiten bis zu Zehntausenden von Zeilen, manchmal mit 1-5 Spalten mit Phänotypen, aber häufiger - Zehn oder Hunderte von "Ka" -Spalten von Variablen, die schwach miteinander und mit Phänotypen korrelieren.

Nun, ja, sie haben auch eine „gute Tradition“, alles in Bezug auf familiäre Bindungen (immerhin Genetik) zu berücksichtigen. Verwandtschaftsbeziehungen werden traditionell in Form einer Matrix von „Verwandtschaftsbeziehungen“ (Stammbaum) mit Abmessungen von beispielsweise 40.000 x 40.000 (bei 40.000 Tieren) dargestellt. Nun, oder (bisher glücklicherweise nur im Projekt) 20.000.000 x 20.000.000 - das soll mit einem einzigen Modell alle 20 Millionen historischen Tiere, die in der Datenbank verfügbar sind, „abdecken“ ( DB2, falls es jemanden interessiert, und selbst Cobol wurde noch nicht überall "ausgeschnitten" ...)

Auf mit Literatur übersäten Tischen (gleichzeitig) Fortran, Java, C#, Scala, Octavia, Linux für Dummies Sie können aktuelle Absolventen der Bioinformatik erkennen. Aber irgendwie verlassen viele von ihnen die Wissenschaft schnell für "Codierer".

Allerdings kenne ich auch den Fall der umgekehrten Bewegung. Damit R viele weitere werden sich als nützlich erweisen.

]. "Proletarier der geistigen Arbeit". Ausgebildeter Physiker. Ich arbeite seit über 30 Jahren im Bereich der medizinischen und biologischen Informationsverarbeitung.
Ich arbeite seit genau 10 Jahren in R, nachdem ich nach 15 Jahren enger Zusammenarbeit mit Matlab darauf umgestiegen bin. Die Hauptursache für meine Migration auf eine andere Arbeitsplattform war meine eigene physische Migration auf die andere Seite der Erde in Auckland, Neuseeland. Hier hat mich das Leben von den ersten Tagen an in die Arme von R getrieben, was ich bis heute nicht bereuen musste.

Zunehmend sehe ich im professionellen ru.net Interessensausbrüche für R. Nun, Artikel über ihn erscheinen auf dieser angesehenen Ressource. Weiter unter dem Schnitt ist mein erster Versuch einer russischsprachigen Einführung in R der erste (verbale) Teil der Präsentation, die ich vor drei Jahren für Kollegen der Fakultät für Tierwissenschaften der Iova State University gehalten habe.
(zur Seite: aber es stellt sich heraus, dass es schwierig ist, sich selbst zu übersetzen ...)


In diesem Beitrag

  • Was ist R?
  • Wo kommt er her
  • Warum liebe ich ihn
  • Mythen und Wahrheit

Was R

Als allererstes R ist ein System für statistische und andere wissenschaftliche Berechnungen unter Verwendung einer Programmiersprache S .

S- Sprache geschrieben Statistiker für Statistiker. wie vom Autor John Chambers definiert. Die Sprache wurde seit ihrer Einführung von Generationen sehr wählerischer Statistiker sehr gut aufgenommen und getestet. Es kann davon ausgegangen werden, dass es in der weltweiten statistischen Gemeinschaft weithin bekannt und akzeptiert ist. Auf der Zunge S Eine Reihe kritischer epidemiologischer, umweltbezogener und finanzieller Modelle wurden implementiert und sind weltweit und in vielen Branchen immer noch im Einsatz. Als Sprache aus meiner Sicht als "Schriftstellerin", S ist eine sehr schöne Alternative zur Sprache SAS .

Aus eigener Erfahrung - Bekanntschaft und erster Unterricht S Ich selbst erhielt in den frühen 90er Jahren von WHO-Statistikern, mit denen ich mich in der damaligen wissenschaftlichen Forschung kreuzte.

Nach vielen Schätzungen ist R (beides meiner Meinung nach - und nicht stark übertrieben) eines der erfolgreichsten Open-Source-Projekte, das gemäß den GNU-Lizenzstandards kostenlos von Dutzenden von Mirrors auf der ganzen Welt vertrieben wird.
Die Autoren antworten mit einer kategorischen Ablehnung aller Vorschläge zur Kommerzialisierung des Projekts, obwohl heute Grund zu der Annahme besteht, dass die Anzahl der weltweit installierten Kopien von R die Gesamtzahl der Kopien übersteigt alle andere Systeme der statistischen Analyse.

Von Anfang an und bis heute löst das Projekt bei mir tiefsten Respekt (am Rande der Bewunderung) für Stabilität, Benutzerunterstützung, Codekompatibilität usw. aus, die ich im Konzept verbinden würde Kultur.
Allerdings gilt der letzte Satz eher für nachfolgende Unterabschnitte.

Wo ist es hergekommen S Und was hat das mit R zu tun?

Wikipedia wird Ihnen zweifellos noch viele weitere Buchstaben geben.
Ich werde nur anmerken, was ich für wichtig halte, um den Platz von S und R in diesem Leben in dieser Welt zu verstehen.

Bell Laboratories (auch bekannt als Bell Labs, AT&T Bell Laboratories) sind in der Geschichte der Wissenschaft und Technologie und insbesondere der IT Co. ziemlich berühmt. Die statistische Forschung dort war schon immer sehr ernsthaft und wurde auch ernsthaft von allen verfügbaren Computerwerkzeugen unterstützt (lesen Sie - Tonnen von Fortran- und Lisp-Code).

Was später zur S-Sprache wurde, entstand in den 70er Jahren auf Initiative und unter der Leitung von John Chambers (John Chambers) als eine Reihe von Skripten, die es einfacher machen, Fortran-Code mit Daten zu "füttern". Diese. Im Vordergrund standen die Aufgabe der interaktiven Datenmanipulation, Kompaktheit, angenehmes Schreiben und Lesbarkeit des Codes sowie das Erhalten einer anständigen Ausgabe von Tabellen und Grafiken auf verschiedenen Geräten.

Die Syntax der Sprache ermöglicht den Aufbau nahezu beliebig komplexer Datenstrukturen, Mittel zur Beschreibung bestimmter statistischer Aufgaben und Objekte - stat. Tests, Modelle usw.

Seit 1984 hat die Sprache einen Namen angenommen, eine eigene „Bibel“ (veröffentlichtes Buch von Chambers und Beckers: S: Eine interaktive Umgebung für Datenanalyse und Grafiken), begann standardmäßig ein fast vollständiges "Gentleman's Set" von Statistiken und "Wahrscheinlichkeiten" zu enthalten - Verteilungen, Zufallszahlengeneratoren, statistische Tests, viele statistische Standardanalysen, Arbeit mit Matrizen usw., ganz zu schweigen von einem entwickelten wissenschaftlichen System Grafik. Am wichtigsten ist, dass es Benutzern auf der ganzen Welt zu einem sehr günstigen Preis zur Verfügung steht.

1988 (ein weiteres Buch veröffentlicht Die neue S-Sprache) - mit OOP geändert, alles wurde zu Objekten mit sehr vernünftigen Standardwerten, Zugänglichkeit für Änderungen, selbstkommentierende Elemente usw. usw.

Gleichzeitig veröffentlichten die Labore die Quellcodes und „Bell Lab“ S wurde für Studenten und für wissenschaftliche Zwecke kostenlos. Es hing alles irgendwie mit der „Enteignung“ von AT&T zusammen, aber diese Details interessierten mich nicht sehr.

Es gab und gibt wahrscheinlich immer noch kommerzielle Implementierungen der Sprache S. ich konfrontiert SPlus Und S2000. Sie wurden von verschiedenen Unternehmen zu unterschiedlichen Zeiten unterstützt, im Grunde lebten sie (live?) Aufgrund der Unterstützung von zuvor erstellten S Anwendungen. In diesen Post-Bell-Versionen S Es gab eine neue Version der OOP-Engine, aber für einen reinen Benutzer ging es in Bezug auf die Kompatibilität mit historischem Code fast unblutig.

R- die einzige nichtkommerzielle, vollständig unabhängige (von der ursprünglichen Bell) Implementierung der Sprache S.

Und durch eine in unserer Zeit seltene, für mich irgendwie unvorstellbare Vereinbarung der Entwickler der aktuellen Versionen des Werbespots S und gemeinnützig R ihre nahezu vollständige Kompatibilität und Kontinuität beibehalten.

Und jetzt R

Hinter jedem bedeutenden Phänomen in diesem Leben steht eine Art charismatische Persönlichkeit. Dies kann jedoch passieren und ist die Definition der Bedeutung des Phänomens.

Im Fall von R gibt es drei solcher Personen.
John Chambers habe ich bereits erwähnt.

Ross Ihaka, Student und dann Research Fellow am Department of Statistics der University of Auckland, wählte als Thema seiner Dissertation die Untersuchung der Möglichkeit, eine virtuelle Maschine (VM) für statistische Programmiersprachen zu bauen durchgeführt am MIT, USA). wurde als Zwischensprache gewählt. Lispeln (Gemeines Lispeln, CL) und darauf wird ein VM-Prototyp implementiert, der kleine Teilmengen von „versteht“. SAS Und S.
Ross kehrte nach Oakland zurück, um seine Dissertation abzuschließen, wo er bald Robert Gentleman traf und sich für das R-Projekt interessierte.
Ross hat seine Dissertation nie verteidigt, hat aber bereits einen Abschluss von mehreren Universitäten "auf der Grundlage von Verdiensten". Im vergangenen Jahr wurde ihm der Titel verliehen und er erhielt die Stelle eines Associate Professors (außerordentlicher Professor) an seiner Heimatuniversität.

Robert Gentleman, ein weiterer Statistiker mit einer Leidenschaft für das Programmieren, ursprünglich aus Kanada, während er an der University of Auckland ein Praktikum absolvierte (er arbeitete damals in Australien), schlug Ross vor, „eine Art Sprache zu schreiben“.
Der Legende nach, die ich selbst von diesen "Gründervätern" gehört habe, haben sie in etwas mehr als einem Monat in einem Anfall von wahnsinniger Begeisterung umgeschrieben CL fast alle Mannschaften S, einschließlich einer leistungsstarken linearen Modellierungsbibliothek.

Rechenmaschine R, der Tradition des Prototyps folgend, wurde die bekannte, allgemein anerkannte und kostenlose BLAS-Bibliothek gewählt (mit der Möglichkeit, ATLAS usw. mit derselben Schnittstelle zu verwenden).
Paul Murrel, einer der engsten Freunde von Ross und auch ein Angestellter der University of Oakland, hat sich alle Mühe gegeben, (in C, wie es scheint) eine Grafik-Engine von Grund auf neu zu schreiben, die die Funktionalität der in vollständig reproduziert S.

Das Ergebnis war ein kostenloses, voll ausgestattetes Paket, das sich sofort einen Platz im Lehrplan der Oaklanle University eroberte und vollständig mit den Beschreibungen in Chambers' sehr detaillierten und qualitativ hochwertigen Büchern übereinstimmte, die traditionell als Taschenbücher und in mittlerer Druckqualität veröffentlicht wurden, aber es waren günstig und zugänglich.
Mehrere Aktivistengruppen in der GNU-Bewegung (z. B. GIS) haben R als Plattform für wissenschaftliches Rechnen angenommen.

Aber wirklich der größte Ruhm R in der Bioinformatik erworben, als einer der "Väter" Robert Gentleman, der damals an der Arbeit der Firma Affimmetrix beteiligt war, alle Funktionen der kommerziellen Software der Firma duplizierte und (na ja, natürlich nicht eine) das Open-Source-Projekt startete Bioleiter. Derzeit Bioleiter ist der unangefochtene Marktführer im Bereich Bioinformatik Open Source für alle "-omics" (Genomics, Proteomics, Metabolomics etc.).

Natürlich ist die einzige Schnittstellensprache für diesen Aufruhr bioinformatischer Fantasien geworden R.

Der Kreis wurde geschlossen, als Chambers, der Schöpfer der Sprache, in den Ruhestand ging S, wurde ein vollwertiges Mitglied der Gruppe der aktiven Entwickler R.

Warum ich ihn liebe (Liste)

  1. Interaktivität, „Programmieren mit Daten“ ist mein bevorzugter Arbeitsstil
  2. Elegante (für einen Amateur) Sprache - Ich liebe Listen, Datenrahmen, funktionale Programmierung und Lambda-Funktionen (a-la) yu Meinungsfreiheit: Das gleiche Problem kann auf zehn Arten gelöst werden (mildert das Gefühl von Routine)
  3. „Er schaut nüchtern auf diese Welt“ – selten „fällt“ oder „hängt“ ein Faden, logische Operationen bei fehlenden Daten, Fehlerbehandlung zur Laufzeit (Try-Error), einfacher Austausch mit dem System auf der Ebene von Standard-I/O, usw.
  4. Vollständiger Satz gebrauchsfertiger statistischer Verfahren
  5. Gut dokumentiert und gepflegt - Kompatibilität, Kontinuität usw.
  6. Um ihn versammelt sich eine menschlich angenehme Fachgemeinschaft (Foren, Anwenderkonferenzen etc.)
  7. Gut dokumentierte Schnittstelle für externe Bibliotheken und Funktionen für alles - Fortran, C, Java. Daher das Meer an gut dokumentierten Bibliotheken zu allen Aspekten der Statistik und Datenverarbeitung in fast allen Bereichen der Wissenschaft, jedoch mit Schwerpunkt Bioinformatik/Biostatistik; alles wird regelmäßig und korrekt aktualisiert, sofern ein Verfasserwille vorhanden ist
  8. Das Fehlen einer obligatorischen GUI in der "Grundkonfiguration" - Nun, ich bin kein "Maus" -Mensch!
Aus der Liste: Ich bin nur froh, dass mein wichtigstes Arbeitswerkzeug … Seele hat.
Was ich in der Tat versuche, in meinem Artikel zu zeigen.

Warum und wie verwende ich es (Beispiele)

Ich habe angefangen, in diesem Abschnitt zu schreiben, aber aufgehört.
Sonst wäre ich nie fertig geworden.
Ach, vielleicht später.

Mythen und Wahrheit

R langsam
R ist dünn, verwendet Blas/Lapack/Atlas-Bibliotheken für Berechnungen, versuchen Sie, etwas schneller zu schreiben als diese guten alten Fortran (oft) Arbeitspferde. Alle kritischen Funktionen verwenden in der Regel Vektoroperationen und sind in implementiert VON.
R missbraucht Rechenressourcen, insbesondere Arbeitsspeicher
Ja, die Entwickler erkennen eine solche Sünde. Doch die Arbeitszeit eines Spezialisten ist mittlerweile teurer als Hardware. Entladen Sie Spielzeug von einem modernen Arbeitscomputer und mit den meisten echten Datensätzen werden Sie keine Probleme mit R haben.
Freie Software kann nicht zuverlässig sein
Vielleicht: Fortran, Linux, C, Lisp, Java usw.
Anstelle eines Epilogs
Wie oben erwähnt, ist der folgende Beitrag eigentlich eine Übersetzung meiner Präsentation für eine ziemlich spezifische Zielgruppe, und ich werde diese Zielgruppe kurz beschreiben.

Viele „saubere“ IT-Unternehmen werden auf solche Leute treffen müssen, da die Lebensmittelindustrie seit langem mit Öl und anderen Energiequellen konkurriert, um Kapital zu beschaffen und Gewinne zu erzielen. Und die Kapazität des Bioinformatik-Marktes in Medizin und Pharmakologie ist begrenzt, wie man das auch sagen mag.

Mein Publikum sind also Menschen mit einer Grundausbildung in Genetik und Zucht, Veterinärmedizin, seltener Biologie (hauptsächlich Molekulare). Onkel und Tanten (von letzteren gibt es mehr), 20-30 Jahre alt ... Programmieren (!) Auf FORTRAN oder VB, die bekanntermaßen Excel-Tabellen mit 100.000 Zeilen / Spalten verwalten und ihre Aufgaben (und ihre Programmierung) regelmäßig mit ihrem Computer-Linux 500+ Core-Cluster mit 12 TB gemeinsamem Speicher „fallen lassen“ und von Zeit zu Zeit eine Erweiterung des Festplattenspeichers um weitere zehn Terabyte erfordern.

Die methodische Basis ist eine explosive Mischung aus antiken wie der Welt der Varianzanalysen mit gemischten Modellen, die auf keine andere Weise als durch die Maximum-Likelihood-Methode gelöst werden können, "brain-melting" Bayesian Networks usw.

Daten - Datentabellen von Einheiten bis zu Zehntausenden von Zeilen, manchmal mit 1-5 Spalten mit Phänotypen, aber häufiger - Zehn oder Hunderte von "Ka" -Spalten von Variablen, die schwach miteinander und mit Phänotypen korrelieren.

Nun, ja, sie haben auch eine „gute Tradition“, alles in Bezug auf familiäre Bindungen (immerhin Genetik) zu berücksichtigen. Verwandtschaftsbeziehungen werden traditionell in Form einer Matrix von „Verwandtschaftsbeziehungen“ (Stammbaum) mit Abmessungen von beispielsweise 40.000 x 40.000 (bei 40.000 Tieren) dargestellt. Nun, oder (bisher glücklicherweise nur im Projekt) 20.000.000 x 20.000.000 - das soll mit einem einzigen Modell alle 20 Millionen historischen Tiere, die in der Datenbank verfügbar sind, „abdecken“ ( DB2, falls es jemanden interessiert, und selbst Cobol wurde noch nicht überall "ausgeschnitten" ...)

Auf mit Literatur übersäten Tischen (gleichzeitig) Fortran, Java, C#, Scala, Octavia, Linux für Dummies Sie können aktuelle Absolventen der Bioinformatik erkennen. Aber irgendwie verlassen viele von ihnen die Wissenschaft schnell für "Codierer".

Allerdings kenne ich auch den Fall der umgekehrten Bewegung. Damit R viele weitere werden sich als nützlich erweisen.

Lassen Sie uns ein wenig über eine Programmiersprache namens R sprechen. Kürzlich konnten Sie in unseren Blogs Artikel über und lesen, jene Bereiche, in denen Sie nur eine leistungsfähige Sprache zur Hand haben müssen, um mit Statistiken und Grafiken zu arbeiten. Und R ist einer davon. Für einen Neuling in der Welt der Programmierung mag dies schwer zu glauben sein, aber R ist bereits heute beliebter als SQL und wird aktiv in kommerziellen Organisationen, Forschung und Universitäten eingesetzt.

Ohne in die Regeln, die Syntax und bestimmte Anwendungsbereiche einzutauchen, schauen wir uns einfach die wichtigsten Bücher und Ressourcen an, die Ihnen helfen werden, R von Grund auf neu zu lernen.

Was die R-Sprache ist, warum Sie sie brauchen und wie Sie sie sinnvoll einsetzen können, können Sie von dem wunderbaren Ruslan Kuptsov lernen, den er vor etwas weniger als einem Jahr im Rahmen der GeekWeek-2015 verbrachte.

Bücher

Jetzt, wenn eine gewisse Ordnung im Kopf ist, können Sie anfangen, Literatur zu lesen, da es mehr als genug ist. Beginnen wir mit einheimischen Autoren:


Internet-Ressourcen

Jeder, der eine Programmiersprache lernen möchte, sollte unbedingt zwei Ressourcen auf der Suche nach Wissen besuchen: die offizielle Website seiner Entwickler und die größte Online-Community. Brunnen. Machen wir keine Ausnahme für R:

Aber wieder von Sorge für diejenigen durchdrungen, die noch keine Zeit hatten, Englisch zu lernen, aber wirklich R lernen möchten, lassen Sie uns einige russische Ressourcen erwähnen:

Vervollständigen wir das Bild in der Zwischenzeit mit einer kleinen Liste englischsprachiger, aber nicht weniger informativer Seiten:

CRAN - in der Tat ein Ort, an dem Sie die R-Entwicklungsumgebung auf Ihren Computer herunterladen können, außerdem Handbücher, Beispiele und andere nützliche Lektüre;

Quick-R - kurz und übersichtlich über Statistik, Methoden ihrer Verarbeitung und die Sprache R;

Burns-Stat - über R und über seinen Vorgänger S mit einer Vielzahl von Beispielen;

R für Data Science – ein weiteres Buch von Garrett Grolemund, übersetzt in ein Online-Lehrbuchformat;

Awesome R – eine Auswahl des besten Codes von der offiziellen Website, gehostet auf unserem bevorzugten GitHub;

Mran - R-Sprache von Microsoft;

Tutorial R ist eine weitere organisierte Ressource von der offiziellen Website.



Ähnliche Beiträge