Installation von R und RStudio
Bearbeiten Sie diesen Part nur, wenn Sie bei Fabian Sander in Tools für Data-Science R und Rstudio noch nicht installiert haben.
Wenn Sie R respektive RStudio zuerst noch installieren müssen, dann haben Sie wahrscheinlich auch noch keine Erfahrung mit der Software gesammelt. In diesem Fall sollten Sie erst das Basis-Tutorial leaRn absolvieren, welches ebenfalls aus einem Lehrfondsprojekt entstanden ist. Mit diesem Tutorial lernen Studierende der Studiengänge Betriebsökonomie und International Management die ersten Schritte kennen. Der VPN der FHNW muss zum Absolvieren des Tutorials eingestellt sein. Das Tutorial finden Sie hier: http://learn.fhnw.ch/english.html
Falls Sie R und RStudio schon installiert haben, brauchen Sie diese Kurzausführungen nicht zu lesen, scrollen aber ans Ende dieser Seite zu “Installation von Paketen” und stellen Sie sicher, dass in Ihrer Version von R resp. RStudio die dort aufgeführten Pakete installiert sind.
Installation von R
Besuchen Sie die Seite https://stat.ethz.ch/CRAN/. Laden Sie die aktuellste Version von R für Ihr Betriebs-System (Linux, (Mac) OS X, Windows).

Falls Sie ein Windows Betriebs-System besitzen, so klicken Sie auf ‘Download for Windows’. Sie gelangen dann zu folgender Seite:

Wählen Sie hier den Link ‘install R for the first time’ aus und wählen auf der folgenden Seite den Download-Link:

Speichern Sie das .exe-File und führen Sie es anschliessend aus (unter Annahme der Lizenzbedingungen und so weiter).
Ist R korrekt installiert, so können Sie es über das Start-Menü links unten anwählen und starten (allenfalls müssen Sie nach unten scrollen, bis die installierten Programmen aufgeführt sind, welche unter ‘R’ gelistet sind).

Wenn Sie das Programm nun starten, sollten Sie folgenden Screen sehen: Tippen Sie folgende Rechnung in die Konsole:
3+4 und bestätigen Sie mit der ENTER-Taste.

Nun sind wir soweit, dass RStudio installiert werden kann.
Installation von RStudio
Um RStudio zu installieren, besuchen Sie folgenden Link: http://www.rstudio.org/ und klicken Sie im Browser oben rechts auf ‘download’:

Wählen Sie auf dem folgenden Bildschirm in der Spalte unten links die Version ‘RStudio Desktop’ und klicken Sie auf ‘Download’.

Da Sie R selbst schon installiert haben, brauchen Sie auf der Folgeseite nur noch den Schritt 2 durchzuführen, nämlich das Installationsfile von RStudio herunterzuladen und auszuführen.

Nach erfolgreicher Installation können Sie nun RStudio gleich wie vorhin R über die Taskleiste oder das Startmenü anwählen und mit Mausklick starten.
An dieser Stelle verweist RAPP nochmalig auf das Lehrfonds-Projekt leaRn - um sich mit Basistechniken wie dem Abspeichern und Einlesen von Daten, dem Verwalten von Skripten und ähnlichem vertraut zu machen, absolvieren Sie die Tutorials von leaRn.
Installation von Paketen (packages)
Um mit RStudio Apps erzeugen zu können, brauchen Sie eine gewisse Anzahl von ‘packages’. Öffnen Sie RStudio und installieren Sie die Packages shiny und learnr mit folgenden Befehlen:
install.packages('shiny')install.packages('learnr')
Beide packages haben ‘dependencies’, die ebenfalls installiert werden.
RAPP vermittelt wie erwähnt keine Grundlagen von R, bitte absolvieren Sie die Tutorials der Lernumgebung leaRn, damit Sie die notwendigen Grundlagen zur Entwicklung eigener Apps besitzen.
Auf der folgenden Seite wird nun dargelegt, wie Sie zu einer eigenen virtuellen Maschine kommen.
Um einen eigenen Server zu betreiben haben Sie diverse Möglichkeiten, im Wesentlichen werden hier drei vorgeschlagen:
- Sie legen sich ein Benutzerkonto im Rahmen von
RAPPan (siehe Seite zum Anlegen eines Benutzerkonto im Rahmen vomRAPP). - Sie legen sich ein Benutzerkonto bei DigitalOcean an (siehe entsprechende Folgeseite).
- Sie organisieren sich eine eigene virtuelle Maschine, falls Sie an der Fachhochschule Nordwestschweiz lehren und lernen (siehe entsprechende Folgeseite)
Was ist ‘Data-Science’ und Zugang zu RAPP?
Und warum RAPP?
RAPP steht für
Im Wesentlichen ist der Zweck also:
- Bereitstellen von interaktiven
R-Tutorials für die Studierenden.
- Bereitstellen eines Servers für Studierende, damit diese eigene Apps im WWW bereitstellen können.
Somit stellt RAPP sicher, dass die Studierenden den vollständigen Prozess eines Data-Science-Projektes abdecken:

Dieser Data-Science-Prozess deckt folgende Punkte ab:
- Problem: Das zu lösende Problem wird definiert: Zum Beispiel möchte der Blumenhändler Fleurop einen Algorithmus haben, anhand welchem KundInnen in den Länden die unterschiedlichen Pflanzensorten fotografieren können und nachher erfahren, um welche Spezies es sich handelt.
- Data: Es wird abgeklärt, welche Datenstämme vorhanden sind, welche für das unter (1) skizzierte Problem hilfreich sind. Kann die Auftraggeberin Daten liefern, zum Beispiel Bild-Daten unterschiedlicher Pflanzen und die dazugehörige Spezies liefern? Müssen die Daten erst selber beschafft werden und wenn ja, wie und wo?
- Preparation: Die Daten werden vorbereinigt und fürs Einlesen in die Software vorbereitet. Wie liegen die Daten vor? Liefert Fleurop Bilder von Spezies, die eigenständig fürs Einlesen noch aufzubereiten sind?
- Explore: Dieser Schritt ist einer der wichtigsten. Hier lernt der Analyst die Daten kennen und versucht, relevante Variablen für die Analyse zu extrahieren (Feature-Engineering).
- Analyze: Der relevante Algorithmus wird implementiert und getestet.
- Implement: Nach dem ‘klassischen Teil’ erfolgt nun die Implementierung bei der Auftraggeberin. Will die Auftraggeberin eine App? Kann
RoderPythonbei ihr auf einem Server installiert werden? - Transfer: Der implementierte Algorithmus wird der Kundin übergeben (Rohdaten, Auswertungs-Skripte, Dokumentationen). Die Kundin testet den Algorithmus und gibt allenfalls Rückmeldung.
- Evaluate: Die Kundin evaluiert den Algorithmus im Geschäftsumfeld.
- Success: :-)
Die obigen Schritte sind nicht linear und folgen nicht zwingend aufeinander - der Prozess ist also iterativ zu verstehen. Oft tauchen in den Phasen 6-8 Probleme auf, welche trotz Einbezug aller Anspruchhalter nicht vorzeitig entdeckt wurden und die Analyse von Punkt 2-5 (teilweise erheblich) beeinträchtigen können.
Die Projekt-Schritte werden (fast) nie durch eine einzelne Person abgewickelt, sondern durch ein interdisziplinäres Projekt-Team. Aufgrund der Komplexität von Data-Science-Projekten ist dies notwendig. Untenstehende Grafik illustriert dies:

Für das fiktiv beschriebene Fleurop-Projekt soll aus Bilddaten die Pflanzen-Spezies klassifiziert werden. Hierzu braucht es:
- Domain Knowledge: Mit den Experten von Fleurop wäre anzuschauen, wie sie Pflanzen klassifizieren - über die Farbe? Über die Höhe? Über die Form der Blätter (Breite und Länge)? Der mit dem Projekt betraute Data-Scientist hat hier oft nicht genug Wissen und muss bei der Kundin das Domain-Knowledge abholen - dieser Schritt wird oft unterschätzt.
- Computer Science: Der Data-Scientist klärt mit der Informatik / IT der Kundin ab, welche Datenstämme vorliegen und wie die Problemlösung in den Schritten 6-8 bei der Kundin implementiert werden soll - wie erwähnt sind diese Schritte iterativ.
- Quantitative Subjects: Der Data-Scientist muss in der Lage sein, die von den Expertinnen seitens Kundin getätigten Äusserungen (Domain Knowledge) anhand der Daten zu verifizieren - sind die Länge und Breiten der Blütenblätter (beispielsweise) statistisch gesehen gute / starke Prädiktoren für die Pflanzenspezies? Ein breites Grundwissen in Mathematik und Statistik ist für einen Data-Scientisten zentral.
Data-Scientisten müssen in allen genannten Feldern (resp. Überschneidungen ) Wissen ausweisen, die Stärken der einzelnen Personen sind jedoch oft sehr unterschiedlich ausgeprägt. Daten-Wissenschaftlerinnen mit universitären Abschlüssen (Universität, beide ETHs) sind typischerweise in den Feldern Computer Science und Quantiative Subjects stark. Von Absolventinnen einer Fachhochschule wird daher erwartet, als dass sie aus mindestens einem von diesen Feldern Wissen ausweisen können und dies mit Domain-Knowledge (Marketing, Finance, etc.) geschickt kombinieren. Eine weitere Stärke von FH-Absolventinnen ist der integrative Umgang mit allen Beteiligten aus allen Disziplinen.
RAPP soll Ihnen dabei helfen, einerseits das Bereitstellen von Apps zu erleben (go-live) und andererseits Tutorials zu den Quantitative Subjects zeitlich effizient zu erlernen!
Anlegen eines Benutzerkontos und Zugang zu RAPP
Um Ihre eigene ‘Homepage’ auf RAPP bearbeiten zu können, müssen Sie bei sich lokal die relevanten Pakete installieren.
Um zusätzlich die Notizbücher mit interaktivem R-Code anzulegen, brauchen Sie das Package rmarkdown.
Zum Schluss installieren wir noch, falls nicht vorhanden:
install.packages('shiny')install.packages('shinydashboard')install.packages('shinydashboardPlus')
Nun können Sie R-Studio schliessen und erneut öffnen. Anschliessend überprüfen Sie, ob Sie alle Packages laden können:
library(shiny)
library(shinydashboard)
library(shinydashboardPlus)
library(rmarkdown)
Ob die korrekte Version installiert ist, erfahren Sie nach Laden der Packages mit dem Befehl:
sessionInfo()
Zugang zu RAPP
Auf dem RAPP-Server wurde Ihnen im Rahmen der Vertiefungsrichtung MDS ein Benutzerkonto angelegt. Benutzername und Passwort haben Sie von Prof. Dr. Fabian Heimsch erhalten.
Für folgende Illustrationen wählen wir den Benutzernamen maxmuster mit Passwort Passwort123.
In einem nächsten Schritt müssen Sie einen Client zur Kommunikation mit dem Server von RAPP besitzen. Die IP-Adresse des Servers von RAPP mit, diese lautet: 147.86.10.130. Lernen Sie diese auswändig.
Ein Client kann direkt mit dem Server kommunizieren und die notwendigen Einstellungen vornehmen, ein solcher Client ist FileZilla. Installieren Sie nun FileZilla auf Ihrem Rechner, befolgen Sie dabei der Anleitung unter diesem Link: https://filezilla-project.org/
Nun öffnen Sie FileZilla und wählen Datei \(\rightarrow\) Servermanager und wählen anschliessend Neuer Server (wie Sie diesen benennen ist gleichgültig, nennen Sie ihn z.B. RAPP). Als Protokoll wählen Sie SFTP - SSH File Transfer Protocol und geben anschliessend unter Server die IP-Adresse von RAPP an (147.86.10.130).
Als Port wählen Sie 22 und setzen die Verbindungsart auf interaktiv. Schlussendlich geben Sie als Benutzer noch den Ihnen zugewiesenen Benutzernamen ein, hier am Beispiel maxmuster und drücken anschliessend auf verbinden. Anschliessend geben Sie das zugewiesene Passwort ein (hier Passwort123).

Wenn Sie die Einstellungen korrekt vorgenommen haben, so verbindet sich nun Ihr Computer mit dem Server von RAPP und zeigt auf das Verzeichnis mit Ihrem Benutzernamen MaxMuster. Auf der linken Seite können Sie nun Verzeichnisse auswählen, die sich lokal auf Ihrem Computer befinden. Auf der rechten Seite sehen Sie die Ordnerstruktur auf RAPP im Verzeichnis MaxMuster.
Sie können nun ein beliebiges Dokument von der linken zur rechten Seite hochladen, indem Sie das gewünsche Verzeichnis oder die gewünschte Datei auf der linken Seite laden. Mit einem Rechtsklick auf die Datei können Sie mit Hochladen das File auf den Server unter MaxMuster hochladen. Umgekehrt können Sie durch Rechtsklick auf eine Datei auf der rechten Seite eine gewünschte Datei in ein lokales Verzeichnis herunterladen.

Nach erfolgtem Login sollten Sie folgendes Fenster in Filezilla sehen:

- Rechts sehen Sie nun Ihre Ordner auf dem
RAPP-Server. Ganz oben rechts sollten Sie anstattMaxMustereinen Ordner mit Ihrem Namen sehen. Rechts unten sehen sie nun die Verzeichnisse in Ihrem eigenen Ordner. Diese sind LandingPage, BeispielApp und APP1 bis APP10.
Merken Sie sich bitte: Wenn wir später neue Apps anlegen, dann benutzen Sie hierfür ausschliesslich die Ordner APP1-APP10. Sie dürfen die Ordner mit Rechtsklick auch umbenennen - aber erstellen Sie keine neuen Verzeichnisse auf RAPP.
- Rechts ist im Ordner LandingPage Ihre persönliche Website angelegt. Wenn Sie diesen Ordner durch Doppelklick öffnen, so sehen Sie ein File
app.R. Diese werden wir im Rahmen unserer ersten Sitzung neu anlegen, um Ihre Homepage etwas anzupassen. - Links sehen Sie die Dateien von Ihrem lokalen Computer. Sie werden (wahrscheinlich) lokal schon einen Ordner wie Managerial Data-Science oder ähnlich angelegt haben, um die Vorlesungsunterlagen zu speichern (falls noch nicht geschehen, so tun Sie das bitte jetzt).
- Navigieren Sie nun innerhalb von FileZille (links im Fenster) in diesen Ordner.
Wenn Sie nun im Fenster rechts einen Rechtsklick auf den Ordner LandingPage tätigen, so können Sie diesen zu sich lokal herunterladen.

Nun sind Sie in der Lage, das File app.R im Ordner LandingPage bei sich lokal zu ändern. Lösen Sie zuerst nun als Auffrischung untenstehendes Quizz:
Modifikation der eigenen Landing-Page auf RAPP (Teil 1)
Ziel ist nun, dass Sie Ihre eigene Landing-Page auf RAPP modifzieren können.
Wenn Sie nun Ihre Homepage auf RAPP aufrufen: https://rapp.fhnw.ch/RAPP/MDS/VornameNachname/ so erscheint Ihre Homepage.
Zusätzlich begutachten Sie bitte https://rapp.fhnw.ch/RAPP/MDS/MaxMuster/
Was fällt auf?
Der Beispiel-Student Max Muster hat zusätlich einen kleinen CV, den Sie ebenfalls erstellen werden.
Ziel ist, dass Sie in Ihren Bewerbungsunterlagen nach Absolvierung der Studienrichtung eine eigene Homepage ausweisen, und zwar mit einer eigenen:
- LandingPage mit Ihrem Profil
- Verlinkten Apps aus den Projekten der Studienrichtung
Dies sind Dinge, die bei Arbeitgebenden in einer Bewerbung einen “AHA”-Effekt auslösen. Nehmen Sie das Thema daher bitte ernst.
Die Äusserungen seien folgend am File app.R vom Beispielnutzer maxmuster erklärt.
Vorgehen
- Laden Sie den Ordner
MaxMuster.ziplokal in Ihr Verzeichnis zur Studienrichtung unter Ihrer zuvor runtergeladenen LandingPage. - Entzippen Sie den Ordner
MaxMuster.zipnachMaxMuster. - Können Sie lokal das File
app.Rim OrdnerMaxMuster/LandingPage/kompilieren? Falls nicht, so müssen Sie vor dem lokalen Kompilieren noch das Working Directory setzen:Session\(\rightarrow\)Set Working Directory\(\rightarrow\)To Source File Location.
Im Ordner LandingPage im Verzeichnis MaxMuster sehen Sie nun ein File app.R und einen Ordner www. Wird ein File als app.R gespeichert, so interpretiert R dieses automatisch als eine shiny-app. RAPP, unser Server, macht im Grunde nichts anderes als shiny-apps bereitzustellen.
Voraussetzungen:
Sie haben Ihren eigenen Ordner (VornameNachname) von FileZilla lokal bei sich heruntergeladen.
Sie haben den Ordner MaxMuster von oben ebenfalls lokal bei sicher heruntergeladen und ‘ent-zipped’.
In beiden Ordnern, also in VornameNachname und in MaxMuster haben Sie das File app.R geöffnet, dann Session \(\rightarrow\) Set Working Directory \(\rightarrow\) To Source File Location gewählt und konnten die App ohne Fehlermeldung kompilieren.
Nun wollen wir auf dem Server unsere eigene App (kurz) mit jener von Max Muster ersetzen.
Schritt 1:
- Loggen Sie sich in FileZilla ein.
- Öffnen Sie rechts im Fenster (auf dem Server) unter
VornameNachnameden OrdnerLandingPage. Links (lokal) öffnen Sie den eben heruntergeladenen OrdnerMaxMuster/LandingPage. Beide Ordner enthalten:- ein File
app.R:
- einen Ordner
www.
Wenn wir eine shiny-App bereitstellen, so tun wir dies wie erwähnt in einem Fileapp.R.R-Studioerkennt dann, dass dieses File alsshiny-appzu kompilieren ist. Im Ordner/www/speichern wir Inhalte für unsere App ab, also entweder Daten, Bilder oder ähnliches. Sie werden feststellen, dass im Ordner rechts (VornameNachname) Ihr eigenes Bild gespeichert ist, und im Ordner links aber die Bilder von Max Muster.
- ein File
- Um nun die App links (nach rechts) bereitzustellen, müssen wir somit:
- Das File
app.Rvon links nach rechts hochladen. - Alle von
app.Rbenötigten Files im Ordnerwwwin den Ordnerwwwrechts hochladen. Zu diesem Zweck schauen wir uns das Fileapp.Rvon Max Muster untenstehend etwas näher an.
- Das File
- Im Unterschied zu “Ihrem” File
app.Rfinden Sie in jenem von Max Muster einmenuItem()und einmenusubItem(). In diesem ersten Teil bearbeiten wir nur die erste Seite.
- Öffnen Sie nun bei sich lokal im Ordner
MaxMuster/LandingPage/das Fileapp.R. Welche Zeilen sind zu ändern / anzupassen?- in Zeile 6 der Name
Max Mustermit IhremVorname Nachname
- in Zeile 15 der Abschnitts-Name unter
menuItem, und zwar ersetzen Sie wiederumMax Musteraber auch dieiddes Items mit Ihremvornamenachname. Gleichzeitig müssen Sie in Zeile 23 auch hier wieder dieidaufvornamenachnamesetzen. - Ebenfalls ändern Sie in Zeile 28 Ihren Namen in der
userBox(title = ...und passen in Zeile 29 den Text Ihrem Geschlecht entsprechend an.
- In Zeile30 sehen Sie nun, dass ein Bild eingefügt wird MaxMuster1.png, welches sich ja im Order
wwwbefindet. Das heisst, dass dieses File von Ihrem lokalen Rechner vonMaxMuster/LandingPage/www/MaxMuster1.pngnach rechts in den OrdnerVornameNachname/LandingPage/MaxMuster1.pnghochgeladen werden muss.
Später müssen Sie das Bild natürlich noch ändern, das heisst, Sie werden dies mit einem Bild von Ihnen ersetzen und es im Codeapp.Rentsprechend umbenennen! Aktuell reicht es aber, es mit dem Bild von Max Muster zu versuchen. Navigieren Sie links in den entsprechenden lokalen Ordner in FileZilla und rechts in/VornameNachname/.../...und machen Sie wie auf dem obigen Bild gezeigt einen Rechtsklick auf das File und wählen Sie dann Hochladen. - In Zeile 36 werden Sie die EMail ändern.
- In Zeile 45 folgend müssen Sie den Link zu Ihrer eigenen Beispiel-App setzen (also MaxMuster im Link ersetzen…)
- In Zeile 51 verfahren Sie mit dem Bild MaxMuster2.png gleich wie in Zeile 30 (hochladen.)
- Zum Schluss das Wichtigste: In Zeile 54 sehen Sie, dass in der Funktion
htmlTemplate()ein FileinputR.htmlaufgerufen wird. Dies ist eine HTML-Formatvorlage, mit welchen Sie Ihren CV später anpassen können. Laden Sie dieses File bitte nun ebenfalls in FileZilla von links nach rechts hoch - und zwar offensichtlich in den Ordner/www/! - Ersetzen Sie nun noch, ca. in Zeile 54 oder 55
your="Max Muster"mityour="Vorname Nachname"und speichern Sie das Fileapp.Rnun mitCTRL+S.
- in Zeile 6 der Name
- Nun navigieren Sie in FileZilla in beiden Ordnern rechts und links eine Stufe nach oben (aus
wwwzurück inLandingPage) und laden das Fileapp.Rvon links nach rechts indem Sie auf das File links wiederum einen Rechtsklick drücken und dann Hochladen wählen. Auf die nächst höhere Stufe navigieren Sie in FileZilla, indem Sie im Bild oben auf den Ordner mit den kleinen Punkten klicken.
Rufen Sie nun die folgende URL auf: https://rapp.fhnw.ch/RAPP/MDS/VornameNachname/
Wichtig: Beim Arbeiten an einer App treten immer wieder Fehler auf, so dass Sie die Files, insbesondere app.R, relativ häufig wieder hochladen und dann die Änderungen durch Aufrufen der Website ansehen wollen. Häufig sehen Sie dann KEINE Änderungen - weil Ihr Browser die Website “cached” (also Inhalte speichert um ein schnelleres Laden später zu ermöglichen.). Gehen Sie so vor:
- Löschen Sie den Browser-Cache.
- Löschen Sie auf FileZilla in Ihrem Ordner der entsprechenden App das
.html-File.
- Allenfalls muss auch einige Minuten gewartet werden (7 Minuten mindestens).
- Loggen Sie sich ein unter: https://rapp.fhnw.ch/rstudio/ mit Benutzername
vornamenachnameund Passwortpasswort. Sie befinden sich nun im Ordner “VornameNachname”. Angenommen, Ihre App ist im Ordner APP8, so schreiben sie in der Konsole:
setwd("APP8/")(darauf achten, dass keine Fehlermeldung erscheint)- Anschliessend rufen Sie auf:
library(shiny)
- Angenommen, Ihre App heisst
app.R, so rufen Sie auf:runAPP('app.R')
Wenn Sie nun die App sehen, so läuft sie auf dem Server, ansonsten kriegen Sie entsprechende Fehlermeldungen.
- Wenn alles nichts hilft, so schreiben Sie fabian.heimsch@fhnw.ch please reboot server (höchstens ein- bis zweimal pro Tag findet ein reboot statt).
Modifikation der eigenen Landing-Page auf RAPP (Teil 2)
Nun bearbeiten wir den Lebenslauf (CV) auf der persönlichen Homepage:
Hinweis: Wie Sie sehen, verwenden wir hier ab Zeile 53-54 die Funktion htmlTemplate() und benutzen abei anscheinend ein File inputR.html, welches als Template dient. Dieses finden Sie im Ordner /LandingPage/www/ von Max Muster.
- Öffnen Sie das
inputR.html-File einmal in einem Browser und einmal mitR: Wie Sie im Browser sehen können, besteht das File offensichtlich aus {{Platzhaltern}}, die wir abfüllen können.
- Im File sind aktuell genau 3 Job-Profile und 2 Ausbildungen festgehalten. Sie werden diese Anzahl ändern müssen, was eine Modifikation des
inputR.html-File verlangen wird. WICHTIG: Sie müssen hier nicht den Detail-Inhalt des Files verstehen. Es geht darum, Inputs zu nutzen, die man bekommt, ohne sämtliche hunderte Code-Zeilen zu analysieren!
- Ändern Sie nun die relevanten Platzhalter!
- Ändern Sie zum Schluss die Spiegelpunkte unter Berufserfahrung und Ausbildung. Falls Sie mehr oder weniger Spiegelpunkte benötigen, so müssen Sie im File
inputR.htmldie Textstellenjob0-job2(Kommentare ca. ab Zeile 200) kopieren resp. löschen.
Übungs-Generator für schriftliche Aufgaben
Hier können Sie sich Lehrkräfte und Studierende schriftliche Übungen nach Zufallsprinzip generieren lassen. Die Übungen werden in ein Word-Dokument mit Lösungen geschrieben und dieses kann dann zum Zweck eigener Formatierungen noch angepasst werden. Die Aufgabensätze werden als Word-Dokument generiert und können nach eigenen Bedürfnissen formatiert werden.
Weitere Möglichkeiten - der Betrieb eines eigenen Servers
Anmeldung bei DigitalOcean
DigitalOcean ist eine Plattform, die Sie bei der Entwicklung eigener Software-Lösungen unterstützt. Der Vorteil, über eine solche Plattform, und nicht RAPP oder einen anderen Managed Linux Server der FHNW zu gehen liegt vor allem darin, dass Sie weiteren Zugang zum Server auch nach Ihrer Zeit an der FHNW haben (dies betrifft hier vor allem Studierende, die eigene Apps entwickeln möchten). Für die Server-Zugänge, sei es über RAPP oder einen anderen Managed Linux Server der FHNW brauchen Sie das VPN (der FHNW).
Um ein Benutzerkonto bei DigitalOcean anzulegen, brauchen Sie eine Kreditkarte und den Willen, monatlich 5 bis 10 Dollar in einen eigenen Server zu investieren. Ein detailliertes Tutorial zum Bestellen einer virtuellen Maschine bei DigitalOcean und anschliessender Installation eines Shiny-Servers finden Sie hier:
https://deanattali.com/2015/05/09/setup-rstudio-shiny-server-digital-ocean/
Managed Linux Server (FHNW)
Diese Lösung empfiehlt sich, wenn Sie vorhaben, eigene Apps über längere Zeit zu verwenden und nicht “nur” das RAPP-Tutorial absolvieren wollen. Das Vorgehen ist im Wesentlichen zuerst wie folgt:
- Sie organisieren sich eine eigene virtuelle Maschine, falls Sie an der Fachhochschule Nordwestschweiz lehren und lernen, über: webmaster@fhnw.ch. In der Email sollten Sie dabei (mindestens) spezifizieren, wofür Sie den Server benötigen, wie lange Sie diesen benötigen und ob er ausserhalb oder innerhalb des VPN-Netz der FHNW aufrufbar sein soll. Sie werden auf dem Server (ziemlich sicher) keine
root-Rechte erhalten, aber erwähnen Sie in der E-Mail, dass Siesudo-Rechte haben müssen und eine aktuelle Version von zum BeispielUbuntuinstalliert sein soll. Erwähnen Sie zusätzlich unbedingt, dass die IP-Adresse SSL zertifiziert werden soll. - Sie erhalten eine Email mit Benutzername und Passwort, sowie die IP-Adresse des Servers, zum Beispiel 123.456.1.2
- Ihr Server wird nach fertiger Einrichtung unter http://123.456.1.2/ über einen Browser erreichbar sein, falls Sie ein SSL-Zertifikat installieren liesse, unter https://123.456.1.2/
Nun müssen Sie einen Client zur Kommunikation mit dem Server installieren. Wir empfehlen zwei Clients (installieren Sie beide).
Client 1 - FileZilla
- Installieren Sie FileZilla auf Ihrem Rechner, befolgen Sie dabei die Anleitung unter diesem Link: https://filezilla-project.org/
- Sie müssen sich im VPN der FHNW befinden.
- Nun öffnen Sie FileZilla und wählen
Datei\(\rightarrow\)Servermanagerund wählen anschliessendNeuer Server(wie Sie diesen benennen ist gleichgültig). Als Protokoll wählen SieSFTP - SSH File Transfer Protocolund geben anschliessend unterServerdie IP-Adresse vonRAPPan. AlsPortwählen Sie22und setzen dieVerbindungsartaufinteraktiv. Schlussendlich geben Sie alsBenutzernamenoch den Ihnen zugewiesenen Benutzernamen ein, hier am Beispielmaxmusterund drücken anschliessend aufverbinden. Anschliessend geben Sie das zugewiesene Passwort ein (hier zum BeispielPasswort123).

Wenn Sie die Einstellungen korrekt vorgenommen haben, so verbindet sich nun Ihr Computer mit dem Server und zeigt auf das Home-Verzeichnis. Auf der linken Seite können Sie nun Verzeichnisse auswählen, die sich lokal auf Ihrem Computer befinden. Auf der rechten Seite sehen Sie die Ordnerstruktur des Servers.
Sie können nun ein beliebiges Dokument von der linken zur rechten Seite hochladen, indem Sie das gewünsche Verzeichnis oder die gewünschte Datei auf der linken Seite laden. Mit einem Rechtsklick auf die Datei können Sie mit Hochladen das File auf den Server unter MaxMuster hochladen. Umgekehrt können Sie durch Rechtsklick auf eine Datei auf der rechten Seite eine gewünschte Datei in ein lokales Verzeichnis herunterladen.
Client 2 - PuTTy
Für Windows- und Mac-User ist eine graphische Oberfläche zum Datei-Austausch mit dem Server sicherlich angenehm. Mit PuTTy können Sie nun einen zusätzlichen Client installieren, mit welchem Sie Software auf dem Server installieren können, neue User anlegen und so weiter. Installieren Sie nun PuTTy auf Ihrem Rechner: https://www.putty.org/
Nach erfolgreicher Installation führen Sie PuTTy bitte aus, um sich mit dem Server zu verbinden.

Achten Sie auf Folgendes:
- Sie müssen sich im VPN der FHNW befinden
- Die IP-Adresse muss korrekt angegeben werden
- Wählen Sie als
Port22 und `Connection typ
Anschliessend folgt eine Aufforderung zur Eingabe des Benutzernamens (siehe Email vom webmaster FHNW) und zur Eingabe des Passwortes.
Schritt 1 - Besuchen Sie Ihren Server im Browser
Wenn Sie nun Ihren Server unter der IP-Adresse http://123.456.1.2 besuchen, so finden Sie entweder eine durch den Webmaster vorinstallierte Seite oder einen “webpage not available error”. Gleich, was Sie sehen, wir installieren nun eine (neue) Default-Seite auf dem Server über nginx. Geben Sie hierfür in der PuTTY-Konsole folgende Befehle ein:
sudo apt-get update
sudo apt-get -y install nginx
Wenn Sie nun die erwähnte Seite http://123.456.1.2 besuchen, so finden Sie eine Willkomensseite von nginx.
Schritt 2 - Installieren von R
Wir wollen nun die aktuellste Version auf unserem Server unter Ubuntu installieren:
apt update -qq
apt install --no-install-recommends software-properties-common dirmngr
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
Nun können wir die Software R installieren:
sudo apt-get update
sduo apt-get -y install r-base
In PuTTy können Sie nun die Software R aufrufen, indem Sie folgendes tippen:
R
Nun können Sie, innerhalb von R, prüfen, ob folgender Code ausgeführt wird:
x<-1
x+10
Sobei als Resultat 11 erscheinen sollten. Sie können nun R mti dem Befehl q() verlassen.
Schritt 3 - Installieren von Packages R
Installieren Sie zum Beispiel die Packages devtools (CRAN),shinyjs (Github),shiny (CRAN),ggplot2 (CRAN) und learnr über:
sudo su - -c "R -e \"install.packages('devtools', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"devtools::install_github('daattali/shinyjs')\""
sudo su - -c "R -e \"install.packages('shiny', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('ggplot2', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('learnr', repos='http://cran.rstudio.com/')\""
WICHTIG: Bei der Installation von Packages kann es immer wieder zu Problemen kommen, Sie müssen hier lernen, sich ‘selbst’ zu helfen - ‘googlen’ Sie, ob andere User bei der Installation eines bestimmten Packages ähnliche Probleme hatten (und zwar bei einer Installation auf Ubuntu). Je nachdem müssen Sie auf Ubuntu andere Repositories hinzufügen oder ähnliches.
HINWEIS: Sie wissen nun, dass wir in der R-Konsole ja Packages über den Befehl install.packages("...") installieren, warum also nicht das Package in R direkt installieren? Das Package würde dann nur Ihnen als User zur Verfügung stehen und nach ‘aussen’ dementsprechend nicht.
Schritt 4 - Installation des RStudio-Servers
Bis hierhin funktioniert R, nun wollen wir aber noch RStudio auf dem Server installieren, hierfür führen wir folgendes Kommando zuerst aus:
sudo apt-get -y install gdebi-core
Nun können wir den aktuellsten RStudio-Server installieren, schauen Sie hierfür auf https://www.rstudio.com/products/rstudio/download-server/ nach der aktuellsten Version:
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.4.1106-amd64.deb
sudo gdebi rstudio-server-1.4.1106-amd64.deb
Erledigt! - RStudio benutzt den Port 8787 - somit können Sie sich direkt über einen Browser in ‘ihr’ RStudio einloggen. Um zu RStduio zu gelangen, navigieren Sie nun bitte zu Ihrer Webpage, nämlich http://123.456.1.2:8787 und Sie sollten dann folgendes Fenster sehen, wo Sie sich mit Ihrem Benutzernamen und Passwort einloggen können:

Schritt 4.1 - Installieren des shiny-Server
Wie unter Schritt 3 erwähnt sollten Sie das Package shiny schon installiert haben. Nun sollten Sie den aktuellsten shiny-Server installieren, den aktuellsten URL finden Sie hier: https://www.rstudio.com/products/shiny/download-server/
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.16.958-amd64.deb
sudo gdebi shiny-server-1.5.16.958-amd64.deb
Nun ist shiny-Server installiert. Falls keine Probleme aufgetreten sind, sollten Sie nun Ihre erste interaktive shiny-App unter http://123.456.1.2:3838/ aufrufen können. Falls Sie einen Fehler sehen, so haben Sie wahrscheinlich das Package rmarkdown noch nicht installiert. Installieren Sie das Package rmarkdown:
sudo su - -c "R -e \"install.packages('rmarkdown', repos='http://cran.rstudio.com/')\""
Danach können Sie shiny-Server erneut aufrufen: http://123.456.1.2:3838/, allenfalls müssen Sie zuerst aber Ihren Browser-Cache löschen, damit die Homepage neu geladen wird.
Kurzerläuterungen zum shiny-Server
- Falls Fehler in der App bestehen, so werden die Fehlermeldungen in folgenden Log-Files gespeichert: /var/log/shiny-server/
- Die Homepage des
shiny-Server findet sich unter /srv/shiny-server/index.html - dieses HTML-File lässt sich ebenfalls anpassen nach eigenen Bedürfnissen (wichtig ist, dass der Dateiname gleich bleibt) - Jede App, die Sie unter /srv/shiny-server/ ablegen, zum Beispiel hat es zwei kleine Beispiel-Apps im Ordner /srv/shiny-server/sample-apps/, und Sie können Sie den Inhalt der App ‘hello’ nun unter http://123.456.1.2:3838/sample-apps/hello/ anzeigen lassen.
- Das Konfigurations-File für den
shiny-Server findet sich unter /srv/shiny-server/shiny-server.conf - Um den Server nach Konfigurationsänderungen neu zu starten, benutzen Sie folgende Kommando-Zeile:
sudo service shiny-service restart
WICHTIG: Wenn Sie in das Konfigurationsfile von shiny-Server schauen, so stellen Sie fest, dass App als Benutzer shiny ausgeführt werden. Es ist wichtig, sich an das zu erinnern, da diverse Fragen wie Dateiberechtigungen und ähnliches davon abhängen.
Schritt 5 - Bereitstellen einer ersten App
Entwicklung einer einfachen App
Um ein eigenes Tutorial für den Unterricht zu entwerfen, öffnen Sie nun RStudio.
Wählen Sie dann File \(\rightarrow\) New file \(\rightarrow\) R Markdown, anschliessend wählen Sie From Template den Eintrag Interactive Tutorial aus. Als Ordner-Name können Sie zum Beispiel MaxMuster oder App_MaxMuster wählen (oder einfach Ihren Namen), mit Browse können Sie zusätzlich noch wählen, in welchem Verzeichnis der neue Ordner MaxMuster mit der App angelegt werden soll.

Nun wird entsprechendes Verzeichnis angelegt und in RStudio öffnet sich ein R-Markdown Dokument names MaxMuster.Rmd. Dieses Template ist sozusagen ein Steinbruch für die Entwicklung eines eigenen Tutorials resp. einer eigenen App.

Sie können nun im Fenster oben auf den grünen Pfeil Run Document drücken, damit sich die App kompiliert.
Wir gratulieren - Sie haben nun Ihre erste App resp. Ihr erstes Tutorial entwickelt!
Nun geht es noch darum, das Tutorial online zu stellen.
Bereitstellen der Inhalte auf dem eigenen Server
Öffnen Sie wiederum Filezilla und verbinden Sie sich mit Ihrem Ordner auf dem RAPP-Server. Navigieren Sie nun in Filezilla auf der linken Seite zum Ordner, wo sich Ihr R-Markdown Dokument MaxMuster.Rmd befindet. Auf der rechten Seite von Filezilla navigieren Sie nun zum Ordner /srv/shiny-server/MaxMuster/.

Links öffnen Sie das Verzeichnis MaxMuster. Nun markieren Sie alle Dateien im Verzeichnis links und wählen durch einen Rechtsklick anschliessend Hochladen aus. Allenfalls müssen Sie noch das Passwort eingeben. Die Dateien wurden nun in den Server geladen.
Nun der spannende Moment, wir rufen die App auf RAPP im WWW auf: Navigieren Sie in einem Browser Ihrer Wahl auf http://123.456.1.2/3838/MaxMuster/, wobei Sie den Teil MaxMuster natürlich mit Ihrem VornamenNachnamen ersetzen, resp. dem Ordnernamen der App auf Ihrem Server.
Ihre App ist nun im World Wide Web.
!Häufige Fehler beim Bereitstellen einer App!
Die häufigsten trivialen Gründe, sollte Ihre App nicht funktionieren, sind die folgenden:
- Die App besitzt nicht die richtigen Rechte auf dem Server (z.B., um ein html-Dokument anzulegen), stellen Sie also sicher, dass die Dateiattribute Ihres Ordners auf
755gesetzt sind. - Es sind nicht alle Pakete installiert. Die hier erstellte Beispiel-App ruft nur die
library(learnr)auf - falls Sie aber weitere Bibliotheken benötigen, so müssen Sie prüfen, ob diese auf dem RStudio-Server installiert sind.
Um zu überprüfen, ob alle Pakete auf dem RStudio-Server installiert sind, navigieren Sie in Ihrem Browser bitte zu http://123.456.1.2/8787/ und loggen Sie sind ein (maxmuster und Passwort123). Nach erfolgreichem einloggen erscheint eine R-Konsole. In dieser können Sie nun, zum Beispiel, prüfen, ob die library learnr installiert ist. Schreiben Sie library(learnr) in die Konsole und bestätigen Sie mit ENTER. Wird die Zeile korrekt ausgeführt, so ist die library installiert, ansonsten müssen Sie diese wie vorhin beschrieben auf Ihrem Server installieren.