% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
%
\documentclass[
  8pt,
  ignorenonframetext,
]{beamer}
\author{}
\date{\vspace{-2.5em}}

\usepackage{pgfpages}
\setbeamertemplate{caption}[numbered]
\setbeamertemplate{caption label separator}{: }
\setbeamercolor{caption name}{fg=normal text.fg}
\beamertemplatenavigationsymbolsempty
% Prevent slide breaks in the middle of a paragraph
\widowpenalties 1 10000
\raggedbottom
\setbeamertemplate{part page}{
  \centering
  \begin{beamercolorbox}[sep=16pt,center]{part title}
    \usebeamerfont{part title}\insertpart\par
  \end{beamercolorbox}
}
\setbeamertemplate{section page}{
  \centering
  \begin{beamercolorbox}[sep=12pt,center]{part title}
    \usebeamerfont{section title}\insertsection\par
  \end{beamercolorbox}
}
\setbeamertemplate{subsection page}{
  \centering
  \begin{beamercolorbox}[sep=8pt,center]{part title}
    \usebeamerfont{subsection title}\insertsubsection\par
  \end{beamercolorbox}
}
\AtBeginPart{
  \frame{\partpage}
}
\AtBeginSection{
  \ifbibliography
  \else
    \frame{\sectionpage}
  \fi
}
\AtBeginSubsection{
  \frame{\subsectionpage}
}
\usepackage{amsmath,amssymb}
\usepackage{lmodern}
\usepackage{iftex}
\ifPDFTeX
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
  \usepackage{unicode-math}
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
  \IfFileExists{parskip.sty}{%
    \usepackage{parskip}
  }{% else
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{6pt plus 2pt minus 1pt}}
}{% if KOMA class
  \KOMAoptions{parskip=half}}
\makeatother
\usepackage{xcolor}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\hypersetup{
  hidelinks,
  pdfcreator={LaTeX via pandoc}}
\urlstyle{same} % disable monospaced font for URLs
\newif\ifbibliography
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\usepackage{framed}
\definecolor{shadecolor}{RGB}{248,248,248}
\newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{0.94,0.16,0.16}{#1}}
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.77,0.63,0.00}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\BuiltInTok}[1]{#1}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.64,0.00,0.00}{\textbf{#1}}}
\newcommand{\ExtensionTok}[1]{#1}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\ImportTok}[1]{#1}
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}}
\newcommand{\NormalTok}[1]{#1}
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.81,0.36,0.00}{\textbf{#1}}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}}
\newcommand{\RegionMarkerTok}[1]{#1}
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
% type setting
% ------------------------------------------------------------------------------
\usepackage[german]{babel}     

% fonts
% ------------------------------------------------------------------------------
\usefonttheme{professionalfonts}

% slide title and horizontal line
% ------------------------------------------------------------------------------
\setbeamertemplate{frametitle}{%
    \vskip-30pt \color{black}\large%
    \begin{minipage}[b][23pt]{120mm}%
    \flushleft\insertframetitle%
    \end{minipage}%
}

\setbeamertemplate{headline}										
{
\vskip10pt\hfill\hspace{3.5mm} 										 
\vskip15pt\color{black}\rule{\textwidth}{0.4pt} 					 
}

% slide number
% ---------------------------------------------------------------
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}
{
\vskip5pt
\vskip2pt
\makebox[123mm]{\hspace{7.5mm}
\hfill Programmierung und Deskriptive Statistik $\vert$ 
\copyright $ $ 2022 Dirk Ostwald CC BY-NC-SA 4.0 $\vert$ 
Folie \insertframenumber}
\vskip4pt
}

% block color scheme
% ------------------------------------------------------------------------------
% colors
\definecolor{white}{RGB}{255,255,255}
\definecolor{grey}{RGB}{235,235,235}
\definecolor{lightgrey}{RGB}{245,245,245}
\definecolor{LightBlue}{RGB}{220,220,255}
\definecolor{darkblue}{RGB}{51, 51, 153}

% definitions and theorems
\setbeamercolor{block title}{fg = black, bg = grey}
\setbeamercolor{block body}{fg = black, bg = lightgrey}

% general line spacing 
% ------------------------------------------------------------------------------
\linespread{1.3}

% local line spacing
% ------------------------------------------------------------------------------
\usepackage{setspace}

% colors
% -----------------------------------------------------------------------------
\usepackage{color}

% justified text
% ------------------------------------------------------------------------------
\usepackage{ragged2e}
\usepackage{etoolbox}
\apptocmd{\frame}{}{\justifying}{}

% bullet point lists
% -----------------------------------------------------------------------------
\setbeamertemplate{itemize item}[circle]
\setbeamertemplate{itemize subitem}[circle]
\setbeamertemplate{itemize subsubitem}[circle]
\setbeamercolor{itemize item}{fg = black}
\setbeamercolor{itemize subitem}{fg = black}
\setbeamercolor{itemize subsubitem}{fg = black}
\setbeamercolor{enumerate item}{fg = black}
\setbeamercolor{enumerate subitem}{fg = black}
\setbeamercolor{enumerate subsubitem}{fg = black}
\setbeamerfont{itemize/enumerate body}{}
\setbeamerfont{itemize/enumerate subbody}{size = \normalsize}
\setbeamerfont{itemize/enumerate subsubbody}{size = \normalsize}

% color links
% ------------------------------------------------------------------------------
\usepackage{hyperref}
\definecolor{urls}{RGB}{204,0,0}
\hypersetup{colorlinks, citecolor = darkblue, urlcolor = urls}


% additional math commands
% ------------------------------------------------------------------------------
\usepackage{bm}                                         % bold math symbols
\newcommand{\niton}{\not\owns}

% text highlighting
% ------------------------------------------------------------------------------
\usepackage{soul}
\makeatletter
\let\HL\hl
\renewcommand\hl{%
  \let\set@color\beamerorig@set@color
  \let\reset@color\beamerorig@reset@color
  \HL}
\makeatother

% equation highlighting
% -----------------------------------------------------------------------------
\newcommand{\highlight}[2][yellow]{\mathchoice%
  {\colorbox{#1}{$\displaystyle#2$}}%
  {\colorbox{#1}{$\textstyle#2$}}%
  {\colorbox{#1}{$\scriptstyle#2$}}%
  {\colorbox{#1}{$\scriptscriptstyle#2$}}}%

% additional mathematical operators
% ------------------------------------------------------------------------------
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}

\ifLuaTeX
  \usepackage{selnolig}  % disable illegal ligatures
\fi

\begin{document}

\begin{frame}[plain]{}
\protect\hypertarget{section}{}
\center

\begin{center}\includegraphics[width=0.2\linewidth]{6_Abbildungen/pds_6_otto} \end{center}

\vspace{2mm}

\huge

Programmierung und Deskriptive Statistik \vspace{6mm}

\large

BSc Psychologie WiSe 2021/22

\vspace{6mm}
\large

Prof.~Dr.~Dirk Ostwald
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-1}{}
\vfill
\huge
\begin{center}
(6) Datenmanagement
\end{center}
\vfill
\end{frame}

\begin{frame}[plain]{}
\protect\hypertarget{section-2}{}
\small
\center
\footnotesize
\renewcommand{\arraystretch}{1.1}
\begin{tabular}{lll}
Datum        & Einheit                     & Thema                                               \\\hline
14.10.2021   & Einführung                  & (1)  Einführung                                     \\
21.10.2021   & R Grundlagen                & (2)  R und RStudio I                          \\
28.10.2021   & R Grundlagen                & (2)  R und RStudio II                       \\
04.11.2021   & R Grundlagen                & (3)  Vektoren                               \\
11.11.2021   & R Grundlagen                & (4)  Matrizen                               \\
18.11.2021   & R Grundlagen                & (5)  Listen und Dataframes                  
\\
  \textbf{25.11.2021}
& \textbf{Deskriptive Statistik}
& \textbf{(6) Datenmanagement}
\\
02.12.2021   & Deskriptive Statistik       & (7)  Häufigkeitsverteilungen                \\
09.12.2021   & Deskriptive Statistik       & (9)  Verteilungsfunktionen und Quantile     \\
16.12.2021   & Deskriptive Statistik       & (10) Maße der zentralen Tendenz             \\
             & \textcolor{gray}{Weihnachtspause}                                         \\
06.01.2022   & Deskriptive Statistik       & (11) Maße der Datenvariabilität             \\
13.01.2022   & Deskriptive Statistik       & (12) Bivariate Zusammenhangsmaße            \\
20.01.2022   & Deskriptive Statistik       & (13) R Base Graphics                        \\
27.01.2022   & Deskriptive Statistik       & (14) Q \& A                                 \\\hline
25.02.2022   & Klausurtermin               &  G26 – H1, 9:00 - 10:00 Uhr                 \\
Jul 2022     & Klausurwiederholungstermin
\end{tabular}
\end{frame}

\begin{frame}{}
\protect\hypertarget{section-3}{}
\large
\setstretch{3}

FAIR Prinzipien

Datenformate

Verzeichnismanagement

Datenimport und Datenexport

Übungen und Selbstkontrollfragen
\end{frame}

\begin{frame}{}
\protect\hypertarget{section-4}{}
\large
\setstretch{3}

\textbf{FAIR Prinzipien}

Datenformate

Verzeichnismanagement

Datenimport und Datenexport

Übungen und Selbstkontrollfragen
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien}{}
\setstretch{1.3}
\large

\textcolor{darkblue}{Daten} \vspace{.5cm}

\begin{minipage}{.45\linewidth}
\begin{itemize}
\item Zahlenarrays
\item Characterarrays
\item Software
\item Digitale Werkzeuge
\item Workflows
\item Analysispipelines
\item u.v.a.m.
\end{itemize}
\end{minipage}
\begin{minipage}{.4\linewidth}

\begin{center}\includegraphics[width=0.6\linewidth]{6_Abbildungen/pds_6_data} \end{center}
\end{minipage}
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-1}{}
\textcolor{darkblue}{Forschungsdaten} \vspace{.5cm}

``Grundsätzlich handelt es sich bei Forschungsdaten um elektronisch
repräsentierte analoge oder digitale Daten, die im Zuge
wissenschaftlicher Vorhaben entstehen oder genutzt werden, z.B. durch
Beobachtungen, Experimente, Simulationsrechnungen, Erhebungen,
Befragungen, Quellenforschungen, Aufzeichnungen von Audio- und
Videosequenzen, Digitalisierung von Objekten, und
Auswertungen.'''\,'\,'' \vspace{.7cm}

\footnotesize
\flushright

Rat für Informationsinfrastrukturen

\href{https://rfii.de/download/nutzung-und-verwertung-von-daten-im-wissenschaftlichen-raum-september-2021/}{\textcolor{blue}{Empfehlungen zur Nutzung und Verwertung von Daten im wissenschaftlichen Raum  (09/2021)}}

\href{https://www.rfii.de/download/herausforderung-datenqualitaet-november-2019/}{\textcolor{blue}{Herausforderung Datenqualität (11/2019)}}

\href{https://www.rfii.de/download/digitale-kompetenzen-dringend-gesucht/}{\textcolor{blue}{Digitale Kompetenzen – dringend gesucht! (07/2019)}}

\href{https://www.rfii.de/download/rfii-empfehlungen-2017-datenschutz-und-forschungsdaten/}{\textcolor{blue}{Aktuelle Empfehlungen zu Datenschutz und Forschungsdaten (03/2017)}}
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-2}{}
\large

\textcolor{darkblue}{Metadaten} \vspace{2mm}

\large

Metadaten repräsentieren Information über Daten \normalsize \vspace{2mm}

\textbf{Deskriptive Metadaten} dienen dem Auffinden und der
Identifikation einer Datenquelle. Beispiele für deskriptive Metadaten
sind Titel, Abstrakt, Autor:in, oder Keywords einer wissenschaftlichen
Publikationen. \vspace{2mm}

\textbf{Strukturelle Metadaten} sind Metadaten über Datencontainer und
repräsentieren den strukturellen Aufbau einer Datenquelle. Beispiele
sind die Ordnung der Seiten eines Buches, oder die Schleifenenkodierung
dreidimensionaler Datenobjekte. \vspace{2mm}

\textbf{Administrative Metadaten} sind Daten, die das Management einer
Datenquelle erleichtern. Beispiele sind die Provenienz, das Dateiformat,
die Zugangsrechte, oder weitere technische Informationen zu einer
Datenquelle.
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-3}{}
\large

\textcolor{darkblue}{Das FAIR Datenideal} \vspace{1cm}

\begin{center}

\begin{center}\includegraphics[width=0.6\linewidth]{6_Abbildungen/pds_6_fair_datenideal} \end{center}
\vspace{.7cm}

für Menschen und Maschinen
\end{center}
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-4}{}
\large

\textcolor{darkblue}{Ursprünge und Dokumentation} \vspace{5mm}

\normalsize

\href{https://www.dtls.nl/2014/01/20/jointly-designing-data-fairport/}{\textcolor{blue}{„Jointly designing a data fairport“ workshop in Leiden 2014}}
\vspace{5mm}

\href{https://www.force11.org/}{\textcolor{blue}{FORCE11}} \vspace{5mm}

\href{https://www.nature.com/articles/sdata201618}{\textcolor{blue}{Wilkinson et al.(2016) The FAIR Guiding Principles for scientific data management and stewardship Scientific Data 160018}}
\vspace{5mm}

\href{https://www.go-fair.org/fair-principles/}{\textcolor{blue}{go-fair.org/FAIR Principles}}
\vspace{5mm}
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-5}{}
\setstretch{2.4}
\large

\textcolor{darkblue}{Findability (Auffindbarkeit)} \normalsize

F1. (Meta)Daten haben einen persistenten global einzigartigen
Identifikator.

F2. Daten werden mit Metadaten angereichert.

F3. Metadaten sind zweifelsfrei einem Datensatz zuzuordnen.

F4. (Meta)Daten sind in einer durchsuchbaren Ressource indexiert.
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-6}{}
\setstretch{2.4}
\large

\textcolor{darkblue}{Accessibility (Zugänglichkeit)} \normalsize

A1. (Meta)Daten sind mit standardisierten Protokollen abrufbar.

A1.1. Das genutzte Protokoll ist offen, kostenlos und nutzbar.

A1.2. Das Protokoll ermöglicht Authentifizierung und Rechtevergabe.

A2. Metadaten bleiben zugänglich, auch wenn Daten nicht mehr vorliegen.
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-7}{}
\setstretch{2.4}
\large

\textcolor{darkblue}{Interoperability (Interoperabilität)} \justifying
\normalsize

I1. (Meta)Daten nutzen eine formale, zugängliche, gemeinsam genutzte und
breit anwendbare Sprache zur Wissensrepräsentation.

I2. (Meta)Daten nutzen Vokabularien, die den FAIR-Prinzipien folgen.

I3. (Meta)Daten enthalten qualifizierte Referenzen auf andere
(Meta)Daten.
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-8}{}
\setstretch{2.4}
\large

\textcolor{darkblue}{Reusability (Wiederverwendbarkeit)} \justifying
\normalsize

R1. (Meta)Daten haben eine Vielzahl genauer und relevanter Attribute.

R1.1. (Meta)Daten enthalten eine eindeutige Nutzungslizenz.

R1.2. (Meta)Daten enthalten detaillierte Provenienz-Informationen.

R1.3. (Meta)Daten genügen den Standards der jeweiligen Fachcommunity.
\end{frame}

\begin{frame}{FAIR Prinzipien}
\protect\hypertarget{fair-prinzipien-9}{}
\large
\setstretch{2}

\textcolor{darkblue}{Fazit} \vspace{2mm} \small

\begin{itemize}
\tightlist
\item
  Die FAIR Prinzipien sind ein anzustrebendes Datenmanagementideal.
\item
  Der Umgang mit digitalen Forschungsdaten ist oft noch sehr
  unstrukturiert.
\item
  Die Universitäten begreifen das digitale Datenmanagement nur sehr
  langsam.
\item
  Die Digitalisierung bleibt eine gesellschaftliche Hauptaufgabe.
\item
  Die \href{https://www.nfdi.de/}{\textcolor{blue}{NFDI Initiative}}
  versucht, deutsches Wissenschaftsdatenmanagement zu verbessern.
\item
  Beteiligung von OVGU // CBBS an
  \href{https://nfdi-neuro.de/}{\textcolor{blue}{NFDI Neurowissenschaft}}.
\item
  NFDI ist dezentral, community, und Drittmittelprojekt-basiert
  \(\Rightarrow\) Nicht nachhaltig.
\item
  Nicht alle Wissenschaftler:innen wollen ihre Daten organisieren und
  teilen.
\item
  \href{https://en.wikipedia.org/wiki/Open_science}{\textcolor{blue}{Open Science}}
  bleibt eine wichtige Initiative verantwortungsvoller
  Wissenschaftler:innen.
\end{itemize}
\end{frame}

\begin{frame}{}
\protect\hypertarget{section-5}{}
\large
\setstretch{3}

FAIR Prinzipien

\textbf{Datenformate}

Verzeichnismanagement

Datenimport und Datenexport

Übungen und Selbstkontrollfragen
\end{frame}

\begin{frame}{Datenformate}
\protect\hypertarget{datenformate}{}
\setstretch{1.2}

\textcolor{darkblue}{Dateiformate} \small

\begin{itemize}
\tightlist
\item
  Ein Dateiformat definiert Syntax und Semantik von Daten innerhalb
  einer Datei.
\item
  Dateiformate sind bijektive Abbildungen von Information auf binären
  Speicher.
\item
  Allgemein unterscheidet man

  \begin{itemize}
  \tightlist
  \item
    \small Daten- gegenüber Softwareformaten,
  \item
    textuelle gegenüber binären Dateiformaten, und
  \item
    offene gegenüber propietären (urheberrechtlich geschützten)
    Dateiformaten.
  \end{itemize}
\end{itemize}

\textcolor{darkblue}{Binäre Dateiformate}

\begin{itemize}
\tightlist
\item
  Einlesen, Inspektion, und Manipulation ist nur mit spezieller Software
  möglich.
\item
  .pdf, .xlsx, .jpg, .mp4 sind binäre Dateiformate.
\item
  Binäre Dateiformate sind oft propietär.
\item
  Binäre Dateiformate wurden früher aufgrund ihrer kleineren Größe
  bevorzugt eingesetzt.
\end{itemize}

\textcolor{darkblue}{Textuelle Dateiformate}

\begin{itemize}
\tightlist
\item
  Einlesen, Inspektion, und Manipulation ist mit einfachen allgemeinen
  Editoren möglich.
\item
  .txt, .csv., .tsv, .json sind textuelle Dateiformate.
\item
  Textuelle Dateiformate sind generell offene Dateiformate.
\end{itemize}
\end{frame}

\begin{frame}{Datenformate}
\protect\hypertarget{datenformate-1}{}
\textcolor{darkblue}{Binäres Dateiformat} \vspace{1mm}

\begin{center}\includegraphics[width=0.6\linewidth]{6_Abbildungen/pds_6_binäres_dateiformat} \end{center}

\vspace{2mm}

\textcolor{darkblue}{Textuelles Dateiformat} \vspace{1mm}

\begin{center}\includegraphics[width=0.6\linewidth]{6_Abbildungen/pds_6_textuelles_dateiformat} \end{center}
\end{frame}

\begin{frame}{Datenformate}
\protect\hypertarget{datenformate-2}{}
\textcolor{darkblue}{Textuelle Dateiformate $\vert$ CSV} \small

\begin{itemize}
\tightlist
\item
  CSV = Comma- (oder auch character)-separated values, Dateiendung .csv
\item
  Zentrales Format zur Speicherung einfach strukturierter Daten
\item
  Repräsentation zeilenweise miteinander verknüpfter Datensätze

  \begin{itemize}
  \tightlist
  \item
    \small Trennung von Datenfeldern (Spalten) durch Komma oder Tab
    (TSV, .tsv)
  \item
    Trennung von Datensätzen (Zeilen) durch Zeilenumbruch
  \end{itemize}
\item
  Erster Datensatz typischerweise Kopfdatensatz (Header) mit
  Spaltennamendefinition \vspace{1mm}
\end{itemize}

Beispiel

\begin{itemize}
\tightlist
\item
  Einheit (experimental unit) repräsentiert z.B. eine Versuchsperson
  \vspace{3mm}
\end{itemize}

\begin{minipage}{.07\linewidth}
$\quad$
\end{minipage}
\begin{minipage}{.4\linewidth}
\small
\begin{center}
.csv Dateiinhalt
\end{center}

Einheit, Variable 1, Variable 2

1, 10.1, 67.5

2, 12.9, 51.2

3, 20.4, 70.8


\end{minipage}
\begin{minipage}{.4\linewidth}
\small
\begin{center}
Tabellenrepräsentation
\vspace{1mm}

\begin{tabular}{l|ll}
\hline
Einheit & Variable 1 & Variable 2 \\
\hline
1 & 10.1 & 67.5 \\
2 & 12.9 & 51.2 \\
3 & 20.4 & 70.8 \\
\hline
\end{tabular}
\end{center}
\end{minipage}
\end{frame}

\begin{frame}{Datenformate}
\protect\hypertarget{datenformate-3}{}
\textcolor{darkblue}{Textuelle Dateiformate $\vert$ CSV} \vspace{2mm}
\normalsize

\textbf{Wide Format}: Alle Variablen einer Einheit in einer Zeile

\small
\begin{center}
\begin{tabular}{l|ll}
\hline
Einheit & Variable 1 & Variable 2 \\
\hline
1 & 10.1 & 67.5 \\
2 & 12.9 & 51.2 \\
3 & 20.4 & 70.8 \\
\hline
\end{tabular}
\end{center}

\normalsize
\vspace{3mm}

\textbf{Long Format}: Variablen einer Einheit über Zeilen verteilt

\small
\begin{center}
\begin{tabular}{l|ll}
\hline
Einheit & Variable  & Messwert \\
\hline
1 & Variable 1 & 10.1 \\
1 & Variable 2 & 67.5 \\
2 & Variable 1 & 12.9 \\
2 & Variable 2 & 51.2 \\
3 & Variable 1 & 20.4 \\
3 & Variable 2 & 70.8 \\
\hline
\end{tabular}
\end{center}
\vspace{1mm}

Das Wide Format ist generell übersichtlicher als das Long Format
\end{frame}

\begin{frame}{Datenformate}
\protect\hypertarget{datenformate-4}{}
\textcolor{darkblue}{Textuelle Dateiformate $\vert$ JSON} \setstretch{2}

Übersicht

\small

\begin{itemize}
\tightlist
\item
  JSON = JavaScript Object Notation
\item
  Textuelles Datenformat zum Speichern strukturierter Daten in Key-Value
  Form.
\item
  Ähnlichkeit mit R Listen mit benannten Listenelementen.
\item
  Sinnvolles Format für das Speichern von Metadaten.
\end{itemize}

\normalsize

Elemente von JSON Dateien

\small

\begin{itemize}
\tightlist
\item
  \emph{Objekte} enthalten durch Kommata geteilte Liste von
  \emph{Eigenschaften} in \{ \}
\item
  \emph{Eigenschaften} bestehen aus Key-Value Paaren
\item
  \emph{Key} ist immer ein String mit Hochkommata `` '\,'
\item
  \emph{Value} ist ein Objekt, ein Array, ein String, ein Boolean, oder
  eine Zahl
\end{itemize}
\end{frame}

\begin{frame}{Datenformate}
\protect\hypertarget{datenformate-5}{}
\setstretch{1.2}

\textcolor{darkblue}{Textuelle Dateiformate $\vert$ JSON} \vspace{1mm}

\small

Beispiel \vspace{1mm}

\{

    $\quad\quad$ ``Vorname''            : ``Maxi'',

    $\quad\quad$ ``Nachname''           : ``Musterfrau'',

    $\quad\quad$ ``Matrikelnummer''     : 12345,

    $\quad\quad$ ``Fachsemester''       : 2,

    $\quad\quad$ ``Studiengang''        : ``BSc Psychologie'',

    $\quad\quad$ ``Module'' :

    $\quad\quad$ \{

    $\quad\quad\quad\quad$  ``Deskriptive Statistik'' : \{``Abgeschlossen"'' : TRUE,  ``Note''  : 1.0 \},

    $\quad\quad\quad\quad$  ``Inferenzstatistik'' : \{``Abgeschlossen'' : FALSE, ``Note'': NA \}

    $\quad\quad$ \}

\}
\end{frame}

\begin{frame}{}
\protect\hypertarget{section-6}{}
\large
\setstretch{3}

FAIR Prinzipien

Datenformate

\textbf{Verzeichnismanagement}

Datenimport und Datenexport

Übungen und Selbstkontrollfragen
\end{frame}

\begin{frame}[fragile]{Verzeichnismanagement}
\protect\hypertarget{verzeichnismanagement}{}
\textcolor{darkblue}{Arbeiten mit Strings} \footnotesize

Die Grundeinheit für Text in R sind atomic vectors vom Typ character.

Die Elemente von character vectors sind strings, nicht einzelne
characters.

Der Begriff ``String'' in R ist also nur informeller Natur.

\vspace{2mm}

Strings werden mit Anführungszeichen oder Hochkommata erzeugt

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{c}\NormalTok{(}\StringTok{"Dies ist ein character vector"}\NormalTok{)  }\CommentTok{\# Anfuehrungszeichen sind  der String Standard}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "Dies ist ein character vector"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{c}\NormalTok{(}\StringTok{\textquotesingle{}Dies ist ein "string"\textquotesingle{}}\NormalTok{)          }\CommentTok{\# Hochkommata koennen bei  Anfuehrungszeichen im String helfen}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "Dies ist ein \"string\""
\end{verbatim}

\texttt{paste()} konvertiert Vektoren in character und fügt sie
elementweise zusammen.

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{paste}\NormalTok{(}\DecValTok{1}\NormalTok{,}\DecValTok{2}\NormalTok{)                          }\CommentTok{\# Konvertierung und Konkatenation .einelementiger double vectors}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "1 2"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{paste}\NormalTok{(}\StringTok{"Dies ist"}\NormalTok{, }\StringTok{"ein String"}\NormalTok{)     }\CommentTok{\# Konkatenation einelementiger character strings}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "Dies ist ein String"
\end{verbatim}
\end{frame}

\begin{frame}[fragile]{Verzeichnismanagement}
\protect\hypertarget{verzeichnismanagement-1}{}
\setstretch{1.1}

\textcolor{darkblue}{Arbeiten mit Strings} \footnotesize

\texttt{paste()} hat eine Reihe von weiteren Funktionalitäten

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{paste}\NormalTok{(}\FunctionTok{c}\NormalTok{(}\StringTok{"Rote"}\NormalTok{, }\StringTok{"Gelbe"}\NormalTok{), }\StringTok{"Blume"}\NormalTok{)                   }\CommentTok{\# Vector recylcing, elementweise Veknuepfungen}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "Rote Blume"  "Gelbe Blume"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{paste}\NormalTok{(}\FunctionTok{c}\NormalTok{(}\StringTok{"Rote"}\NormalTok{, }\StringTok{"Gelbe"}\NormalTok{), }\StringTok{"Blume"}\NormalTok{,  }\AttributeTok{sep =} \StringTok{"{-}"}\NormalTok{)       }\CommentTok{\# Separatorspezifkation}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "Rote-Blume"  "Gelbe-Blume"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{paste}\NormalTok{(}\FunctionTok{c}\NormalTok{(}\StringTok{"Rote"}\NormalTok{, }\StringTok{"Gelbe"}\NormalTok{), }\StringTok{"Blume"}\NormalTok{,  }\AttributeTok{collapse =} \StringTok{", "}\NormalTok{) }\CommentTok{\# Zusammenfuegen mit spezifiziertem  Separator}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "Rote Blume, Gelbe Blume"
\end{verbatim}

`\texttt{toString()} ist eine \texttt{paste()} Variation für numerische
Vektoren

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{toString}\NormalTok{(}\DecValTok{1}\SpecialCharTok{:}\DecValTok{10}\NormalTok{)                       }\CommentTok{\# Konversion eines double Vektors in formatierten String}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{toString}\NormalTok{(}\DecValTok{1}\SpecialCharTok{:}\DecValTok{10}\NormalTok{, }\AttributeTok{width =} \DecValTok{10}\NormalTok{)           }\CommentTok{\# mit  Moeglichkeit der Beschraenkung auf width Zeichen }
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "1, 2, ...."
\end{verbatim}
\end{frame}

\begin{frame}[fragile]{Verzeichnismanagement}
\protect\hypertarget{verzeichnismanagement-2}{}
\textcolor{darkblue}{Dateipfade} \vspace{1mm}

\setstretch{1.8}

\begin{itemize}
\tightlist
\item
  \small \justifying Daten sind üblicherweise in Dateien im permanenten
  Speicher (SSD, HD) abgelegt
\item
  Zum Dateneinlesen benötig man ihre Addresse in der Verzeichnisstruktur
  des Rechners.
\item
  Die Addressen von Dateien in der Verzeichnisstruktur heißen
  \textit{Dateipfade}.
\item
  Ein Pfad besteht aus einer durch Schrägstriche getrennten Liste von
  Verzeichnisnamen.
\end{itemize}

\footnotesize

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{D}\SpecialCharTok{:}\NormalTok{\textbackslash{}Lehre\textbackslash{}Daten              Pfad der auf einem Verzeichnisnamen endet }
\NormalTok{D}\SpecialCharTok{:}\NormalTok{\textbackslash{}Lehre\textbackslash{}Daten\textbackslash{}cushny.csv   Pfad der auf einem Dateinamen endet }
\end{Highlighting}
\end{Shaded}

\begin{itemize}
\tightlist
\item
  \small \justifying \textit{Relative Dateipfade} bezieht sich auf einen
  Speicherort in Relation zum aktuellen Verzeichnis.
\item
  Bei relativen Dateipfaden bezeichnen . und .. aktuelles und
  übergeordnetes Verzeichnis.
\item
  \textit{Absolute Dateipfade} gegeben die Addresse in der
  Gesamtverzeichnisstruktur der Festplatte an.
\item
  Absolute Dateipfade sind weniger anfällig für Dateiverwechselungen.
\item
  Die Verwendung adaptiv generierter absoluter Pfade wird stark
  empfohlen.
\end{itemize}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{fname }\OtherTok{=}  \StringTok{"D:\textbackslash{}Lehre\textbackslash{}Daten\textbackslash{}cushny.csv"}       \CommentTok{\# Dateiname in absoluter Pfadform  }
\end{Highlighting}
\end{Shaded}
\end{frame}

\begin{frame}[fragile]{Verzeichnismanagement}
\protect\hypertarget{verzeichnismanagement-3}{}
\textcolor{darkblue}{Working directory} \vspace{1mm}

\small

R hat ein working directory aus dem per default Dateien gelesen werden.

In RStudio wird das working directory unter Tools \(\rightarrow\) Global
Options \ldots{} spezifiziert.

\vspace{2mm}

\texttt{getwd()} gibt das working directory an.

\footnotesize

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{getwd}\NormalTok{()}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "D:/Forschung und Lehre/Lehre/2022/3_Programmierung_und_Deskriptive_Statistik_21_22/6_Datenmanagement"
\end{verbatim}

\small
\vspace{3mm}

\texttt{setwd()} ändert das working directory

\begin{itemize}
\begin{small}
\item[o] Windowspfade haben backward slashes \textbackslash, R arbeitet mit forward slashes $/$.
\item[o] Manuelle Spezifikation von Windowspfaden benötigt doppelte backward slashes \textbackslash\textbackslash.
\end{small}
\end{itemize}

\footnotesize

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{setwd}\NormalTok{(}\StringTok{"D:}\SpecialCharTok{\textbackslash{}\textbackslash{}}\StringTok{Google Drive}\SpecialCharTok{\textbackslash{}\textbackslash{}}\StringTok{Lehre}\SpecialCharTok{\textbackslash{}\textbackslash{}}\StringTok{2022"}\NormalTok{)}
\FunctionTok{getwd}\NormalTok{()}
\end{Highlighting}
\end{Shaded}
\end{frame}

\begin{frame}[fragile]{Verzeichnismanagement}
\protect\hypertarget{verzeichnismanagement-4}{}
\textcolor{darkblue}{Dateipfadspezifikation}

\small

\texttt{file.path()} konstruiert Verzeichnis- und Dateipfade.

\footnotesize

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{file.path}\NormalTok{(}\StringTok{"D:"}\NormalTok{, }\StringTok{"Google Drive"}\NormalTok{, }\StringTok{"Lehre"}\NormalTok{, }\StringTok{"2022"}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "D:/Google Drive/Lehre/2022"
\end{verbatim}

\vspace{2mm}
\small

\texttt{dirname()}gibt das Verzeichnis an, das ein Verzeichnis oder eine
Datei enthält.

\footnotesize

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{getwd}\NormalTok{()}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "D:/Forschung und Lehre/Lehre/2022/3_Programmierung_und_Deskriptive_Statistik_21_22/6_Datenmanagement"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{dirname}\NormalTok{(}\FunctionTok{getwd}\NormalTok{())}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "D:/Forschung und Lehre/Lehre/2022/3_Programmierung_und_Deskriptive_Statistik_21_22"
\end{verbatim}

\vspace{2mm}
\small

\texttt{basename()} gibt die unterste Ebene eines Datei- oder
Verzeichnispfades an.

\footnotesize

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{getwd}\NormalTok{()}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "D:/Forschung und Lehre/Lehre/2022/3_Programmierung_und_Deskriptive_Statistik_21_22/6_Datenmanagement"
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{basename}\NormalTok{(}\FunctionTok{getwd}\NormalTok{())}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
> [1] "6_Datenmanagement"
\end{verbatim}
\end{frame}

\begin{frame}{Verzeichnismanagement}
\protect\hypertarget{verzeichnismanagement-5}{}
\textcolor{darkblue}{RStudio Projekte} \small \setstretch{1.8}

\begin{itemize}
\tightlist
\item
  Um die Arbeit mit R's Working Directory zu erleichtern bietet RStudio
  ``Projekte'' an
\item
  Die
  \href{https://support.rstudio.com/hc/en-us/articles/200526207-Using-RStudio-Projects}{RStudio
  Dokumentation} gibt eine Einführung
\item
  RStudio Projekte können unter File \(\rightarrow\) New Project
  \ldots{} erzeugt werden
\item
  RStudio Projekte bieten unter anderem folgende Funktionalitäten

  \begin{itemize}
  \begin{small}
  \item[o] Im Projektverzeichnis wird eine Projektdatei (.Rproj) erstellt.
  \item[o] Die Projektdatei enthält Projekt-spezifische Metadaten.
  \item[o] Die Projektdatei kann zum Öffen von RStudio und des Projektes benutzt werden.
  \item[o] Bei Öffnung eines Projektes über die Projektdatei werden
  \begin{itemize}
  \begin{small}
  \item das Projektverzeichnis zum Working Directory,
  \item zuvor geöffnete Programmdateien im Editor geöffnet und
  \item weitere RStudio Settings auf ihren Projekt-aktuellen Zustand gesetzt.
  \end{small}
  \end{itemize}
  \end{small}
  \end{itemize}
\end{itemize}

\normalsize

\textcolor{darkblue}{$\Rightarrow$ Die Arbeit mit RStudio Projekten für Sinneinheiten wird sehr empfohlen!}
\end{frame}

\begin{frame}{}
\protect\hypertarget{section-7}{}
\large
\setstretch{3}

FAIR Prinzipien

Datenformate

Verzeichnismanagement

\textbf{Datenimport und Datenexport}

Übungen und Selbstkontrollfragen
\end{frame}

\begin{frame}[fragile]{Datenimport und Datenexport}
\protect\hypertarget{datenimport-und-datenexport}{}
\textcolor{darkblue}{Datenimport mit read.table()} \small

\texttt{read.table()} ist die zentrale Funktion zum Einlesen von CSV
Dateien.

\texttt{read.table()} liest eine Datei ein und speichert ihre Inhalte in
einem Dataframe.

\texttt{read.table()} bietet eine Vielzahl weiterer
Spezifikationsmöglichkeiten

\vspace{2mm}
\tiny

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{wdir    }\OtherTok{=} \FunctionTok{getwd}\NormalTok{()                     }\CommentTok{\# Working directory}
\NormalTok{ddir    }\OtherTok{=} \FunctionTok{file.path}\NormalTok{(wdir, }\StringTok{"6\_Data"}\NormalTok{)   }\CommentTok{\# Datenverzeichnispfad}
\NormalTok{fname   }\OtherTok{=} \StringTok{"cushny.csv"}                \CommentTok{\# (base) filename}
\NormalTok{fpath   }\OtherTok{=} \FunctionTok{file.path}\NormalTok{(ddir, fname)      }\CommentTok{\# filepath }
\NormalTok{D       }\OtherTok{=} \FunctionTok{read.table}\NormalTok{(fpath)           }\CommentTok{\# Einlesen der Datei}
\FunctionTok{print}\NormalTok{(D)}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
>    Control drug1 drug2L drug2R delta1 delta2L delta2R
> 1      0.6   1.3    2.5    2.1    0.7     1.9     1.5
> 2      3.0   1.4    3.8    4.4   -1.6     0.8     1.4
> 3      4.7   4.5    5.8    4.7   -0.2     1.1     0.0
> 4      5.5   4.3    5.6    4.8   -1.2     0.1    -0.7
> 5      6.2   6.1    6.1    6.7   -0.1    -0.1     0.5
> 6      3.2   6.6    7.6    8.3    3.4     4.4     5.1
> 7      2.5   6.2    8.0    8.2    3.7     5.5     5.7
> 8      2.8   3.6    4.4    4.3    0.8     1.6     1.5
> 9      1.1   1.1    5.7    5.8    0.0     4.6     4.7
> 10     2.9   4.9    6.3    6.4    2.0     3.4     3.5
\end{verbatim}
\end{frame}

\begin{frame}[fragile]{Datenimport und Datenexport}
\protect\hypertarget{datenimport-und-datenexport-1}{}
\setstretch{1.2}

\textcolor{darkblue}{Datenimport mit read.table()}

\small

Einige weitere Spezifikationen bei Anwendung von \texttt{read.table()}
sind

\begin{itemize}
\tightlist
\item
  \texttt{sep} für die Auswahl des Separators
\item
  \texttt{dec} für die Auswahl des Dezimalpunktes
\item
  \texttt{nrow} für die Anzahl der einzulesenden Zeilen
\item
  \texttt{skip} für die Anzahl der am Anfang der Datei zu
  überspringenden Zeilen
\end{itemize}

\footnotesize

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{D }\OtherTok{=} \FunctionTok{read.table}\NormalTok{(}\FunctionTok{file.path}\NormalTok{(fpath), }\AttributeTok{nrow =} \DecValTok{2}\NormalTok{)}
\FunctionTok{print}\NormalTok{(D)}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
>   Control drug1 drug2L drug2R delta1 delta2L delta2R
> 1     0.6   1.3    2.5    2.1    0.7     1.9     1.5
> 2     3.0   1.4    3.8    4.4   -1.6     0.8     1.4
\end{verbatim}

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{D }\OtherTok{=} \FunctionTok{read.table}\NormalTok{(fpath, }\AttributeTok{skip =} \DecValTok{7}\NormalTok{)}
\FunctionTok{print}\NormalTok{(D)}
\end{Highlighting}
\end{Shaded}

\begin{verbatim}
>   V1  V2  V3  V4  V5  V6  V7  V8
> 1  7 2.5 6.2 8.0 8.2 3.7 5.5 5.7
> 2  8 2.8 3.6 4.4 4.3 0.8 1.6 1.5
> 3  9 1.1 1.1 5.7 5.8 0.0 4.6 4.7
> 4 10 2.9 4.9 6.3 6.4 2.0 3.4 3.5
\end{verbatim}
\end{frame}

\begin{frame}[fragile]{Datenimport und Datenexport}
\protect\hypertarget{datenimport-und-datenexport-2}{}
\setstretch{1.1}

\textcolor{darkblue}{Import interner R Datensätze}

\footnotesize

R und R packages beinhalten eine Vielzahl von Beispieldatensätzen

Die Core R Datensätze werden aus der R Konsole mit \texttt{data()}
angezeigt.

Die Datensätze in Paket P werden mit \texttt{data(package\ =\ \ "P")}
angezeigt.

\vspace{1mm}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{install.packages}\NormalTok{(}\StringTok{"psychTools"}\NormalTok{)  }\CommentTok{\# Installation des Pakets psychTools}
\FunctionTok{data}\NormalTok{(}\AttributeTok{package =} \StringTok{"psychTools"}\NormalTok{)    }\CommentTok{\# Anzeige der psychTools Datensaetze}
\end{Highlighting}
\end{Shaded}

\begin{center}\includegraphics[width=1\linewidth]{6_Abbildungen/pds_6_r_datasets} \end{center}

Alle Datensätze werden mit \texttt{data(package\ =\ .packages(TRUE))}
angezeigt.

Nach Installation und Laden eines Pakets werden Datensätze mit
\texttt{data()} geladen.

\vspace{1mm}

\begin{Shaded}
\begin{Highlighting}[]
\FunctionTok{library}\NormalTok{(psychTools)             }\CommentTok{\# Laden des Paktes psychTools}
\FunctionTok{data}\NormalTok{(cushny)                    }\CommentTok{\# Laden des cushny Datensatzes aus psychTools}
\end{Highlighting}
\end{Shaded}
\end{frame}

\begin{frame}[fragile]{Datenimport und Datenexport}
\protect\hypertarget{datenimport-und-datenexport-3}{}
\textcolor{darkblue}{Beispiele für weitere Möglichkeiten des Datenimports}
\setstretch{1.6}

CSV und Text Dateien

\begin{itemize}
\tightlist
\item
  \small \texttt{read.csv()}, \texttt{read.csv2()},
  \texttt{read.delim()}, \texttt{read.delim2()} als
  \texttt{read.table()} Varianten.
\item
  \texttt{readlines} für low-level Textdateiimport.
\item
  \texttt{fromJSON()} aus dem Paket \texttt{rjson} für .json Dateien.
\end{itemize}

\vspace{2mm}

Binäre Dateien

\begin{itemize}
\tightlist
\item
  \small \texttt{read.xlsx()} und \texttt{read.xlsx2()} aus dem Paket
  \texttt{xlsx} für Excel .xlsx Dateien.
\item
  \texttt{read.spss()} aus dem Paket \texttt{foreign} für SPSS .sav
  Dateien.
\item
  \texttt{readMat} aus dem Paket \texttt{R.matlab} für Matlab .mat
  Dateien.
\end{itemize}

\vspace{2mm}

Webdaten und Datenbanken

\begin{itemize}
\tightlist
\item
  \small Twitterdaten können mithilfe der Pakete \texttt{rtweet} oder
  \texttt{twitteR} eingelesen werden.
\item
  SQL Datenbanken können mithilfe der Pakete \texttt{DBI} und
  \texttt{RSQLite} abgefragt werden.
\end{itemize}
\end{frame}

\begin{frame}[fragile]{Datenimport und Datenexport}
\protect\hypertarget{datenimport-und-datenexport-4}{}
\setstretch{1.1}

\textcolor{darkblue}{Datenexport mit write.table()} \vspace{1mm}
\footnotesize

\texttt{write.table()} ist die zentrale Funktion zum Speichern von Daten
in CSV Dateien.

\texttt{write.table()} erzeugt eine Datei und schreibt Daten eines
Dataframes hinein.

Der Dateiname wird mit dem Argument \texttt{file} angegeben, der
Werteseparator mit \texttt{sep}

Das Argument \texttt{row.names\ =\ FALSE} unterdrückt das Schreiben von
Zeilennahmen

\begin{Shaded}
\begin{Highlighting}[]
\NormalTok{fname       }\OtherTok{=} \StringTok{"cushny.csv"}                          \CommentTok{\# Dateiname (input)}
\NormalTok{rname         }\OtherTok{=} \StringTok{"student.csv"}                         \CommentTok{\# Dateiname (output)}
\NormalTok{D           }\OtherTok{=} \FunctionTok{read.table}\NormalTok{(}\FunctionTok{file.path}\NormalTok{(ddir, fname))    }\CommentTok{\# Dateneinlesen}
\NormalTok{D           }\OtherTok{=}\NormalTok{ D[,}\DecValTok{5}\SpecialCharTok{:}\DecValTok{6}\NormalTok{]                               }\CommentTok{\# Reduktion des Dataframes}
\NormalTok{R           }\OtherTok{=} \FunctionTok{write.table}\NormalTok{(                          }\CommentTok{\# .csv Schreibfunktion}
\NormalTok{                D,                                  }\CommentTok{\# Zu speichernder Dataframe}
                \AttributeTok{file =} \FunctionTok{file.path}\NormalTok{(ddir, rname),      }\CommentTok{\# Dateinname}
                \AttributeTok{sep =} \StringTok{","}\NormalTok{,                          }\CommentTok{\# Werteseparator fuer .csv}
                \AttributeTok{row.names =}\NormalTok{ F)                      }\CommentTok{\# keine Zeilennamen}
\end{Highlighting}
\end{Shaded}

Ergebnisdatei student.csv

\begin{center}\includegraphics[width=0.3\linewidth]{6_Abbildungen/pds_6_writetable} \end{center}
\end{frame}

\begin{frame}{}
\protect\hypertarget{section-8}{}
\large
\setstretch{3}

FAIR Prinzipien

Datenformate

Verzeichnismanagement

Datenimport und Datenexport

\textbf{Übungen und Selbstkontrollfragen}
\end{frame}

\begin{frame}{Übungen und Selbstkontrollfragen}
\protect\hypertarget{uxfcbungen-und-selbstkontrollfragen}{}
\setstretch{1.6}
\small
\begin{enumerate}
\justifying
\item Dokumentieren Sie die in dieser Einheit eingeführten R Befehle in einem R Skript.
\item Erläutern Sie den Begriff ``Forschungsdaten''.
\item Erläutern Sie den Begriff ``Metadaten''.
\item Erläutern Sie das FAIR Datenideal.
\item Diskutieren Sie Unterschiede und Gemeinsamkeiten von binären und textuellen Dateien.
\item Nennen und erläutern Sie zwei textuelle Dateiformate.
\item Erläutern Sie den Unterschied zwischen dem Wide und Long Format von Tabellen.
\item Erläutern Sie den Unterschied zwischen absoluten und relativen Dateipfaden.
\item Erläutern Sie den Begriff des ``Working Directories'' in R.
\item Beschreiben Sie die Funktion von RStudio Projekten.
\item Nennen Sie eine R Funktion zum Einlesen von .csv Dateien.
\item Nennen Sie eine R Funktion zum Schreiben von .csv Dateien.
\end{enumerate}
\end{frame}

\end{document}
