class: center, middle, inverse, title-slide # Data IO ### Einführung in die moderne Datenanalyse mit R
Basel R Bootcamp
### März 2020 --- layout: true <div class="my-footer"> <span style="text-align:center"> <span> <img src="https://raw.githubusercontent.com/therbootcamp/therbootcamp.github.io/master/_sessions/_image/by-sa.png" height=14 style="vertical-align: middle"/> </span> <a href="https://therbootcamp.github.io/"> <span style="padding-left:82px"> <font color="#7E7E7E"> www.therbootcamp.com </font> </span> </a> <a href="https://therbootcamp.github.io/"> <font color="#7E7E7E"> Einführung in die moderne Datenanalyse mit R | März 2020 </font> </a> </span> </div> --- # Agenda .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span><high>Data I/O</high></a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span>3 + 1 Datentypen</span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ <p align = "center"> <img src="image/fixing.png"><br> <font style="font-size:10px">from <a href="https://xkcd.com//">xkcd.com</a></font> </p> ] --- # Daten von Festplatte lesen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span><high>Daten von Festplatte lesen</high></span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span>3 + 1 Datentypen</span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Lese Daten ein read.csv('1_Data/Tourismus.csv') ``` ``` ## Land Region Jahr Besucher Dauer ## 1 Belgien Europa 2018 920 1.727 ## 2 Bulgarien Europa 2018 138 2.101 ## 3 Dänemark Europa 2018 301 1.827 ## 4 Deutschland Europa 2018 10564 1.709 ## 5 Estland Europa 2018 24 2.125 ## 6 Finnland Europa 2018 130 2.008 ## 7 Frankreich Europa 2018 3401 1.555 ## 8 Griechenland Europa 2018 195 2.651 ## 9 Irland Europa 2018 374 2.332 ## 10 Island Europa 2018 32 1.781 ## [ reached 'max' / getOption("max.print") -- omitted 61 rows ] ``` ] --- # Daten von Festplatte lesen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span><high>Daten von Festplatte lesen</high></span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span>3 + 1 Datentypen</span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Lese Daten in ein Objekt ein daten <- read.csv('1_Data/Tourismus.csv') # Printe Daten daten ``` ``` ## Land Region Jahr Besucher Dauer ## 1 Belgien Europa 2018 920 1.727 ## 2 Bulgarien Europa 2018 138 2.101 ## 3 Dänemark Europa 2018 301 1.827 ## 4 Deutschland Europa 2018 10564 1.709 ## 5 Estland Europa 2018 24 2.125 ## 6 Finnland Europa 2018 130 2.008 ## 7 Frankreich Europa 2018 3401 1.555 ## 8 Griechenland Europa 2018 195 2.651 ## 9 Irland Europa 2018 374 2.332 ## 10 Island Europa 2018 32 1.781 ## [ reached 'max' / getOption("max.print") -- omitted 61 rows ] ``` ] --- # Daten von Festplatte lesen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span><high>Daten von Festplatte lesen</high></span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span>3 + 1 Datentypen</span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ <p align = "center"> <img src="image/autocompl1.png"> </p> ] --- # Daten von Festplatte lesen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span><high>Daten von Festplatte lesen</high></span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span>3 + 1 Datentypen</span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ <p align = "center"> <img src="image/autocompl2a.png"> </p> ] --- # Daten von Festplatte lesen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span><high>Daten von Festplatte lesen</high></span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span>3 + 1 Datentypen</span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ <p align = "center"> <img src="image/autocompl2b.png"> </p> ] --- # Daten leben in <mono>data.frames</mono> .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span><high>Daten leben in <mono>data.frames</span></high></li> <li><span>3 + 1 Datentypen</span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Lese Daten in ein Objekt ein daten <- read.csv('1_Data/Tourismus.csv') # Klasse der Daten class(daten) ``` ``` ## [1] "data.frame" ``` ```r dim(daten) # Dimensionen ``` ``` ## [1] 71 5 ``` ```r names(daten) # Variablennamen ``` ``` ## [1] "Land" "Region" "Jahr" ## [4] "Besucher" "Dauer" ``` ] --- # 3 + 1 Datentypen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span><high>3 + 1 Datentypen</high></span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ <p align = "center"> <img src="image/types.png"><br> </p> ] --- # 3 + 1 Datentypen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span><high>3 + 1 Datentypen</high></span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Lese Daten in ein Objekt ein daten <- read.csv('1_Data/Tourismus.csv') # Extrahiere Land mit $ daten$Land ``` ``` ## [1] Belgien Bulgarien ## [3] Dänemark Deutschland ## [5] Estland Finnland ## [7] Frankreich Griechenland ## [9] Irland Island ## [11] Italien Kroatien ## [13] Lettland Liechtenstein ## [15] Litauen Luxemburg ## [17] Malta Niederlande ## [19] Norwegen Österreich ## [ reached getOption("max.print") -- omitted 51 entries ] ## 71 Levels: Ägypten ... Zypern ``` ] --- # 3 + 1 Datentypen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span><high>3 + 1 Datentypen</high></span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Lese Daten in ein Objekt ein daten <- read.csv('1_Data/Tourismus.csv') # Klasse der Land Variable class(daten$Land) ``` ``` ## [1] "factor" ``` ] --- # 3 + 1 Datentypen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span><high>3 + 1 Datentypen</high></span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Lese Daten in ein Objekt ein daten <- read.csv('1_Data/Tourismus.csv', stringsAsFactors = FALSE) # Klasse der Land Variable class(daten$Land) ``` ``` ## [1] "character" ``` ```r # Extrahiere Land mit $ daten$Land ``` ``` ## [1] "Belgien" "Bulgarien" ## [3] "Dänemark" "Deutschland" ## [5] "Estland" "Finnland" ## [7] "Frankreich" "Griechenland" ## [ reached getOption("max.print") -- omitted 63 entries ] ``` ] --- # 3 + 1 Datentypen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span><high>3 + 1 Datentypen</high></span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Lese Daten in ein Objekt ein daten <- read.csv('1_Data/Tourismus.csv') # Extrahiere Dauer mit $ daten$Dauer ``` ``` ## [1] 1.727 2.101 1.827 1.709 2.125 2.008 ## [7] 1.555 2.651 2.332 1.781 1.815 1.764 ## [13] 2.154 1.618 1.710 1.497 1.727 1.692 ## [19] 2.585 1.887 2.235 1.816 2.020 2.297 ## [25] 1.753 2.568 3.034 2.283 1.834 2.280 ## [31] 2.116 2.602 2.368 2.006 3.417 2.591 ## [37] 2.046 2.384 2.582 2.564 2.934 2.479 ## [43] 3.220 2.722 2.556 2.585 2.174 3.149 ## [49] 3.329 2.000 2.058 1.957 3.565 1.845 ## [55] 2.721 2.497 9.533 1.638 1.571 2.392 ## [61] 2.250 2.690 2.678 3.620 1.934 2.397 ## [67] 3.063 2.679 4.109 2.216 2.750 ``` ] --- # 3 + 1 Datentypen .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span><high>3 + 1 Datentypen</high></span></li> <li><span>Daten auf die Festplatte schreiben</span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Lese Daten in ein Objekt ein daten <- read.csv('1_Data/Tourismus.csv') # Extrahiere Dauer mit $ class(daten$Dauer) ``` ``` ## [1] "numeric" ``` ] --- # Daten auf die Festplatte schreiben .pull-left4[ <ul> <li class="m1g"><span>R(Studio)</span></li> <li class="m2g"><span>Assignments<br></span></li> <li class="m3g"><span>Funktionen</span></li> <li class="m4"><span>Data I/O</a></span></li> <ul class="level"> <li><span>Daten von Festplatte lesen</span></li> <li><span>Daten leben in <mono>data.frames</span></li> <li><span>3 + 1 Datentypen</span></li> <li><span><high>Daten auf die Festplatte schreiben</high></span></li> </ul><br> <li class="m5g"><span>Analyse</span></li> </ul> ] .pull-right5[ ```r # Schreibe Daten auf die Festplatte als csv write.csv(daten, '1_Data/Tourismus_neu.csv') # Schreibe Daten auf die Festplatte als RDS saveRDS(daten, '1_Data/Tourismus_neu.RDS') ``` ] --- class: middle, center <h1><high>Interactive</high></h1>