-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprak-13.Rmd
121 lines (73 loc) · 4.14 KB
/
prak-13.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
---
title: "Praktikum 13 - SQL Datenbanken"
subtitle: "Zusatzmaterial"
author: ""
date: ""
output:
html_document:
toc: true
toc_float: true
editor_options:
chunk_output_type: console
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)
```
# Übungen - SQL Befehle in R
In R Markdown Dokumenten kann Code aus verschiedenen Programmiersprachen ausgeführt werden. Dies wird mittels der Code-chunks gesteuert und es erlaubt Nutzer_innen die Effizienz von SQL Datenbanken mit den Stärken von R zu verbinden.
## Übung 0 - Verbindung zu einer Datenbank herstellen
In dieser Übung nutzen wir die Verbindung zu einer Datenbank welche ich mittels des folgenden Codes erstellt habe. In der Praxis wird hier die Verbindung zu der Datenbank erstellt, welche von der Verwaltungseinheit gepflegt wird.
Der Name des Objektes mit der Verbindung zur Datenbank ist hier `con`, es kann jedoch ein beliebiger Name gewählt werden.
```{r}
library(DBI)
library(dplyr)
library(dbplyr)
library(palmerpenguins)
con <- DBI::dbConnect(RSQLite::SQLite(), ":memory:")
```
## Übung 1 - Tabellen in einer Datenbank erkunden
Ich habe auch mittels des folgenden Codes den `penguins` Datensatz aus dem `palmerpenguins` package in die Datenbank kopiert. Die Tabelle ist jetzt in unserer Datenbank hinterlegt.
1. Führe den Code-chunk aus
```{r}
copy_to(con, penguins)
```
2. Führe den Befehl `dbListTables(con)` im folgenden R Code-chunk aus
3. Führe den Befehl `dbListFields(con, "penguins)` im folgenden R Code-chunk us
```{r}
```
## Übung 2 - SQL Code-chunk einfügen
1. Klicke auf das kleine grüne C+ im oberen Bereich des Fensters. Ein Dropdown Menü öffnet sich.
2. Klicke auf das SQL Symbol
3. Füge das Objekt `con` hinter das "=" Zeichen im obersten Bereich des Code-chunk. Dies sollte folgendermassen aussehen: `{sql connection=con}`
4. Schreibe nun `SELECT * FROM penguins` in den Code-chunk
5. Führe den Code-chunk aus
**Diesen Text löschen und neuen Code-chunk hier erstellen**
6. Erstelle eine Verbindung zum penguins Datensatz mittels der `tbl()` Funktion und erstelle ein Objekt mit dem Namen `penguins_tab`
7. Schreibe das Objekt `penguins_tab` in einen neuen R Code-chunk und nutze die `collect()` Funktion um die Daten aus der Datenbank zu holen.
## Übung 3 - SQL Code schreiben
1. Füge einen SQL Code-chunk hinzu mit einer Verbindung zum Objekt `con`
2. Schreibe dir bekannten SQL Code um die durchschnittliche Schnabellänge (Variable: `bill_length_mm`) gruppiert nach den Variablen `island` und `species` zu berechnen
3. Führe den Code-chunk aus
**Diesen Text löschen und neuen Code-chunk hier erstellen**
4. Schreibe den SQL code aus dem vorherigen Code-chunk als R Code mit den dir bekannten Funktionen aus dem `{dplyr}` R Package
5. Nutze die Funktion `collect()` um die Daten aus der Datenbank zu holen und speicher das Ergebnis als neues Objekt mit dem Namen `penguins_avg_dplyr`
**Diesen Text löschen und neuen Code-chunk hier erstellen**
## Übung 4 - SQL Abruf als Objekt speichern
1. Kopiere den Code-chunk aus der vorherigen Übung
2. Im oberen Bereich des Code-chunks, füge nach "con" ein Komma ein und dann `output.var="penguins_avg_sql"` um den Output des Code-chunks als Objekt in einer Arbeitsumgeung (Environment) zu speichern. Dies sollte folgendermassen aussehen:
`{sql connection=con, output.var="penguins_avg_sql"}`
3. Führe den Code-chunk aus und überprüfe ob das Objekt `penguins_avg_sql` in deiner Arbeitsumgebung (Environment) auftaucht
**Diesen Text löschen und neuen Code-chunk hier erstellen**
## Übung 5 - Credentials sicher speichern und nutzen
1. Installiere folgende R Packages:
2. Folge den Schritten in Rezept 10 im rstatsZH Kochbuch: https://github.com/rstatsZH/kochbuch/tree/main/10-credentials-renviron
3. Installiere die nötigen Datenbank Treiber, hier für "MariaDB":
- `install.packages("RMariaDB")`
4. Über die Funktion `dbConnect()` aus dem `{DBI}` R Package mit Datenbank verbinden
5. Die Funktion `Sys.getenv()` nutzen um auf die gespeicherten Werte für "userid" und "pwd" zuzugreifen.
```{r}
```
## Übung 6
Mit `dbplyr` mit den Daten weiter arbeiten.
```{r}
```