Blockveranstaltung Einführung in R, R-Studio und R-Markdown
Erklärung, Demonstration und Übungen zur Arbeitsumgebung R-Console, RStudio, R Commander und RMarkdown
Umgebung
- Pool
- RDP
- Statistik-Server
ubps-i-s1.psych.bio.uni-goettingen.de:49121
R-Console
- versucht, Eingaben als R-Befehle zu interpretieren
- R ist case sensitive
- R basiert auf Textzeilen mit Kommandos, die nacheinander abgearbeitet werden (R-Programm)
- copy-paste aus anderen Quellen möglich
- Ergebnisse “laufen durch”
- Grafiken in eigenem Fenster, können aber über Befehle gespeichert werden oder per copy-paste in andere Dokumente integriert werden
- Datenkonzept in R
- Datenobjekte
- Ergebnisobjekte
- ein paar Versuche und Demos mit
ht <- c(180, 176, 180, 182, 160, 156, 165, 160, 159, 189)
wt <- c( 60, 54, 110, 52, 62, 41, 71, 70, 44, 60)
gender <- c( 2, 2, 1, 1, 1, 1, 1, 1, 1, 2)
R-Scripte
- eine Folge von Zeilen mit R-Kommandos
- auch in Form einer Textdatei
- Kommentare mit
#
RStudio - eine Umgebung
- R-Console ist integriert
- Eingabe-Unterfenster (R-Skripte, Datentabellen, Tabs, später Rmd)
- Environment Unterfenster (Speicher)
- Variablen
- Inspektion von Variablen (Viewer auf Dataframes)
- Einlesen von Dateien
- öffnen und speichern
- History
- global environment und packages
- Teilfenster unten rechts (Hilfsbereich)
- Dateibrowser
- Grafikausgabe
- Paketverwaltung
- Help
Bitte bei studentischen Accounts unbedingt Working Directory setzen auf P:/ und speichern. setwd("P:/") (passiert jetzt automatisch auf Statistik-Server) Bitte nicht den Desktop benutzen für Downloads bzw. Kursmaterialien, sondern am besten ein Unterverzeichnis auf dem Laufwerk P:
Working Directory, Data I/O, Import Data, Export Data, DataFrame, Dataframe-Zugriff via $, nur prinzipiell Slicing bei DataFrames, cbind
- Zugriff auf URLs
- Zugriff auf lokale Dateien (OS-Spezifitäten)
- Working Directory als Ort, ohne jeglichen Pfad
Package-System
- Packages sind Erweiterungen - es gibt tausende
- Packages installieren - vorinstallierte Pakete, Installation in persönlichem Bereich (P: Laufwerk)
- Packages aktivieren (R-Studio, R-Syntax)
- Package Befehle und Dokumentation
- Datensätze in Packages
- auch Rcmdr ist Package
- Rcmdr kann seinerseits wieder durch Packages erweitert werden
Packages haben eigenen “Namespace”. Packages können sich Befehle gegenseitig maskieren.
Packages müssen nicht unbedingt geladen werden, sie können auch direkt mit :: angesprochen werden mit: <package-name>::<package-command>
Ein paar Spezifika, wenn mit Studierenden-Accounts eigene Packages in RStudio installiert werden sollen.
Workaround eigene Packages
Die Packages werden in einem Verzeichnis auf dem P: Laufwerk installiert und beim Laden wird mit angegeben, von wo aus das Package gelesen werden soll. 2019 neu: P:/R/library wurde zum default path zentral hinzugefügt .libPaths() Damit kann ein dort installiertes Paket ohne Angabe eines Load-Path gestartet werden
Beispiel: Hier wird P:\R\libraries als Verzeichnis für Libraries benutzt
[die Befehle unten dienen nur der Illustration, sind auskommentiert und werden nicht direkt ausgeführt]
# get and install a package called sudoku in my personal directory at GWDG/StudIT
install.packages("sudoku", lib="P:/R/library")
# load package sudoku explicitly by supplying the location of the package
library(sudoku,lib.loc='P:/R/library')
# ... the same using require()
require(sudoku,lib.loc='P:/R/library')
RStudio Projekte
- Projekte in R mit eigener Umgebung, eingenem RData, eigenen Verzeichnis, eigenem working directory uvm.
- more about projects
ownCloud
Die Universität Göttingen stellt allen Studierenden 10 GB ownCloud-Speicher zur Verfügung. Hier können Sie neben vielen anderen Möglichkeiten auch Datendateien speichern, freigeben und in R direkt benutzen. Leider gibt es für diesen Service (noch) keine Anleitung für Studierende, beispielsweise im cCampus der Uni. Es gelten aber die Seiten der GWDG zu ownCloud analog.
Vorgehen:
- Daten in persönliche ownCloud hochladen
- ein Datenfile anklicken, es ist dann ausgewählt (ein x beim Namen)
- auf das Share-Symbol klicken
- Klick auf die Schaltfläche ‘create public link’ (ohne Vergabe eines Passwortes)
- durch Klick auf das ‘copy to clipboard’ landet die Link-Adresse in der Zwischenablage
- diese Adresse kann dann direkt in R genutzt werden, indem ‘/download’ angehängt wird
- leider ist damit der Original-Name des Dokumentes nicht mehr transparent
Beispiellink (eine freigegebene ownCloud Datendatei im CSV-Format vom studentischen Benutzer ‘psych.stud’): https://owncloud.gwdg.de/index.php/s/MwST1BwNLxtDon3
Einlesen in R-Skript:
# the ownCloud link is expanded with '/download'
dd <- read.delim('https://owncloud.gwdg.de/index.php/s/MwST1BwNLxtDon3/download')
R-Markdown
- Idee: Dokumentation und ausführbare R-Chunks in einer einzigen Datei - automatische Berichterstellung
- Idee: Markdown
Rmd
Mini Beispiel jump_in
Datenfile in verschiedenen Formaten
R-Script - jump_in.R
Rmd-Datei - Source Code: jump_in.Rmd - gerendert als HTML
Übungs-Datensätze
Ein paar Übungs-Datensätze von Matthias Lippold
Ein Beispiel-Datensatz zum Berechnen des BMI v_bmi.txt
Ein studentischer Beispiel-Datensatz stud_utf8.txt
Ein Datensatz mit Big-Five Daten (aus dem Tutorial von Christian Treffenstädt) im CSV-Format: Big5_GEMI_R.csv
Aufgaben
Rechenarten, Variablen, Funktion(), Array, Slice eines Array, Funktionen auf Arrays
- machen Sie sich ein wenig mit der R-Console vertraut (Befehle, Befehle wiederholen, Befehlszeile editieren etc.)
- suchen Sie im Web nach R-Beispielcode und lassen Sie ihn in der Console laufen
- erstellen Sie ein paar Variablen und verwenden Sie sie für Rechenvorgänge oder andere Operationen
- erstellen Sie Variablen verschiedenen Typs
- erstellen Sie eine Variable, die 10 Zahlen als Vector enthält.
- greifen Sie auf die erste Zahl zu
- greifen Sie auf die Zahlen in Position 4,5,6,7,8 zu
- erstellen Sie ein Array mit Gewichten von kleinen Personen
- führen Sie ein paar Operationen nach Wahl mit dem Array durch - welche Effekte haben die Operationen?
- ermitteln Sie ein paar deskriptive, statistische Kennwerte für dieses Array (suchen Sie ggf. Hilfe hierfür)
- lassen Sie die ersten 3 Werte des Arrays ausgeben
- ermitteln Sie ein paar deskriptive, statistische Kennwerte für dieses Teilarray
- erstellen Sie ein Array mit Größen von Personen, die zum obigen Gewichtsarray passen könnten
- berechnen Sie die Korrelation (suchen Sie ggf. Hilfe, wie eine Korrelation in R berechnet wird)
- erstellen Sie ein R-Skript, mit dem die obigen Aufgaben erledigt werden können
- integrieren Sie vorherige Befehle in das Skript, auch aus der History
- kommentieren Sie im Skript, z. B. was mit welcher Absicht passiert
- testen Sie die Editier-Möglichkeiten im Skript, z. B. suchen, ersetzen, in Teilbereich mehrfach ersetzen,
- lassen Sie eine Zeile, Teile des Skripts und das Gesamtskript laufen - beobachten Sie die Effekte in der Console
- speichern Sie das Skript
Working Directory, Data I/O, Import Data, Export Data, DataFrame, Dataframe-Zugriff via $, nur prinzipiell Slicing bei DataFrames, cbind
- erzeugen Sie ein vorher auf dem persönlichen P: Laufwerk ein Unterverzeichnis und machen Sie es zum working directory
- speichern Sie ein R-Skript in diesem Verzeichnis
- schließen Sie RStudio (speichern Sie ggf. noch offene Dateien) und öffnen Sie es erneut - welches working directory ist aktiv?
- schließen Sie RStudio und öffnen Sie dann eine gespeicherte R-Datei mit Rechtsklick und Auswahl von RStudio - welches working directory ist aktiv?
- laden Sie eine der Übungsdateien - machen Sie sich die Datenstruktur klar
- laden Sie eine der Übungsdateien via R-Syntax
- setzen Sie das working directory auf Ihr P: Laufwerk, laden Sie eine der Übungsdateien via R-Syntax aus dem Web und speichern Sie sie via R-Syntax in Ihrem working directory
- experimentieren Sie ggf. mit verschiedenen Möglichkeiten beim Laden und machen Sie sich den Effekt auf den dataframe kar
- speichern Sie diese Datei in einem beliebigen Verzeichnis auf Ihrem P: Laufwerk
- speichern Sie diese Datei via R-Syntax auf Ihrem P: Laufwerk
- experimentieren Sie mit verschiedenen Dateiformaten (.txt, .csv, *.RData)
- ermitteln Sie verschiedene, descriptive Kenngrößen von einzelnen Spalten (Variablen) des Dataframes.
- tun Sie dasselbe für Teilspalten (z. B. die ersten 5 oder die letzten 10 Beobachtungen)
- speichern Sie einen Teil des Dataframes in einer neuen Variablen (Ausschnitt Ihrer Wahl)
- erzeugen Sie aus zwei oder mehr Spalten (Variablen) einem neuen Dataframe und speichern Sie ihn unter einem neuen Namen
- erzeugen Sie verschiedene Arrays via R-Syntax, erzeugen Sie hieraus einem Dataframe und speichern Sie ihn auf Ihrem P: Laufwerk
- erstellen/speichern Sie auf Ihrem persönlichen ownCloud Speicher ein Datenfile. Es kann eines der hier zur Verfügung gestellten sein. Erzeugen Sie eine öffentliche Verknüpfung hierauf. Lesen Sie dieses Datenfile direkt von Ihrem ownCloud-Speicher in R ein.
R-Commander
- rufen Sie den R-Commander auf und springen Sie zwischen der R-Studio und der R-Commander Oberfläche hin und her
- aktivieren Sie einen Dataframe, den Sie vorher in R-Studio geladen haben im R-Commander
- laden Sie im R-Commander eine Datei mit einem Dataframe - machen Sie sich die Unterschiede zu R-Studio klar
- spielen Sie mit dem R-Commander, erzeugen Sie deskriptive Statistiken Ihrer Wahl
- spielen Sie mit den Grafiken im R-Commander, erzeugen Sie verschiedene Grafiken Ihrer Wahl
- rechnen Sie ggf. einen T-Test oder eine Korrelation Ihrer Wahl
- machen Sie sich den Zusammenhang zwischen R-Commander Menuauswahl und der erzeugten Syntax klar
- machen Sie sich die Auswirkungen in der R-Console von R-Studio klar
- nutzen Sie die erzeugte Syntax des R-Commander um ein R-Skript zu erzeugen, das Sie dann ohne Einsatz des R-Commanders laufen lassen
- speichern Sie das so erzeugte Skript
- rufen Sie das erzeugte Skript wieder auf und lassen es laufen - ev. auf verschiedene Art
Package-System
- laden/aktivieren Sie verschiedene Packages (in RStudio und als Command)
- verschaffen Sie sich einen Überblick über die in dem Package enthaltenen Befehle
nutzen Sie testweise Befehle aus den geladenen Packages
lubridate installieren und ausprobieren, Datums- und Zeitberechnungen cf cf führen sie ein paar Zeit- und Datumsberechnungen durch
- installieren Sie das Package sudoku
- generieren Sie ein Sudoku
finden Sie die Lösung des neu generierten Sudoku
RMD
- erstellen Sie eine Rmd Datei, indem Teile Ihrer vorher erstellten Skripte Inhalt von R-Chunks sind
- dokumentieren Sie im Markdown-Bereich, was in den R-Chunks inhaltlich passiert
- Verändern Sie in den Markdown-Bereichen Struktur und Aussehen Ihres Enddokuments mit den vielen Gestaltungsmöglichkeiten
- erstellen Sie ein Markdown, in dem Sudoku installiert, aufgerufen, ein Sudokum generiert und seine Lösung gefunden wird.
- lassen Sie eines Ihrer Markdown Dokumente in verschiedenen Formaten erzeugen (HTML, PDF, Word)
- Erzeugen Sie mit Hilfe des R-Commanders eine Rmd-Datei, passen Sie sie an, kommentieren Sie ihre Anpassungen in der Rmd-Datei und speichern Sie alles, um eine wiedererzeugbare Auswertung zu erstellen
Literaturverwaltung in Markdown
- Bibtex Datei herunterladen
- Eintrag hinzufügen
- ein paar Literaturverweise in einen Text integrieren
- spielen mit verschiedenen Arten des Zitierens
- knitten und Literaturverzeichnis, das automatisch erzeugt wird, überprüfen
knitten nach html, PDF, Word
- schauen Sie sich Zotero (installiert) als Literaturverwaltungsprogramm an.
- installieren Sie ggf. das zugehörige Browser-Plugin
suchen Sie sich, beispielsweise über die Homepage der SUB Literatur, fügen Sie Ihre Suchergebnisse in ihre Zotero-Datenbank und zitieren Sie sie in Ihrem Markdown Dokument.
Beispiel-Bibliographie
Tutorials
Neben den offiziellen Dokumenten und Websites, von denen es eine Vielzahl gibt, existieren ein paar Tutorials von Kollegen im Haus, die sehr empfehlenswert sind. Hier eine kleine Auswahl:
Christian Treffenstädt hat einige sehr empfehlenswerte Tutorials zu R erstellt, die in seinem r-space zu finden sind, z. B.
eine Einführung in R und R-Studio r-intro,
eine Einführung in R-Markdown
sowie zu verschiedenen, anderen Themen die sehr schöne Lösungsansätze für gängige Probleme bei der statistischen Datenauswertung enthalten.
Die offizielle Website von R-Studio bietet, neben zahlreichen anderen Informationen, auch eine Dokumentation zu R-Markdown, auf der die spezielle Markdown-Variante von R-Studio beschrieben wird.
Vieles ist auch im Help-System von R-Studio hinterlegt.
- Help | Rstudio Docs
- Help | Cheatsheets
Base Cheatsheet
verschiedene Listen mit Kommandos
Die Befehle im R Base Packagelibrary(help = "base")
Google search ‘rstudio command list’
uni Idaho personality-project