Was ist das R-Paket: Bedienungsanleitung. Die Programmiersprache R und ihr Platz unter den R-Sprachpaketen für Statistikprogramme

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

Ohne auf die Regeln, die Syntax und die spezifischen Verwendungszwecke einzugehen, schauen wir uns einfach die grundlegenden Bücher und Ressourcen an, die Ihnen dabei helfen, R von Grund auf zu erlernen.

Was ist die R-Sprache, warum braucht man sie und wie kann man sie sinnvoll einsetzen? Das können Sie vom wunderbaren Ruslan Kuptsov lernen, den er vor etwas weniger als einem Jahr im Rahmen von GeekWeek-2015 durchgeführt hat.

Bücher

Da nun eine gewisse Ordnung in Ihrem Kopf herrscht, können Sie mit der Lektüre von Literatur beginnen, zum Glück gibt es mehr als genug davon. Beginnen wir mit inländischen Autoren:


Internetressourcen

Wer eine Programmiersprache lernen möchte, muss auf der Suche nach Wissen zwei Quellen besuchen: die offizielle Website ihrer Entwickler und die größte Online-Community. Also. Machen wir für R keine Ausnahme:

Aber auch hier ist es voller Sorge um diejenigen, die es tun Englische Sprache Ich hatte noch keine Zeit, es zu lernen, aber ich möchte unbedingt R lernen. Lassen Sie uns ein paar russische Ressourcen erwähnen:

Lassen Sie uns das Bild in der Zwischenzeit mit einer kleinen Liste englischsprachiger, aber nicht weniger lehrreicher Websites vervollständigen:

CRAN ist eigentlich ein Ort, an dem Sie die R-Entwicklungsumgebung auf Ihren Computer herunterladen können. Außerdem finden Sie Handbücher, Beispiele und andere nützliche Lektüre.

Quick-R - kurz und klar über Statistiken, Methoden zu ihrer Verarbeitung und die R-Sprache;

Burns-Stat – über R und seinen Vorgänger S mit zahlreichen Beispielen;

„R for Data Science“ ist ein weiteres Buch von Garrett Grolemund, übersetzt in ein Online-Lehrbuchformat;

Tolle R-Zusammenstellung bester Code von der offiziellen Website, veröffentlicht auf unserem beliebten GitHub;

Mran – R-Sprache von Microsoft;

Tutorial R ist eine weitere Ressource mit organisierten Informationen von der offiziellen Website.

Jede R-Lösung, die in R Services (in einer Datenbank) ausgeführt wird, muss die in der Standard-R-Bibliothek installierten Pakete verwenden. Normalerweise stellen R-Lösungen eine Verknüpfung zu den Bibliotheken des Benutzers her, indem sie den Dateipfad im R-Code angeben. Dies wird jedoch für eine Produktionsumgebung nicht empfohlen.

Daher ist es die Aufgabe des DBA oder eines anderen Administrators auf dem Server, sicherzustellen, dass alle erforderlichen Pakete installiert sind SQL-Server Kopie. Wenn Sie über Administratorrechte auf dem Computer verfügen, der die SQL Server-Instanz hostet, können Sie administrative Informationen zur Installation von R-Paketen bereitstellen und Zugriff auf ein sicheres Paket-Repository gewähren, in dem Sie die Pakete erhalten können, die Ihre Benutzer benötigen. Dieser Abschnitt enthält solche Informationen.

Bei der Installation von R Services (in einer Datenbank) ist der Standardwert R Basic Pakete wie Stats und Utils werden zusammen mit installiert RevoScaleR Paket, das Verbindungen zu SQL Server unterstützt.

Wenn Sie ein zusätzliches Paket von CRAN oder einem anderen Repository benötigen, müssen Sie das Paket herunterladen und auf Ihrer Workstation installieren.

Wenn Sie laufen müssen neues Paket In einem Serverkontext muss der Administrator es auf dem Server installieren.

Es gibt mehrere Quellen für R-Pakete, die bekanntesten sind CRAN und Bioconductor. Auf der offiziellen Website der R-Sprache (https://www.r-project.org/) sind viele dieser Ressourcen aufgeführt. Darüber hinaus sind viele Pakete auf GitHub veröffentlicht, wo Sie sie erhalten können Quellcode. Möglicherweise werden Ihnen jedoch auch selbst entwickelte R-Pakete zur Verfügung gestellt.

Unabhängig von der Quelle müssen Installationspakete als ZIP-Archiv bereitgestellt werden. Wenn Sie das Paket von R Services (in der Datenbank) verwenden möchten, stellen Sie außerdem sicher, dass Sie die ZIP-Datei in der Binärdatei erhalten Windows-Format. (Einige Pakete unterstützen dieses Format möglicherweise nicht.) Weitere Informationen Informationen zum Inhalt des ZIP-Dateiformats und zur Erstellung eines R-Pakets finden Sie in diesem Tutorial, das Sie hier herunterladen können PDF-Format aus dem R-Projektknoten: Friedrich Leisch: R-Pakete erstellen.

Normalerweise können R-Pakete problemlos installiert werden Befehlszeile ohne sie vorher herunterzuladen, wenn der Computer Zugang zum Internet hat. Dies ist bei Servern, die SQL Server verwenden, normalerweise nicht der Fall. So installieren Sie das R-Paket auf einem laufenden Computer Nicht Wenn Sie Zugang zum Internet haben, müssen Sie das Paket vorab im richtigen ZIP-Format herunterladen und die ZIP-Dateien in einen Ordner kopieren, auf den Sie auf Ihrem Computer zugreifen können.

In den folgenden Abschnitten werden zwei Möglichkeiten zur Installation von Paketen beschrieben Offline-Modus:

    Beschreibt die Verwendung des R-Pakets miniCRAN um Offline-Speicher zu erstellen. Das ist wahrscheinlich das Meiste effektive Methode, wenn Sie Pakete auf mehreren Servern installieren und den Speicher von einem Ort aus verwalten müssen.

    Bietet Anweisungen für die Offlineinstallation von Paketen durch manuelles Kopieren der ZIP-Dateien.

Um ein neues R-Paket auf einem Computer mit SQL Server 2016 zu installieren, müssen Sie über Administratorrechte auf diesem Computer verfügen.

Wenn Sie nicht über diese Rechte verfügen, wenden Sie sich an Ihren Administrator und geben Sie Informationen zu dem Paket an, das Sie benötigen.

Wenn Sie ein neues R-Paket auf einem Computer installieren, der eine R-Workstation verwendet und ausgeführt wird Nicht Wenn das Paket auf der Instanz von SQL Server installiert ist, benötigen Sie noch Administratorrechte auf dem Computer, um das Paket zu installieren. Sobald das Paket installiert ist, können Sie es lokal ausführen.

Standardspeicherort der R-Bibliothek für R-Dienste

Wenn Sie R Services (in der Datenbank) der Standardinstanz installiert haben, befinden sich die von der Instanz verwendeten R-Paketbibliotheken im SQL Server-Instanzordner. Zum Beispiel:

  • Standardinstanz MSSQLSERVER C:\Programme\Microsoft SQL Server\MSSQL13.MSSQLSERVER\R_SERVICES\library
  • Benannte Instanz MyNamedInstance C:\Programme\Microsoft SQL Server\MSSQL13.MyNamedInstance\R_SERVICES\library

Machbar die folgenden Anweisungen um die Standardbibliotheken für die aktuelle R-Instanz zu überprüfen.

EXECUTE sp_execute_external_script @lingual = N "R" , @script = N „OutputDataSet<- data.frame(.libPaths());" WITH RESULT SETS (( VARCHAR (MAX ) NOT NULL )); GEHEN

Weitere Informationen finden Sie unter .

SQL Server vNext bietet neue Funktionen zum Installieren und Verwalten von R-Paketen, die dem DBA mehr Freiheit bei der Manipulation von Daten und der Kontrolle über die Verwendung des Pakets und des Installationsprogramms geben. Weitere Informationen finden Sie unter .

Bei Verwendung von SQL Server 2106 R-Diensten sind die neuen Management Pack-Funktionen derzeit nicht verfügbar. Während Sie diese Optionen haben, um zu bestimmen, welche Pakete auf Ihrem SQL Server-Computer installiert sind, verwenden Sie eine der folgenden Optionen:

  • Zeigen Sie die Bibliothek standardmäßig an, wenn Sie Berechtigungen für den Ordner haben.
  • Führen Sie einen Befehl über den R-Befehl aus, um Pakete am Speicherort der R_SERVICES-Bibliothek aufzulisten
  • Verwenden Sie in der Instanz eine gespeicherte Prozedur wie unten gezeigt:

    EXECUTE sp_execute_external_script @lingual =N "R" ,@script = N "str(OutputDataSet); packagematrix<- installed.packages(); NameOnly <- packagematrix[,1]; OutputDataSet <- as.data.frame(NameOnly);" ,@input_data_1 = N „SELECT 1 as col“ WITH RESULT SETS ((PackageName nvarchar (250 )))

Das folgende Thema hat mich dazu veranlasst, diesen Artikel zu schreiben: Auf der Suche nach dem idealen Beitrag oder dem Rätsel von Habr. Tatsache ist, dass ich, nachdem ich mich mit der Sprache R vertraut gemacht habe, allen Versuchen, etwas in Excel zu berechnen, äußerst skeptisch gegenüberstehe. Allerdings muss ich zugeben, dass ich R erst vor einer Woche kennengelernt habe.

Ziel: Daten von Ihrem Lieblings-HabraHabr mithilfe der R-Sprache sammeln und tatsächlich das ausführen, wofür die R-Sprache erstellt wurde, nämlich: statistische Analyse.

Nachdem Sie dieses Thema gelesen haben, werden Sie Folgendes lernen:

  • Wie Sie mit R Daten aus Webressourcen extrahieren können
  • So transformieren Sie Daten für eine spätere Analyse
  • Welche Ressourcen sind für jeden, der R besser kennenlernen möchte, dringend zu lesen?

Vom Leser wird erwartet, dass er unabhängig genug ist, um sich mit den Grundkonstruktionen der Sprache vertraut zu machen. Hierfür eignen sich am besten die Links am Ende des Artikels.

Vorbereitung

Wir benötigen folgende Ressourcen:

Nach der Installation sollten Sie etwa Folgendes sehen:

Im unteren rechten Bereich finden Sie auf der Registerkarte „Pakete“ eine Liste der installierten Pakete. Wir müssen zusätzlich Folgendes installieren:

  • Rcurl – für die Arbeit mit dem Netzwerk. Jeder, der mit CURL gearbeitet hat, wird sofort alle Möglichkeiten verstehen, die sich ihm eröffnen.
  • XML – ein Paket zum Arbeiten mit dem DOM-Baum eines XML-Dokuments. Wir benötigen Funktionen zum Suchen von Elementen per XPath
Klicken Sie auf „Pakete installieren“, wählen Sie die benötigten aus und markieren Sie sie dann mit einem Häkchen, damit sie in die aktuelle Umgebung geladen werden.

Daten abrufen

Um das DOM-Objekt eines aus dem Internet empfangenen Dokuments abzurufen, befolgen Sie einfach diese Zeilen:
URL<-"http://habrahabr.ru/feed/posts/habred/page10/" cookie<-"Мои сверхсекретные печеньки" html<-getURL(url, cookie=cookie) doc<-htmlParse(html)
Bitte achten Sie auf die gesendeten Cookies. Wenn Sie das Experiment wiederholen möchten, müssen Sie Ihre Cookies ersetzen, die Ihr Browser nach der Anmeldung auf der Website empfängt. Als nächstes müssen wir die Daten erhalten, die uns interessieren, nämlich:
  • Als der Beitrag veröffentlicht wurde
  • Wie viele Aufrufe gab es?
  • Wie viele Personen haben diesen Eintrag zu ihren Favoriten hinzugefügt?
  • Wie viele Klicks auf +1 und -1 gab es (insgesamt)
  • Wie viele +1-Klicks gab es?
  • Wie viel -1
  • Aktuelle Bewertung
  • Anzahl der Kommentare
Ohne zu sehr ins Detail zu gehen, gebe ich Ihnen einfach den Code:
veröffentlicht<-xpathSApply(doc, "//div[@class="published"]", xmlValue) pageviews<-xpathSApply(doc, "//div[@class="pageviews"]", xmlValue) favs<-xpathSApply(doc, "//div[@class="favs_count"]", xmlValue) scoredetailes<-xpathSApply(doc, "//span[@class="score"]", xmlGetAttr, "title") scores<-xpathSApply(doc, "//span[@class="score"]", xmlValue) comments<-xpathSApply(doc, "//span[@class="all"]", xmlValue) hrefs<-xpathSApply(doc, "//a[@class="post_title"]", xmlGetAttr, "href")
Hier haben wir die XPath-Suche nach Elementen und Attributen verwendet.
Als nächstes wird dringend empfohlen, aus den empfangenen Daten einen data.frame zu erstellen – dies ist ein Analogon zu Datenbanktabellen. Es wird möglich sein, Anfragen unterschiedlicher Komplexität zu stellen. Manchmal ist man erstaunt, wie elegant man dieses oder jenes in R machen kann.
Beiträge<-data.frame(hrefs, published, scoredetailes, scores, pageviews, favs, comments)
Nach der Generierung des data.frame müssen Sie die empfangenen Daten korrigieren: Konvertieren Sie die Zeilen in Zahlen, erhalten Sie das tatsächliche Datum in einem normalen Format usw. Wir machen es so:

Beiträge$Kommentare<-as.numeric(as.character(posts$comments)) posts$scores<-as.numeric(as.character(posts$scores)) posts$favs<-as.numeric(as.character(posts$favs)) posts$pageviews<-as.numeric(as.character(posts$pageviews)) posts$published<-sub(" декабря в ","/12/2012 ",as.character(posts$published)) posts$published<-sub(" ноября в ","/11/2012 ",posts$published) posts$published<-sub(" октября в ","/10/2012 ",posts$published) posts$published<-sub(" сентября в ","/09/2012 ",posts$published) posts$published<-sub("^ ","",posts$published) posts$publishedDate<-as.Date(posts$published, format="%d/%m/%Y %H:%M")

Es ist auch sinnvoll, zusätzliche Felder hinzuzufügen, die aus den bereits empfangenen berechnet werden:
Punkte aufgeteilt<-sapply(strsplit(as.character(posts$scoredetailes), "\\D+", perl=TRUE),unlist) if(class(scoressplitted)=="matrix" && dim(scoressplitted)==4) { scoressplitted<-t(scoressplitted) posts$actions<-as.numeric(as.character(scoressplitted[,1])) posts$plusactions<-as.numeric(as.character(scoressplitted[,2])) posts$minusactions<-as.numeric(as.character(scoressplitted[,3])) } posts$weekDay<-format(posts$publishedDate, "%A")
Hier haben wir die bekannten Nachrichten der Form „Gesamt 35: 29 und ↓6“ in eine Reihe von Daten darüber umgewandelt, wie viele Aktionen ausgeführt wurden, wie viele Pluspunkte es gab und wie viele Minuspunkte es gab.

An diesem Punkt können wir sagen, dass alle Daten empfangen und in ein für die Analyse bereites Format konvertiert wurden. Ich habe den obigen Code als gebrauchsfertige Funktion formatiert. Am Ende des Artikels finden Sie einen Link zur Quelle.

Aber der aufmerksame Leser hat bereits bemerkt, dass wir auf diese Weise nur Daten für eine Seite erhalten haben, um sie für eine ganze Serie zu erhalten. Um Daten für eine ganze Seitenliste zu erhalten, wurde die folgende Funktion geschrieben:

GetPostsForPages<-function(pages, cookie, sleep=0) { urls<-paste("http://habrahabr.ru/feed/posts/habred/page", pages, "/", sep="") ret<-data.frame() for(url in urls) { ret<-rbind(ret, getPosts(url, cookie)) Sys.sleep(sleep) } return(ret) }
Hier verwenden wir die Systemfunktion Sys.sleep, um nicht versehentlich einen Habra-Effekt auf den Habr selbst auszulösen :)
Es wird vorgeschlagen, diese Funktion wie folgt zu verwenden:
Beiträge<-getPostsForPages(10:100, cookie,5)
Daher laden wir alle Seiten von 10 bis 100 mit einer Pause von 5 Sekunden herunter. Seiten bis 10 interessieren uns nicht, da die Bewertungen dort noch nicht sichtbar sind. Nach ein paar Minuten Wartezeit befinden sich alle unsere Daten in der Variablen „posts“. Ich empfehle, sie sofort zu speichern, um den Hub nicht jedes Mal zu stören! Das geht so:
write.csv(posts, file="posts.csv")
Und wir lesen es wie folgt:
Beiträge<-read.csv("posts.csv")

Hurra! Wir haben gelernt, wie man statistische Daten von Habr empfängt und sie für die nächste Analyse lokal speichert!

Datenanalyse

Ich werde diesen Abschnitt unausgesprochen lassen. Ich lade den Leser ein, selbst mit den Daten zu spielen und seine eigenen dauerhaften Schlussfolgerungen zu ziehen. Versuchen Sie beispielsweise, die Abhängigkeit der Stimmung von Plus- und Minus-Menschen je nach Wochentag zu analysieren. Ich werde nur zwei interessante Schlussfolgerungen nennen, die ich gezogen habe.
Habr-Benutzer sind viel eher bereit, positiv zu stimmen als negativ zu stimmen.
Dies ist aus der folgenden Grafik ersichtlich. Beachten Sie, wie viel gleichmäßiger und breiter die „Wolke“ der Minuspunkte ist als die Verteilung der Pluspunkte. Der Zusammenhang zwischen den Vorteilen und der Anzahl der Aufrufe ist viel stärker als bei den Nachteilen. Mit anderen Worten: Wir addieren, ohne nachzudenken, aber wir minus, um zu handeln!
(Ich entschuldige mich für die Beschriftungen auf den Grafiken: Ich habe noch nicht herausgefunden, wie man sie auf Russisch richtig anzeigt)

Es gibt tatsächlich mehrere Klassen von Beiträgen
Diese Aussage wurde im erwähnten Beitrag als gegeben vorausgesetzt, ich wollte mich aber davon überzeugen, dass es tatsächlich so ist. Dazu genügt es, den durchschnittlichen Anteil der Pluspunkte an der Gesamtzahl der Aktionen zu berechnen, das Gleiche gilt für die Minuspunkte, und den zweiten durch den ersten zu dividieren. Wenn alles homogen wäre, würden wir im Histogramm nicht viele lokale Spitzen beobachten, aber sie sind da.


Wie Sie sehen können, gibt es ausgeprägte Spitzen um 0,1, 0,2 und 0,25. Ich lade den Leser ein, diese Klassen selbst zu finden und zu „benennen“.
Ich möchte darauf hinweisen, dass R reich an Algorithmen für Datenclustering, Approximation, Hypothesentests usw. ist.

Nützliche Ressourcen

Wenn Sie wirklich in die Welt von R eintauchen möchten, empfehle ich die folgenden Links. Bitte teilen Sie Ihre interessanten Blogs und Websites zum Thema R in den Kommentaren. Gibt es jemanden, der auf Russisch über R schreibt?

Sie müssen dies im Terminal eingeben.

Das Schöne an R ist Folgendes:

  1. Dieses Programm ist kostenlos (wird unter der GPL-Lizenz vertrieben).
  2. Für dieses Programm wurden viele Pakete geschrieben, um eine Vielzahl von Problemen zu lösen. Alle davon sind auch kostenlos.
  3. Das Programm ist sehr flexibel: Die Größe beliebiger Vektoren und Matrizen kann auf Wunsch des Benutzers geändert werden, die Daten haben keine starre Struktur. Diese Eigenschaft erweist sich im Falle von Prognosen als äußerst nützlich, wenn der Forscher eine Prognose für einen beliebigen Zeitraum abgeben muss.

Die letztere Eigenschaft ist besonders relevant, da andere Statistikpakete (wie SPSS, Eviews, Stata) davon ausgehen, dass wir möglicherweise nur an der Analyse von Daten interessiert sind, die eine feste Struktur haben (z. B. müssen alle Daten in einer Arbeitsdatei dieselbe Periodizität aufweisen). mit gleichem Start- und Enddatum).

Allerdings ist R nicht das benutzerfreundlichste Programm. Vergessen Sie beim Arbeiten damit die Maus – fast alle wichtigen Aktionen werden über die Befehlszeile ausgeführt. Um das Leben jedoch etwas einfacher und das Programm selbst etwas einladender zu machen, gibt es ein Frontend-Programm namens RStudio. Sie können es hier herunterladen. Es wird installiert, nachdem R selbst bereits installiert wurde. RStudio verfügt über viele praktische Tools und eine schöne Benutzeroberfläche. Analysen und Prognosen werden jedoch weiterhin über die Befehlszeile durchgeführt.

Versuchen wir, einen Blick auf dieses wunderbare Programm zu werfen.

Lernen Sie RStudio kennen

Die RStudio-Schnittstelle sieht folgendermaßen aus:

In der oberen rechten Ecke in RStudio wird der Name des Projekts angezeigt (der bei uns vorerst „Keine“ ist, also fehlt). Wenn wir auf diese Aufschrift klicken und „Neues Projekt“ auswählen, werden wir aufgefordert, ein Projekt zu erstellen. Für grundlegende Prognosezwecke wählen Sie einfach „Neues Verzeichnis“ (einen neuen Ordner für das Projekt) und „Empty Project“ (ein leeres Projekt) aus, geben dann den Namen des Projekts ein und wählen das Verzeichnis aus, in dem es gespeichert werden soll. Lassen Sie Ihrer Fantasie freien Lauf und versuchen Sie, selbst einen Namen zu finden :).

Wenn Sie mit einem Projekt arbeiten, können Sie jederzeit auf die darin gespeicherten Daten, Befehle und Skripte zugreifen.

Auf der linken Seite des RStudio-Fensters befindet sich die Konsole. Hier werden wir verschiedene Befehle eingeben. Schreiben wir zum Beispiel Folgendes:

X< - rnorm (100 , 0 , 1 )

Dieser Befehl generiert 100 Zufallsvariablen aus einer Normalverteilung mit Nullerwartung und Einheitsvarianz, erstellt dann einen Vektor namens „x“ und schreibt die resultierenden 100 Werte hinein. Symbol „<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->“, obwohl unsere Variable in diesem Fall rechts sein sollte. Der folgende Code erstellt beispielsweise ein Objekt „y“, das absolut identisch mit dem Objekt „x“ ist:

x -> y

Diese Vektoren erscheinen nun im oberen rechten Teil des Bildschirms, unter der Registerkarte, die ich mit „Umgebung“ betitelt habe:

Änderungen im Reiter „Umgebung“.

In diesem Teil des Bildschirms werden alle Objekte angezeigt, die wir während der Sitzung speichern. Wenn wir zum Beispiel eine Matrix wie diese erstellen:

\(A = \begin(pmatrix) 1 & 1 \\ 0 & 1 \end(pmatrix) \)

mit diesem Befehl:

A< - matrix (c (1 , 0 , 1 , 1 ) , 2 , 2 )

dann erscheint es im Reiter „Umgebung“:

Jede Funktion, die wir verwenden, erfordert, dass wir bestimmten Parametern einige Werte zuweisen. In Funktion Matrix() Es gibt folgende Parameter:

  • Daten – Vektor mit Daten, die in die Matrix geschrieben werden sollen,
  • nrow – Anzahl der Zeilen in der Matrix,
  • ncol – Anzahl der Spalten in der Matrix,
  • byrow – logischer Parameter. Wenn „TRUE“ (wahr), dann wird die Matrix zeilenweise gefüllt (von links nach rechts, Zeile für Zeile). Standardmäßig ist dieser Parameter auf FALSE gesetzt.
  • dimnames – ein Blatt mit Zeilen- und Spaltennamen.

Einige dieser Parameter haben Standardwerte (z. B. byrow = FALSCH), während andere weggelassen werden können (z. B. Dimmnamen).

Einer der Tricks von „R“ besteht darin, dass es auf jede Funktion (z. B. auf unsere) angewendet werden kann Matrix()) kann durch direktes Setzen der Werte angesprochen werden:

Eine weitere Möglichkeit besteht darin, im Reiter „Umgebung“ auf den Objektnamen zu klicken.

Matrix

wobei Matrix der Name der Funktion ist, an der wir interessiert sind. In diesem Fall öffnet RStudio speziell für Sie das „Hilfe“-Panel mit einer Beschreibung:

Sie können Hilfe zu einer Funktion auch finden, indem Sie den Namen der Funktion in das Suchfenster (Symbol mit einer Linse) auf der Registerkarte „Hilfe“ eingeben.

Wenn Sie nicht genau wissen, wie der Name einer Funktion geschrieben wird oder welche Parameter darin verwendet werden, beginnen Sie einfach mit dem Schreiben des Namens in der Konsole und drücken Sie die „Tab“-Taste:

Darüber hinaus können Sie in RStudio Skripte schreiben. Sie benötigen sie möglicherweise, wenn Sie ein Programm schreiben oder eine Funktionsfolge aufrufen müssen. Skripte werden über die Schaltfläche mit einem Pluszeichen in der oberen linken Ecke erstellt (Sie müssen im Dropdown-Menü „R-Skript“ auswählen). Im sich anschließend öffnenden Fenster können Sie beliebige Funktionen und Kommentare verfassen. Wenn wir beispielsweise ein Liniendiagramm über der Reihe x zeichnen möchten, können wir das folgendermaßen tun:

Handlung(x)

Linien(x)

Die erste Funktion erstellt ein einfaches Streudiagramm und die zweite Funktion fügt Linien über den Punkten hinzu, die die Punkte in Reihe verbinden. Wenn Sie diese beiden Befehle auswählen und „Strg+Enter“ drücken, werden sie ausgeführt, wodurch RStudio die Registerkarte „Plot“ in der unteren rechten Ecke öffnet und darin den geplotteten Plot anzeigt.

Wenn wir in Zukunft noch alle eingegebenen Befehle benötigen, kann dieses Skript gespeichert werden (Diskette in der oberen linken Ecke).

Falls Sie auf einen Befehl zurückgreifen müssen, den Sie bereits in der Vergangenheit eingegeben haben, gibt es oben rechts auf dem Bildschirm die Registerkarte „Verlauf“. Darin können Sie jeden gewünschten Befehl finden und auswählen und ihn per Doppelklick in die Konsole einfügen. In der Konsole selbst können Sie über die Auf- und Ab-Tasten auf Ihrer Tastatur auf frühere Befehle zugreifen. Mit der Tastenkombination „Strg+Up“ können Sie eine Liste aller letzten Befehle in der Konsole anzeigen.

Generell verfügt RStudio über viele nützliche Tastaturkürzel, die die Arbeit mit dem Programm deutlich erleichtern. Sie können mehr darüber lesen.

Wie ich bereits erwähnt habe, gibt es viele Pakete für R. Sie befinden sich alle auf dem CRAN-Server und um sie zu installieren, müssen Sie ihren Namen kennen. Die Installation und Aktualisierung von Paketen erfolgt über die Registerkarte „Pakete“. Wenn wir dorthin gehen und auf die Schaltfläche „Installieren“ klicken, sehen wir etwa das folgende Menü:

Geben wir in das sich öffnende Fenster Folgendes ein: Vorhersage ist ein von Rob J. Hyndman geschriebenes Paket, das eine Reihe nützlicher Funktionen für uns enthält. Klicken Sie auf die Schaltfläche „Installieren“. Anschließend wird das Paket „Forecast“ installiert.

Alternativ können wir jedes Paket unter Kenntnis seines Namens installieren, indem wir den Befehl in der Konsole verwenden:

installieren. Pakete("smooth")

vorausgesetzt natürlich, dass es sich im CRAN-Repository befindet. glatt ist ein Paket, in dem ich Funktionen entwickle und pflege.

Einige Pakete sind nur im Quellcode auf Websites wie github.com verfügbar und müssen zuerst erstellt werden. Um Pakete unter Windows zu erstellen, benötigen Sie möglicherweise das Programm Rtools.

Um eines der installierten Pakete verwenden zu können, müssen Sie es aktivieren. Dazu müssen Sie es in der Liste finden und ankreuzen oder den Befehl in der Konsole verwenden:

Bibliothek (Vorhersage)

Unter Windows kann ein unangenehmes Problem auftreten: Einige Pakete lassen sich leicht herunterladen und zusammenstellen, werden jedoch in keiner Weise installiert. R schreibt in diesem Fall etwa: „Warnung: Temporäre Installation kann nicht verschoben werden ...“. In diesem Fall müssen Sie lediglich den Ordner mit R zu den Ausnahmen in Ihrem Antivirenprogramm hinzufügen (oder ihn während der Paketinstallation deaktivieren).

Nach dem Download des Pakets stehen uns alle darin enthaltenen Funktionen zur Verfügung. Zum Beispiel die Funktion tsdisplay(), die wie folgt verwendet werden kann:

tsdisplay(x)

Sie wird uns drei Diagramme erstellen, die wir im Kapitel „Forecaster Toolkit“ besprechen werden.

Außer dem Paket Vorhersage Ich verwende das Paket ziemlich oft für verschiedene Beispiele Mcomp. Es enthält Datenreihen aus der M-Competition-Datenbank. Daher empfehle ich Ihnen, es auch zu installieren.

Sehr oft benötigen wir nicht nur Datensätze, sondern auch Daten der Klasse „ts“ (Zeitreihen). Um eine Zeitreihe aus einer beliebigen Variablen zu erstellen, müssen Sie den folgenden Befehl ausführen:

X< - ts (x , start = c (1984 , 1 ) , frequency = 12 )

Hier ist der Parameter Start ermöglicht es uns, das Datum anzugeben, ab dem unsere Zeitreihe beginnt, und Frequenz Stellen Sie die Datenfrequenz ein. Die Zahl 12 in unserem Beispiel zeigt an, dass es sich um monatliche Daten handelt. Als Ergebnis der Ausführung dieses Befehls transformieren wir unseren Vektor „x“ in eine Zeitreihe monatlicher Daten ab Januar 1984.

Ich möchte über die Verwendung der kostenlosen statistischen Analyseumgebung R sprechen. Ich betrachte sie als Alternative zu Statistikpaketen wie SPSS Statistics. Zu meinem großen Bedauern ist es in der Weite unseres Mutterlandes völlig unbekannt, aber vergebens. Ich glaube, dass die Fähigkeit, zusätzliche statistische Analyseverfahren in S zu schreiben, R zu einem nützlichen Datenanalysetool macht.

Im Frühjahrssemester 2010 hatte ich die Gelegenheit, im Kurs „Statistische Datenanalyse“ Vorlesungen zu halten und praktische Übungen für Studierende der Abteilung für Intelligente Systeme der Russischen Staatlichen Universität für Geisteswissenschaften durchzuführen.

Zuvor belegten meine Studenten einen Semesterkurs in Wahrscheinlichkeitstheorie, in dem es um die Grundlagen diskreter Wahrscheinlichkeitsräume, bedingte Wahrscheinlichkeiten, den Satz von Bayes, das Gesetz der großen Zahlen, einige Hintergrundinformationen zum Normalgesetz und den zentralen Grenzwertsatz ging.

Vor etwa fünf Jahren habe ich bereits Vorlesungen im (damals kombinierten) Semesterkurs „Grundlagen der Wahrscheinlichkeitstheorie und Mathematische Statistik“ gehalten und daher meine Notizen (die den Studierenden vor jeder Vorlesung ausgehändigt wurden) zum Thema Statistik erweitert. Da die Russische Staatliche Universität für Geisteswissenschaften nun über einen Studentenserver der Abteilung isdwiki.rsuh.ru verfügt, lade ich diese gleichzeitig auf FTP hoch.

Es stellte sich die Frage: Mit welchem ​​Programm soll ich praktische Übungen in einem Computerkurs durchführen? Das häufig verwendete Microsoft Excel wurde abgelehnt, weil es proprietär war und einige statistische Verfahren falsch implementierte. Darüber können Sie beispielsweise im Buch „Statistische Analyse von Daten auf einem Computer“ von A.A. Makarov und Yu.N. nachlesen. Die Calc-Tabellen aus der kostenlosen Office-Suite Openoffice.org wurden russifiziert, so dass ich die benötigte Funktion kaum noch finden kann (ihre Namen wurden zudem ekelhaft abgekürzt).

Das am häufigsten verwendete Paket ist SPSS Statistics. SPSS wurde inzwischen von IBM übernommen. Zu den Vorteilen von IBM SPSS Statistics möchte ich Folgendes hervorheben:

  • Bequemes Laden von Daten in verschiedenen Formaten (Excel, SAS, über OLE DB, über ODBC Direct Driver);
  • Verfügbarkeit sowohl einer Befehlssprache als auch eines umfangreichen Menüsystems für den direkten Zugriff auf verschiedene statistische Analyseverfahren;
  • Grafische Mittel zur Anzeige von Ergebnissen;
  • Integriertes Statistik-Coach-Modul, das interaktiv eine geeignete Analysemethode vorschlägt.
Die Nachteile von IBM SPSS Statistics sind meiner Meinung nach:
  • Bezahlung auch für Studenten;
  • Die Notwendigkeit, (zusätzlich kostenpflichtige) Module zu erwerben, die spezielle Verfahren enthalten;
  • Unterstützt nur 32-Bit-Linux-Betriebssysteme, obwohl Windows sowohl 32-Bit als auch 64-Bit unterstützt.
Als Alternative habe ich mich für die entschieden. Die Entwicklung dieses Systems begann 1995 durch die Bemühungen von Robert Gentleman und Ross Ihak am Department of Statistics der University of Melbourne. Die Anfangsbuchstaben der Autorennamen bestimmten den Titel. Anschließend beteiligten sich führende Statistiker an der Entwicklung und Erweiterung dieses Systems.

Ich betrachte die Vorteile des diskutierten Systems:

  • Verbreitung des Programms unter der GNU Public License;
  • Verfügbarkeit von Quellcode und Binärmodulen im umfangreichen CRAN-Repository-Netzwerk (The Comprehensive R Archive Network). Für Russland ist dies der Server cran.gis-lab.info;
  • Verfügbarkeit eines Installationspakets für Windows (funktioniert sowohl auf 32- als auch auf 64-Bit-Vista). Zufällig stellte sich heraus, dass für die Installation unter Windows XP keine Administratorrechte erforderlich sind;
  • Möglichkeit zur Installation aus einem Repository unter Linux (funktioniert bei mir auf der 64-Bit-Version von Ubuntu 9.10);
  • Verfügbarkeit unserer eigenen Programmiersprache für statistische Verfahren R, die tatsächlich zum Standard geworden ist. Es wird beispielsweise vom neuen IBM SPSS Statistics Developer vollständig unterstützt;
  • Diese Sprache ist eine Erweiterung der bei Bell Labs entwickelten S-Sprache, die derzeit die Grundlage des kommerziellen S-PLUS-Systems bildet. Die meisten für S-PLUS geschriebenen Programme können problemlos in der R-Umgebung ausgeführt werden;
  • Möglichkeit zum Datenaustausch mit Tabellenkalkulationen;
  • Möglichkeit, den gesamten Berechnungsverlauf zu Dokumentationszwecken zu speichern.
Für die erste Lektion wurden CDs vorbereitet, auf denen Installationsdateien, Dokumentationen und Handbücher aufgezeichnet waren. Ich werde Ihnen mehr über Letzteres erzählen. CRAN bietet detaillierte Benutzerhandbücher zur Installation, zur R-Sprache (und ihrer Teilmenge S), zum Schreiben zusätzlicher statistischer Verfahren sowie zum Exportieren und Importieren von Daten. Der Abschnitt „Beigetragene Dokumentation“ enthält eine große Anzahl von Veröffentlichungen von Statistiklehrern, die dieses Paket im Bildungsprozess verwenden. Leider gibt es nichts auf Russisch, obwohl es zum Beispiel sogar eines auf Polnisch gibt. Unter den englischsprachigen Büchern möchte ich „Using R for introductory Statistics“ von Professor John Verzani von der City University of New York und „Introduction to the R project for Statistical Computing“ von Professor Rossiter (Holland) von der International erwähnen Institut für Geoinformatik und Erdbeobachtung.

Die erste Lektion war der Installation und dem Erlernen der Verwendung des Pakets gewidmet, als Testaufgabe diente die Einarbeitung in die Syntax der R-Sprache. Hier ist ein Beispiel für die Berechnung der Wahrscheinlichkeit von r.v. Nehmen Sie bei Exponentialverteilung mit Parameter 3 einen Wert kleiner als 0,5 an (10000 ist die Anzahl der Versuche).
> x=runif(10000,0,0,5)
> y=runif(10000,0,3)
>t=y<3*exp(-3*x)
> u=x[t]
>v=y[t]
> plot(u,v)
> i=0,5*3*Länge(u)/10000

Die ersten beiden Zeilen geben eine gleichmäßige Verteilung der Punkte im Rechteck x an, dann werden diejenigen Punkte ausgewählt, die unter den exponentiellen Dichtegraphen 3*exp(-3*x) fallen, die Plotfunktion zeigt die Punkte im grafischen Ausgabefenster an und Abschließend wird das erforderliche Integral berechnet.
Die zweite Lektion war der Berechnung deskriptiver Statistiken (Quantile, Median, Mittelwert, Varianz, Korrelation und Kovarianz) und der Erstellung von Diagrammen (Histogramme, Box-and-Whisker) gewidmet.
In nachfolgenden Klassen wurde die Rcmdr-Bibliothek verwendet. Es handelt sich um eine grafische Benutzeroberfläche (GUI) für die R-Umgebung. Die Bibliothek wurde durch die Bemühungen von Professor John Fox von der McMaster University in Kanada erstellt.

Die Installation dieser Bibliothek erfolgt durch Ausführen des Befehls install.packages("Rcmdr", dependencies=TRUE) innerhalb der R-Umgebung. Wenn die Umgebung selbst ein R-Sprachinterpreter ist, ist das Add-on "Rcmdr" ein zusätzliches Fenster Ausgestattet mit einem Menüsystem, das eine große Anzahl von Befehlen enthält, die standardmäßigen statistischen Verfahren entsprechen. Dies ist besonders praktisch für Kurse, bei denen es vor allem darum geht, dem Studenten das Drücken von Tasten beizubringen (zu meinem Bedauern werden diese mittlerweile immer häufiger verwendet).

Die Seminarunterlagen aus meinem vorherigen Kurs wurden erweitert. Sie sind auch per FTP auf der Website isdwiki.rsuh.ru verfügbar. Diese Notizen enthielten Tabellen mit kritischen Werten, die für Berechnungen an der Tafel verwendet wurden. In diesem Jahr wurden die Schüler ermutigt, diese Aufgaben am Computer zu lösen und die Tabellen auch anhand der (normalen) Näherungswerte zu überprüfen, die ebenfalls in den Notizen enthalten sind.

Es gab auch einige Fehler von mir. Ich habe zum Beispiel zu spät gemerkt, dass man mit Rcmdr Daten aus heruntergeladenen Paketen importieren kann, sodass relativ große Stichproben nur in Klassen zur Regressionsanalyse verarbeitet wurden. Bei der Präsentation nichtparametrischer Tests gaben die Studierenden die Daten anhand meiner Notizen manuell ein. Ein weiterer Nachteil war, wie ich jetzt weiß, die unzureichende Anzahl an Hausaufgaben, um ziemlich komplexe Programme in der R-Sprache zu schreiben.

Es sei darauf hingewiesen, dass mehrere ältere Studenten meine Kurse besuchten und einige Materialien aus Vorlesungen und Seminaren herunterluden. Studierende der Abteilung für Intelligente Systeme der Russischen Staatlichen Universität für Geisteswissenschaften erhalten eine grundlegende Ausbildung in Mathematik und Programmierung, daher erscheint mir die Verwendung der R-Umgebung (anstelle von Tabellenkalkulationen und Statistikpaketen mit festen statistischen Verfahren) sehr nützlich.

Wenn Sie vor der Aufgabe stehen, Statistiken zu studieren und insbesondere nicht standardmäßige Verfahren zur statistischen Datenverarbeitung zu schreiben, empfehle ich Ihnen, Ihre Aufmerksamkeit auf das R-Paket zu richten.