Rmd

Diese Unterlagen können sich bis zum Start der Einführungsblocks im April 2020 noch verändern.

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

  • Dateitransfer,
    • P-Laufwerk

      Windows: (an Stelle der … muss der eigene Benutzername stehen) \ug-uyst-ba-cifs.student.uni-goettingen.de...

      Mac-OS: smb://ug-uyst-ba-cifs.student.uni-goettingen.de/home/users/

      Der E-Campus bietet teilweise Anleitungen

    • Sticks und lokale Speichermedien
    • copy paste zwischen local und remote (RDP-Window) funktioniert - unter Windows, nicht aber unter Mac-OS (MS-Remotedesktop)
    • zuhause: VPN-Tunnel aufbauen GWDG-Seite
    • Mac-OS (an Stelle der … muss der eigene Benutzername stehen) smb://ug-student\...@ug-uyst-ba-cifs.student.uni-goettingen.de/home/users/...
  • Browser Downloads und Extensions - Probleme mit MS-Explorer
  • P: vs ug-student…
    • auf beide gibt es Schreibrechte, R hat aber Probleme mit dem Desktop
    • beide haben den Download Ordner, um auf heruntergeladene Dateien zugreifen zu können
    • auf P: haben Sie theoretisch weltweit Zugriff, nach einigen Vorbereitungen
    • P: wird automatisch als Working Directory eingestellt beim Start von RStudio
  • N: Public Folder auf Institutslaufwerk (hier nicht relevant) \fs-all.top.gwdg.de_ubps_all$
  • OwnCloud, Zugriff und Verwendung für eigene Projekte

  • Einrichten von P:\R\library

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

R-Commander

  • Aufruf (ist Package)
  • Datei I/O
  • deskriptiven Daten
  • Grafiken
  • T-Test oder Korrelation als Beispiel für statistische Verfahren

  • R-Commander wird in dieser Veranstaltung nicht genutzt

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

R-Markdown und Literaturverwaltung

  • Automatische Literaturverwaltung
  • BibTex Datei mit allen Literaturangaben
  • Citations im Text

Intro Beispiel-Bibliographie

rmd_bib csl Word-Template Bibliographie sample.bib

Alternativ mit veränderten Zotero Tags im bib-File:

rmd_bib_zotero csl Word-Template Bibliographie gemi_profs_zotero_exported.bib

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

Swirl

Swirl is a platform for learning (and teaching) statistics and R simultaneously and interactively.

Viele Kurse können über die Swirl Website heruntergeladen werden.

Birk Oelhoff hat eine eigene Einführungseinheit in Swirl gebaut. Sie ist zu finden unter: https://pzezula.pages.gwdg.de/swirl/sheet_swirl.html

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

Bücher

Hadley Wickhams R for Data Sciences, Online Book

Hadley Wickhams Advanced R, Online Book

verschiedene Listen mit Kommandos

Die Befehle im R Base Packagelibrary(help = "base")

Google search ‘rstudio command list’

uni Idaho personality-project