diff --git a/inst/tutorials/Grundlagen/Grundlagen.Rmd b/inst/tutorials/Grundlagen/Grundlagen.Rmd
index 300b4ea..0e6a0e6 100644
--- a/inst/tutorials/Grundlagen/Grundlagen.Rmd
+++ b/inst/tutorials/Grundlagen/Grundlagen.Rmd
@@ -746,22 +746,22 @@ grade_this({
```
-
-
+
-
+
-```{r setup-data, exercise=FALSE, eval=FALSE, exercise.eval=FALSE, echo=FALSE}
+```{r setup-data, exercise=FALSE, eval=TRUE, exercise.eval=FALSE, echo=FALSE}
set.seed(333) # fixiere alle Zufallsprozesse
N <- 100 # Anzahl der Personen im Datensatz
df <- data.frame(
@@ -2393,22 +2393,23 @@ df <- data.frame(
Hier ist der Einblick in einen klinischen Datensatz `df` (die Daten wurden simuliert).
-
-
-
-
-
+
+
+
+
write.csv2() (deutsch & Excel) | save() | saveRDS() |
-| Laden | read.csv() (international)
read.csv2() (deutsch & Excel) | load() | readRDS() |
+| Speichern | write.csv() [international]
write.csv2() [deutsch & Excel] | save() | saveRDS() |
+| Laden | read.csv() [international]
read.csv2() [deutsch & Excel] | load() | readRDS() |
| Anzahl an gespeicherten Objekten | eins | mehrere | eins |
| Verhalten beim Laden | werden einem neuen Objekt zugewiesen | werden im Environment wiederhergestellt | werden einem neuen Objekt zugewiesen |
| | | | |
@@ -2917,13 +2918,13 @@ for (position in 1:4) {
friends_status
```
-
-
-
+
+
+
+
+
+
+
# Lösung
namen != "Lisa Müller"
-
-
-
-
-
-
-
-
-
-
-
+Für jede Position des Vektors namen
wird geprüft, ob das
+Element ungleich zum Wert “Lisa Müller” ist. Dazu wir der logische
+Operator !=
genutzt. Die Ausgabe ist ein Vektor mit drei
+Werten des Datentyps logical
. Somit werden genauso viele
+Werte ausgegeben, wie die Länge des Vektors namen
.
Wenn das zu prüfende Element sich unterscheidet zu “Lisa Müller”,
+wird der Wert TRUE
ausgegeben, weil der Wert ungleich ist.
+Wenn das zu prüfende Element identisch zu “Lisa Müller” ist, wird der
+Wert FALSE
ausgegeben, weil der Wert nicht ungleich
+ist.
Durch diese Abfrage wissen wir nun, welche Personen im Vektor
+namen
nicht Lisa Müller sind.
# Eine Variable wird absichtlich oder unabsichtlich zu NaN
variable <- NaN
-# Weitere Berechnungen führen auch dazu, dass das Ergebnis zu einem fehlenden Wert wird
+# Weitere Berechnungen mit führen nun auch dazu, dass das Ergebnis zu einem fehlenden Wert wird
variable * 10
# Auch ein logischer Vergleich mit NaN führt hier zu einem fehlenden Wert!
@@ -2610,20 +2623,33 @@ Kapitel
Hier ist der Einblick in einen klinischen Datensatz df
(die Daten wurden simuliert).
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+So wurde der Datensatz df
simuliert:
+set.seed(333) # fixiere alle Zufallsprozesse
+N <- 100 # Anzahl der Personen im Datensatz
+df <- data.frame(
+ sex = factor(sample(c("weiblich", "männlich", "divers", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),
+ age = sample(16:60, N, TRUE),
+ treatment_group = sample(c("treatment", "control group"), N, TRUE),
+ health_rating_mental = sample(c(1:10, NA), N, TRUE),
+ health_rating_body = sample(1:10, N, TRUE)
+)
+
+
+
-df # so können wir den Datensatz in der Console ausgeben lassen.
+# über den Objektnamen können wir den Datensatz in der Console ausgeben lassen.
+df
# Dies ist oft aber unpraktisch, wenn es große Datensätze sind.
-
-
-
-
-
+
+
+
+
+
+
+Antwort: Wir müssten überall im Code die Zahl 4 ändern!
+
+
+
Bessere Alternative (weil flexibler): length()
while-loop
while (condition) {
print("Hallo Welt!")
}
-
-
-
-
-
-
+
+
+
+
+
+
+Es fehlt ein Abbruchkriterium in der While-Loop. Damit läuft sie
+unendlich lange.
+
+
+
Wenn das Abbruch-Kriterium vergessen wird, läuft die While-Loop in
eine Endlosschleife. Wenn dies passiert, muss die Ausführung gestoppt
werden.
@@ -3860,13 +3902,34 @@ Code umschreiben (Refactoring)
Übungen mit einem Datensatz
-
-
-
-
-
-
-
+
+
+
+
+
+
+So wurde der Datensatz data_health
simuliert:
+set.seed(3) # fixiere alle Zufallsprozesse
+N <- 200 # Anzahl der Personen im Datensatz
+data_health <- data.frame(
+ sex = factor(sample(c("weiblich", "männlich", "divers"), N, TRUE, prob = c(0.40, 0.40, 0.20))),
+ age = sample(16:60, N, TRUE),
+ treatment_group = sample(c("treatment", "control group"), N, TRUE),
+ health_rating_mental_1 = sample(c(1:10), N, TRUE),
+ health_rating_mental_2 = sample(c(1:10), N, TRUE),
+ health_rating_mental_3 = sample(c(1:10, NA), N, TRUE),
+ health_rating_body_1 = sample(1:10, N, TRUE),
+ health_rating_body_2 = sample(1:10, N, TRUE),
+ health_rating_body_3 = sample(1:10, N, TRUE),
+ stress_level = sample(1:7, N, TRUE)
+)
+data_health
+
+
+
Aufgabe: Schaue den
Datensatz data_health
an. Gebe dir dazu die letzten 7
Zeilen des Datensatzes aus.
@@ -5306,7 +5369,7 @@ R Chunk (freies Üben)
" gradethis_glue_incorrect = \"{ .message } { .incorrect }\"",
")", "blue <- \"#00c4e6\""), chunk_opts = list(label = "setup",
echo = FALSE, message = FALSE, warning = FALSE)), setup = NULL,
- chunks = list(list(label = "na-6", code = "# Eine Variable wird absichtlich oder unabsichtlich zu NaN\nvariable <- NaN\n\n# Weitere Berechnungen führen auch dazu, dass das Ergebnis zu einem fehlenden Wert wird\nvariable * 10\n\n# Auch ein logischer Vergleich mit NaN führt hier zu einem fehlenden Wert!\nvariable == NaN",
+ chunks = list(list(label = "na-6", code = "# Eine Variable wird absichtlich oder unabsichtlich zu NaN\nvariable <- NaN\n\n# Weitere Berechnungen mit führen nun auch dazu, dass das Ergebnis zu einem fehlenden Wert wird\nvariable * 10\n\n# Auch ein logischer Vergleich mit NaN führt hier zu einem fehlenden Wert!\nvariable == NaN",
opts = list(label = "\"na-6\"", exercise = "TRUE", results = "\"hold\""),
engine = "r")), code_check = NULL, error_check = NULL,
check = NULL, solution = NULL, tests = NULL, options = list(
@@ -5329,7 +5392,7 @@ R Chunk (freies Üben)
exercise.error.check.code = "gradethis_error_checker()",
exercise.eval = FALSE, exercise.blanks = "___", exercise.reveal_solution = TRUE,
label = "na-6", exercise = TRUE, code = c("# Eine Variable wird absichtlich oder unabsichtlich zu NaN",
- "variable <- NaN", "", "# Weitere Berechnungen führen auch dazu, dass das Ergebnis zu einem fehlenden Wert wird",
+ "variable <- NaN", "", "# Weitere Berechnungen mit führen nun auch dazu, dass das Ergebnis zu einem fehlenden Wert wird",
"variable * 10", "", "# Auch ein logischer Vergleich mit NaN führt hier zu einem fehlenden Wert!",
"variable == NaN"), out.width.px = 624, out.height.px = 384,
params.src = "na-6, exercise=TRUE, results = \"hold\"",
@@ -5501,16 +5564,16 @@ R Chunk (freies Üben)
@@ -5530,17 +5593,17 @@ R Chunk (freies Üben)
@@ -5780,16 +5843,16 @@ R Chunk (freies Üben)
@@ -5808,22 +5871,22 @@ R Chunk (freies Üben)
@@ -8465,16 +8528,16 @@ R Chunk (freies Üben)
@@ -8528,22 +8591,22 @@ R Chunk (freies Üben)
@@ -9327,8 +9390,8 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
- engine = "r"), list(label = "data-1", code = "df # so können wir den Datensatz in der Console ausgeben lassen.\n# Dies ist oft aber unpraktisch, wenn es große Datensätze sind.",
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
+ engine = "r"), list(label = "data-1", code = "# über den Objektnamen können wir den Datensatz in der Console ausgeben lassen.\ndf\n# Dies ist oft aber unpraktisch, wenn es große Datensätze sind.",
opts = list(label = "\"data-1\"", exercise = "TRUE",
exercise.eval = "TRUE", results = "\"hold\"", exercise.setup = "\"setup-data\""),
engine = "r")), code_check = NULL, error_check = NULL,
@@ -9352,8 +9415,8 @@ R Chunk (freies Üben)
exercise.error.check.code = "gradethis_error_checker()",
exercise.eval = TRUE, exercise.blanks = "___", exercise.reveal_solution = TRUE,
label = "data-1", exercise = TRUE, exercise.setup = "setup-data",
- code = c("df # so können wir den Datensatz in der Console ausgeben lassen.",
- "# Dies ist oft aber unpraktisch, wenn es große Datensätze sind."
+ code = c("# über den Objektnamen können wir den Datensatz in der Console ausgeben lassen.",
+ "df", "# Dies ist oft aber unpraktisch, wenn es große Datensätze sind."
), out.width.px = 624, out.height.px = 384, params.src = "data-1, exercise=TRUE, exercise.eval=TRUE, results='hold', exercise.setup = \"setup-data\"",
fig.alt = NULL, fig.num = 0, exercise.df_print = "paged"),
engine = "r", version = "4"), class = c("r", "tutorial_exercise"
@@ -9386,7 +9449,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-2", code = "head(df, n = 10) # zeigt die ersten 10 Zeilen im Datensatz",
opts = list(label = "\"data-2\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9443,7 +9506,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-3", code = "tail(df, n = 10) # zeigt die letzten 10 Zeilen im Datensatz",
opts = list(label = "\"data-3\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9500,7 +9563,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-4", code = "summary(df)",
opts = list(label = "\"data-4\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9557,7 +9620,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-5", code = "psych::describe(df)",
opts = list(label = "\"data-5\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9614,7 +9677,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-6", code = "rowSums(is.na(df)) # Anzahl von fehlenden Werten pro Zeile (eine Zeile ist eine Person)",
opts = list(label = "\"data-6\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9671,7 +9734,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-7", code = "colSums(is.na(df)) # Anzahl der fehlenden Werte pro Spalte",
opts = list(label = "\"data-7\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9728,7 +9791,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-8", code = "complete.cases(df) # Prüft, ob alle Spalten ausgefüllt wurden pro Zeile",
opts = list(label = "\"data-8\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9785,7 +9848,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-9", code = "df[!complete.cases(df), ] # Zeigt die Daten, die fehlende Werte enthalten",
opts = list(label = "\"data-9\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9842,7 +9905,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-10", code = "df[complete.cases(df), ] # Zeigt die Daten, die keine fehlenden Werte enthalten",
opts = list(label = "\"data-10\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9899,7 +9962,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-11", code = "df <- na.omit(df) # Entfernt alle Zeilen mit fehlenden Werten\ndf",
opts = list(label = "\"data-11\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -9956,7 +10019,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-12", code = "# im Datensatz df alle Personen die jünger sind als 18 Jahre\ndf[df$age < 18, ] # Achtung: das Komma ist zwingend erforderlich!",
opts = list(label = "\"data-12\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -10014,7 +10077,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-13", code = "# Im Datensatz df alle Personen die jünger sind als 18 Jahre\n# und sich in der Treatment-Gruppe befinden\ndf[df$age < 18 & df$treatment_group == \"treatment\", ]",
opts = list(label = "\"data-13\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -10072,7 +10135,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-14", code = "# Im Datensatz df in der Spalte sex,\n# alle Personen die sich in der Treatment-Gruppe befinden.\ndf$sex[df$treatment_group == \"treatment\"]",
opts = list(label = "\"data-14\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -10130,7 +10193,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-15", code = "# ersetze alle fehlenden Geschlechter durch \"weiblich\"\ndf$sex[is.na(df$sex)] <- \"weiblich\" \ndf",
opts = list(label = "\"data-15\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -10188,7 +10251,7 @@ R Chunk (freies Üben)
echo = FALSE, message = FALSE, warning = FALSE)), setup = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
chunks = list(list(label = "setup-data", code = "set.seed(333) # fixiere alle Zufallsprozesse\nN <- 100 # Anzahl der Personen im Datensatz\ndf <- data.frame(\n sex = factor(sample(c(\"weiblich\", \"männlich\", \"divers\", NA), N, TRUE, prob = c(0.40, 0.40, 0.10, .1))),\n age = sample(16:60, N, TRUE),\n treatment_group = sample(c(\"treatment\", \"control group\"), N, TRUE),\n health_rating_mental = sample(c(1:10, NA), N, TRUE),\n health_rating_body = sample(1:10, N, TRUE)\n)",
opts = list(label = "\"setup-data\"", exercise = "FALSE",
- eval = "FALSE", exercise.eval = "FALSE", echo = "FALSE"),
+ eval = "TRUE", exercise.eval = "FALSE", echo = "FALSE"),
engine = "r"), list(label = "data-16", code = "# addiere alle Werte der health_ratings miteinander\n# und erzeguge eine neue Spalte namens health_rating_sum\ndf$health_rating_sum <- df$health_rating_mental + df$health_rating_body\n\ndf$health_rating_sum",
opts = list(label = "\"data-16\"", exercise = "TRUE",
results = "\"hold\"", exercise.setup = "\"setup-data\""),
@@ -12608,7 +12671,7 @@ R Chunk (freies Üben)
diff --git a/inst/tutorials/Grundlagen/css/style.css b/inst/tutorials/Grundlagen/css/style.css
index 593fded..ef79f03 100644
--- a/inst/tutorials/Grundlagen/css/style.css
+++ b/inst/tutorials/Grundlagen/css/style.css
@@ -30,6 +30,34 @@ original is from: https://github.com/tidymodels/learntidymodels/tree/main/inst/t
border-color: #CA225E;
}
+/* Default styling */
+details {
+ margin: 0; /* Remove default margins */
+ padding: 0; /* Remove default padding */
+ background-color: transparent; /* No background when closed */
+ border: none;
+}
+
+/* Styling for */
+details summary {
+ margin: 0; /* Remove margins */
+ /* padding: 10px; Add padding for the button area */
+ background-color: transparent; /* No background when not clicked or hovered */
+ cursor: pointer; /* Pointer for interactivity */
+ transition: background-color 0.3s; /* Smooth background transition */
+}
+
+/* When details is open */
+details[open] {
+ background-color: #f2f2f2; /* Grey background when open */
+}
+
+/* When hovering over the summary */
+details summary:hover {
+ background-color: #f2f2f2; /* Grey background on hover */
+}
+
+
.solution-button {
color: #00c4e6;
cursor: pointer;
@@ -43,7 +71,7 @@ original is from: https://github.com/tidymodels/learntidymodels/tree/main/inst/t
.hiddendetails-button {
- /*background-color: green;*/
+ background-color: white;
color: #00c4e6;
padding: 10px;
border: none;