diff --git a/DCProject.Rmd b/DCProject.Rmd index 8f1b7d37717565ad861a6da87dfabf5a39e11210..478c2099d2f49a7b15539ddcba75f7fbdead8abd 100644 --- a/DCProject.Rmd +++ b/DCProject.Rmd @@ -115,6 +115,7 @@ Größe des Datensatzes: 24 Zeilen und 10 Spalten 1. Die Anzahl der Ausländischen Studenten in Deutschland hat sich seit dem WS 00/01 verdoppelt. 2. Der %-Anteil an studierenden Frauen (insgesamt) gegenüber studierenden Männern (insgesamt) hat sich seit dem WS 98/99 stetig erhöht. + ## Datenaufbereitung ### Wie können Daten eingelesen werden Es können verschiedene Datenvormate eingelesen werden, z.B CSV, XLSX @@ -187,6 +188,15 @@ Es können verschiedene Datenvormate eingelesen werden, z.B CSV, XLSX na="NA" ``` +```{r letter-c, echo=FALSE} +question("Jetzt bist du dran! Angenommen du möchtest eine .CSV Datei einlesen die im selben Arbeitsverzeichnis liegt, in der Dezimalzahlen mit einem . getrennt werden und fehlende Werte mit NA ausgefüllt werden sollen. Wie gehst du vor?", + answer('daten_csv <- read.csv("daten.csv")'), + answer('daten_csv <- read.csv2(file.choose(), na = "NA")'), + answer('daten_csv <- read.csv("daten.csv", na = "NA")', correct = TRUE), + answer('daten_csv <- read.csv2("daten.csv", na = "NA")') +) +``` + ### Wie können Inkosistenzen und Leerstellen behoben werden [Fälle mit fehlende Werten in R löschen](https://www.youtube.com/watch?v=SXg-8DAB6gc) @@ -238,11 +248,19 @@ Jahre: selected_data <- data[ ,8:9] kable(head(selected_data, 10)) ``` - +```{r letter-b, echo=FALSE} +question("Jetzt bist du dran! Wie müssten wir den Befehl umändern, um nur mit der Anzahl der Deutschen Männlichen und Weiblichen Studend:innen weiterzuarbeiten?", + answer("selected_data <- data[3:2,])"), + answer("selected_data <- data[5:9,]"), + answer("selected_data <- data[ ,2:3]", correct = TRUE), + answer("selected_data <- data[ ,1:2]") +) +``` Wir teilen die Daten in männlich und weiblich. Zusätzlich werden die Spalten etwas konvertiert: ```{r} data_male <- as.numeric(unlist(selected_data[-1 ,1])) data_female <- as.numeric(unlist(selected_data[-1 ,2])) +print(data_male) ``` Und Berechnen: @@ -263,6 +281,7 @@ und die Standartabweichung: print(paste("Std. Abweichung male: ", sd(data_male), "Std. Abweichung female: ", sd(data_female))) ``` + ### Hypothesentest In der Datenbasis haben wir 2 Hypothesen aufgestellt: @@ -324,6 +343,7 @@ abline(trend_m, col = "blue") Wie man sieht ist es tatsächlich so, dass der Frauenanteil stetig gestiegen ist, im vergleich zum Männeranteil. + ## Teaminfos Wer hat was erstellt/implementiert: diff --git a/DCProject.html b/DCProject.html index 0a55f4e2ab3db0c511ce0fe261eb9920c63dd425..55e3b76623b90641c5a5e272015c017c5352fef2 100644 --- a/DCProject.html +++ b/DCProject.html @@ -592,7 +592,7 @@ erhöht.</li> <div id="section-wie-können-daten-eingelesen-werden" class="section level3"> <h3>Wie können Daten eingelesen werden</h3> -<p>Es können verschieden Datenvormate eingelesen werden z.B CSV, +<p>Es können verschiedene Datenvormate eingelesen werden, z.B CSV, XLSX</p> <ol style="list-style-type: decimal"> <li><p>Daten aus einer CSV-Datei einlesen</p> @@ -642,6 +642,14 @@ können</p> <p>hier gibt es aber nicht die Argumente wie bei csv auser</p> <pre><code>na="NA"</code></pre></li> </ol> +<div class="panel panel-default tutorial-question-container"> +<div data-label="letter-c" class="tutorial-question panel-body"> +<div id="letter-c-answer_container" class="shiny-html-output"></div> +<div id="letter-c-message_container" class="shiny-html-output"></div> +<div id="letter-c-action_button_container" class="shiny-html-output"></div> +<script>if (Tutorial.triggerMathJax) Tutorial.triggerMathJax()</script> +</div> +</div> </div> <div id="section-wie-können-inkosistenzen-und-leerstellen-behoben-werden" @@ -654,7 +662,7 @@ Fehlerhafte Werte stehen.</p> <p>Im Beispiel hier werden alle Zeilen mit na werten vom dataframe daten entfernt und im dataframe gesaueberte_daten abgelegt</p> <pre><code>gesaueberte_daten <- na.omit(daten)</code></pre> -<p>Um fehlende Werte direkt bei der Berechnung zu behandel kann na.rm +<p>Um fehlende Werte direkt bei der Berechnung zu behandeln kann na.rm benutzt werden. Wenn es auf TRUE gesetzt ist überspringt es NA werte. Folgende Funktionen können na.rm nutzen</p> <pre><code>colSums() @@ -893,10 +901,22 @@ kable(head(selected_data, 10))</code></pre> </tr> </tbody> </table> +<div class="panel panel-default tutorial-question-container"> +<div data-label="letter-b" class="tutorial-question panel-body"> +<div id="letter-b-answer_container" class="shiny-html-output"></div> +<div id="letter-b-message_container" class="shiny-html-output"></div> +<div id="letter-b-action_button_container" class="shiny-html-output"></div> +<script>if (Tutorial.triggerMathJax) Tutorial.triggerMathJax()</script> +</div> +</div> <p>Wir teilen die Daten in männlich und weiblich. Zusätzlich werden die Spalten etwas konvertiert:</p> <pre class="r"><code>data_male <- as.numeric(unlist(selected_data[-1 ,1])) -data_female <- as.numeric(unlist(selected_data[-1 ,2]))</code></pre> +data_female <- as.numeric(unlist(selected_data[-1 ,2])) +print(data_male)</code></pre> +<pre><code>## [1] 999724 967638 969922 995293 1020423 1061544 1026199 1037143 1032663 +## [10] 1014761 1057806 1106450 1157485 1255372 1314017 1371640 1408534 1434126 +## [19] 1453625 1464643 1465978 1464867 1476366 1466282</code></pre> <p>Und Berechnen:<br /> Den Mittelwert:</p> <pre class="r"><code>print(paste("Mittelwert male: ", mean(data_male), "Mittelwert female: ", mean(data_female)))</code></pre> @@ -1066,7 +1086,6 @@ library(learnr) library(readxl) library(knitr) library(dplyr) -library(shiny) current_dir = getwd() @@ -1092,6 +1111,70 @@ session$onSessionEnded(function() { learnr:::event_trigger(session, "session_stop") }) </script> + +<script type="application/shiny-prerendered" data-context="server"> +learnr:::question_prerendered_chunk(structure(list(type = "learnr_radio", label = "letter-c", question = structure("Jetzt bist du dran! Angenommen du möchtest eine .CSV Datei einlesen die im selben Arbeitsverzeichnis liegt, in der Dezimalzahlen mit einem . getrennt werden und fehlende Werte mit NA ausgefüllt werden sollen. Wie gehst du vor?", html = TRUE, class = c("html", +"character")), answers = list(structure(list(id = "lnr_ans_171b41d", + option = "daten_csv <- read.csv(\"daten.csv\")", value = "daten_csv <- read.csv(\"daten.csv\")", + label = structure("daten_csv <- read.csv(“daten.csvâ€)", html = TRUE, class = c("html", + "character")), correct = FALSE, message = NULL, type = "literal"), class = c("tutorial_question_answer", +"tutorial_quiz_answer")), structure(list(id = "lnr_ans_5eb6a66", + option = "daten_csv <- read.csv2(file.choose(), na = \"NA\")", + value = "daten_csv <- read.csv2(file.choose(), na = \"NA\")", + label = structure("daten_csv <- read.csv2(file.choose(), na = “NAâ€)", html = TRUE, class = c("html", + "character")), correct = FALSE, message = NULL, type = "literal"), class = c("tutorial_question_answer", +"tutorial_quiz_answer")), structure(list(id = "lnr_ans_f1ef3b5", + option = "daten_csv <- read.csv(\"daten.csv\", na = \"NA\")", + value = "daten_csv <- read.csv(\"daten.csv\", na = \"NA\")", + label = structure("daten_csv <- read.csv(“daten.csvâ€, na = “NAâ€)", html = TRUE, class = c("html", + "character")), correct = TRUE, message = NULL, type = "literal"), class = c("tutorial_question_answer", +"tutorial_quiz_answer")), structure(list(id = "lnr_ans_114e0d3", + option = "daten_csv <- read.csv2(\"daten.csv\", na = \"NA\")", + value = "daten_csv <- read.csv2(\"daten.csv\", na = \"NA\")", + label = structure("daten_csv <- read.csv2(“daten.csvâ€, na = “NAâ€)", html = TRUE, class = c("html", + "character")), correct = FALSE, message = NULL, type = "literal"), class = c("tutorial_question_answer", +"tutorial_quiz_answer"))), button_labels = list(submit = structure("<span data-i18n=\"button.questionsubmit\">Submit Answer<\u002fspan>", html = TRUE, class = c("html", +"character")), try_again = structure("<span data-i18n=\"button.questiontryagain\">Try Again<\u002fspan>", html = TRUE, class = c("html", +"character"))), messages = list(correct = structure("Correct!", html = TRUE, class = c("html", +"character")), try_again = structure("Incorrect", html = TRUE, class = c("html", +"character")), incorrect = structure("Incorrect", html = TRUE, class = c("html", +"character")), message = NULL, post_message = NULL), ids = list( + answer = "letter-c-answer", question = "letter-c"), loading = NULL, + random_answer_order = FALSE, allow_retry = FALSE, seed = 2009452949.56428, + options = list()), class = c("learnr_radio", "tutorial_question" +)), session = session) +</script> + + +<script type="application/shiny-prerendered" data-context="server"> +learnr:::question_prerendered_chunk(structure(list(type = "learnr_radio", label = "letter-b", question = structure("Jetzt bist du dran! Wie müssten wir den Befehl umändern, um nur mit der Anzahl der Deutschen Männlichen und Weiblichen Studend:innen weiterzuarbeiten?", html = TRUE, class = c("html", +"character")), answers = list(structure(list(id = "lnr_ans_37ebccb", + option = "selected_data <- data[3:2,])", value = "selected_data <- data[3:2,])", + label = structure("selected_data <- data[3:2,])", html = TRUE, class = c("html", + "character")), correct = FALSE, message = NULL, type = "literal"), class = c("tutorial_question_answer", +"tutorial_quiz_answer")), structure(list(id = "lnr_ans_2a91406", + option = "selected_data <- data[5:9,]", value = "selected_data <- data[5:9,]", + label = structure("selected_data <- data[5:9,]", html = TRUE, class = c("html", + "character")), correct = FALSE, message = NULL, type = "literal"), class = c("tutorial_question_answer", +"tutorial_quiz_answer")), structure(list(id = "lnr_ans_cb236d6", + option = "selected_data <- data[ ,2:3]", value = "selected_data <- data[ ,2:3]", + label = structure("selected_data <- data[ ,2:3]", html = TRUE, class = c("html", + "character")), correct = TRUE, message = NULL, type = "literal"), class = c("tutorial_question_answer", +"tutorial_quiz_answer")), structure(list(id = "lnr_ans_a57fc9d", + option = "selected_data <- data[ ,1:2]", value = "selected_data <- data[ ,1:2]", + label = structure("selected_data <- data[ ,1:2]", html = TRUE, class = c("html", + "character")), correct = FALSE, message = NULL, type = "literal"), class = c("tutorial_question_answer", +"tutorial_quiz_answer"))), button_labels = list(submit = structure("<span data-i18n=\"button.questionsubmit\">Submit Answer<\u002fspan>", html = TRUE, class = c("html", +"character")), try_again = structure("<span data-i18n=\"button.questiontryagain\">Try Again<\u002fspan>", html = TRUE, class = c("html", +"character"))), messages = list(correct = structure("Correct!", html = TRUE, class = c("html", +"character")), try_again = structure("Incorrect", html = TRUE, class = c("html", +"character")), incorrect = structure("Incorrect", html = TRUE, class = c("html", +"character")), message = NULL, post_message = NULL), ids = list( + answer = "letter-b-answer", question = "letter-b"), loading = NULL, + random_answer_order = FALSE, allow_retry = FALSE, seed = 1183554803.94886, + options = list()), class = c("learnr_radio", "tutorial_question" +)), session = session) +</script> </p> <!--html_preserve--> <script type="application/shiny-prerendered" data-context="dependencies"> @@ -1100,7 +1183,7 @@ session$onSessionEnded(function() { <!--/html_preserve--> <!--html_preserve--> <script type="application/shiny-prerendered" data-context="execution_dependencies"> -{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["packages"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["packages","version"]},"class":{"type":"character","attributes":{},"value":["data.frame"]},"row.names":{"type":"integer","attributes":{},"value":[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]}},"value":[{"type":"character","attributes":{},"value":["backports","base","bslib","cachem","cellranger","checkmate","cli","compiler","datasets","digest","dplyr","ellipsis","evaluate","fansi","fastmap","fontawesome","generics","glue","graphics","grDevices","highr","htmltools","htmlwidgets","httpuv","jquerylib","jsonlite","knitr","later","learnr","lifecycle","magrittr","methods","mime","pillar","pkgconfig","promises","R6","Rcpp","readxl","rlang","rmarkdown","rprojroot","sass","shiny","stats","tibble","tidyselect","tools","utf8","utils","vctrs","withr","xfun","xtable","yaml"]},{"type":"character","attributes":{},"value":["1.4.1","4.2.3","0.5.0","1.0.8","1.1.0","2.2.0","3.6.1","4.2.3","4.2.3","0.6.31","1.1.2","0.3.2","0.21","1.0.4","1.1.1","0.5.1","0.1.3","1.6.2","4.2.3","4.2.3","0.10","0.5.5","1.6.2","1.6.11","0.1.4","1.8.5","1.43","1.3.1","0.11.4","1.0.3","2.0.3","4.2.3","0.12","1.9.0","2.0.3","1.2.0.1","2.5.1","1.0.10","1.4.2","1.1.1","2.22","2.0.3","0.4.6","1.7.4","4.2.3","3.2.1","1.2.0","4.2.3","1.2.3","4.2.3","0.6.3","2.5.0","0.39","1.8-4","2.3.7"]}]}]} +{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["packages"]}},"value":[{"type":"list","attributes":{"names":{"type":"character","attributes":{},"value":["packages","version"]},"class":{"type":"character","attributes":{},"value":["data.frame"]},"row.names":{"type":"integer","attributes":{},"value":[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]}},"value":[{"type":"character","attributes":{},"value":["backports","base","bslib","cachem","cellranger","checkmate","cli","commonmark","compiler","datasets","digest","dplyr","ellipsis","evaluate","fansi","fastmap","fontawesome","generics","glue","graphics","grDevices","highr","htmltools","htmlwidgets","httpuv","jquerylib","jsonlite","knitr","later","learnr","lifecycle","magrittr","markdown","methods","mime","pillar","pkgconfig","promises","R6","Rcpp","readxl","rlang","rmarkdown","rprojroot","sass","shiny","stats","tibble","tidyselect","tools","utf8","utils","vctrs","withr","xfun","xtable","yaml"]},{"type":"character","attributes":{},"value":["1.4.1","4.2.3","0.5.0","1.0.8","1.1.0","2.2.0","3.6.1","1.9.0","4.2.3","4.2.3","0.6.31","1.1.2","0.3.2","0.21","1.0.4","1.1.1","0.5.1","0.1.3","1.6.2","4.2.3","4.2.3","0.10","0.5.5","1.6.2","1.6.11","0.1.4","1.8.5","1.43","1.3.1","0.11.4","1.0.3","2.0.3","1.7","4.2.3","0.12","1.9.0","2.0.3","1.2.0.1","2.5.1","1.0.10","1.4.2","1.1.1","2.22","2.0.3","0.4.6","1.7.4","4.2.3","3.2.1","1.2.0","4.2.3","1.2.3","4.2.3","0.6.3","2.5.0","0.39","1.8-4","2.3.7"]}]}]} </script> <!--/html_preserve--> </div>