library(EWDwskazniki) obiekty = get("obiekty") wymaganeObiekty = c("typSzkoly", "modele", "tabelki", "tytulRaportu", "autorRaportu") if (!all(wymaganeObiekty %in% names(obiekty))) { stop("Brak niezbędnych obiektów: '", paste0(wymaganeObiekty[!(wymaganeObiekty %in% names(obiekty))], collapse = "', "), "'.") } typSzkoly = obiekty$typSzkoly modele = obiekty$modele tabelki = obiekty$tabelki tytulRaportu = obiekty$tytulRaportu autorRaportu = obiekty$autorRaportu if ("encoding" %in% names(obiekty)) { encoding = obiekty$encoding } else { encoding = "windows-1250" } rm(obiekty) # \captionsetup[table]{name=New Table Name} # - \captionsetup[table]{labelformat=empty} tytuly = data.frame(gh = "w zakresie przedmiotów humanistycznych", gh_h = "w zakresie historii i wiedzy o społeczeństwie.", gh_p = "w zakresie języka polskiego", gm = "w zakresie przedmiotów matematyczno-przyrodniczych", gm_p = "w zakresie przedmiotów przyrodniczych", gm_m = "w zakresie matematyki", m_mR = "w zakresie matematyki", mlp = "w zakresie języka polskiego", mlh = "w zakresie przedmiotów humanistycznych", mlm = "w zakresie matematyki", mlmp = "w zakresie przedmiotów matematyczno-przyrodniczych", mtp = "w zakresie języka polskiego", mth = "w zakresie przedmiotów humanistycznych", mtm = "w zakresie matematyki", mtmp = "w zakresie przedmiotów matematyczno-przyrodniczych", stringsAsFactors = FALSE) modelu = tytuly rocznik = list("1" = "pierwszy", "2" = "drugi", "3" = "trzeci", "4" = "czwarty", "5" = "piąty", "6" = "szósty") szablon3rysunki = "trzyRysunki.tex" szablon2rysunki = "dwaRysunkiKropka.tex" szablon1rysunek = "jedenRysunek.tex" folderWskazniki = paste0(folderRoboczy, "/") if (typSzkoly %in% c("LO", "T")) { egz = "m" if (all(grepl("R$", names(modele)))) { folderRysunki = paste0(folderWskazniki, "rysunki ", typSzkoly, "/") } else if (all(substr(names(modele), 2, 2) %in% "l") | all(substr(names(modele), 2, 2) %in% "t")) { folderRysunki = paste0(folderWskazniki, "rysunki/") } else { stop("Nie można rozpoznać typu szkoły.") } } else if (typSzkoly %in% c("gimn.", "gimn")) { egz = "g" typSzkoly = "gimn" folderRysunki = paste0(folderWskazniki, "rysunki/") } else { stop("Nie można rozpoznać typu szkoły.") }
pagebreak = 0; resetPageBreak = function(value = 0){ pagebreak <<- value; } printPageBreak = function(){ if (pagebreak %% 2 == 1) { cat("\n\n\\clearpage\n\n"); } pagebreak <<- pagebreak + 1; } img_template = list("img-params" = list(dpi = 300, fig.width = 6, fig.height = 6, out.width = "804px", out.height = "804px")) knitr::opts_template$set(img_template) pdf.options(encoding = 'ISOLatin2.enc') panderOptions('knitr.auto.asis', FALSE) inicjalizuj_numeracje()
title: r tytulRaportu
date: r Sys.Date()
author: r autorRaportu
#panderOptions('table.split.table', Inf) #panderOptions('table.emphasize.rownames', FALSE) #panderOptions('table.caption.prefix', "Table: ") cat("\n\\section{Liczba obserwacji}\\label{liczba-obserwacji}\n") tmpTab = tabelki$liczbaZdajacych rownames(tmpTab) = NULL n = ustaw_naglowek_tabeli("Liczba zdających poszczególne części egzaminu.") #pander_table(tmpTab) kable_table(tmpTab, n) if (egz == "g") { n = ustaw_naglowek_tabeli("Liczba zdających części humanistyczne w podziale na lata pisania egzaminu gimnazjalnego i sprawdzianu.") tab = tabelki$liczbaZdajacychPoLatach tab = tab[, grepl("^rok_g$|^rok_s$|^zdający$|^gh", colnames(tab))] #pander_table(tab) print(kable_table(tab, n)) n = ustaw_naglowek_tabeli("Liczba zdających części matematyczne w podziale na lata pisania egzaminu gimnazjalnego i sprawdzianu.") tab = tabelki$liczbaZdajacychPoLatach tab = tab[, grepl("^rok_g$|^rok_s$|^zdający$|^gm", colnames(tab))] #pander_table(tab) print(kable_table(tab, n)) } else if (egz == "m") { n = ustaw_naglowek_tabeli("Liczba zdających egzamin w podziale na lata pisania egzaminu gimnazjalnego i matury.") tab = tabelki$liczbaZdajacychPoLatach #pander_table(tab) print(kable_table(tab, n)) }
cat("\\pagebreak"); cat("\n\\section{Statystyki opisowe}\\label{Statystyki-opisowe}\n") for (ind in which(grepl("^wy|^we", names(tabelki)))) { if (grepl("Sum", names(tabelki)[ind])) { naglowek = "Statystyki opisowe wyników surowych" } else if (grepl("Norm", names(tabelki)[ind])) { naglowek = "Statystyki opisowe wyskalowanych wyników" } if (grepl("^we", names(tabelki)[ind])) { naglowek = paste0(naglowek, " egzaminu „na wejściu”") } else if (grepl("^wy", names(tabelki)[ind])) { naglowek = paste0(naglowek, " egzaminu „na wyjściu”") } if (grepl("Wydl$", names(tabelki)[ind])) { naglowek = paste0(naglowek, " w podziale ze względu na rok zdawania egzaminu „na wejściu”.") } else if (grepl("Plec$", names(tabelki)[ind])) { naglowek = paste0(naglowek, " w podziale na płcie.") } n = ustaw_naglowek_tabeli(naglowek) #cat(pander_table(tabelki[[ind]])) print(kable_table(tabelki[[ind]], n)) cat("\n\n") }
# cat("\n\\section{Modele EWD}\\label{Modele-EWD}\n") for (ind in seq_along(modele)) { nazwaModelu = names(modele)[ind] cat("\n\n\\pagebreak\n\n") cat(paste0("\n\\section{Model EWD ", tytuly[nazwaModelu], "}\\label{", nazwaModelu, "}\n")) plik = c(paste0(folderWskazniki, "porownanie ", sub("^m[lt]", "m_", nazwaModelu), ".txt"), paste0(folderWskazniki, "porownanie ", typSzkoly, ".txt")) plik = plik[file.exists(plik)] if (length(plik) == 1) { porownania = parsuj_plik_porownanie(plik, encoding = encoding) } else { stop("Nie udało się otworzyć pliku z porównaniem modeli dla modelu ", nazwaModelu, ".") } if ("linkTest" %in% names(porownania)) { n = ustaw_naglowek_tabeli(paste0("Linktest modeli ", modelu[nazwaModelu], ".")) #pander_table(porownania$linkTest) print(kable_table(porownania$linkTest, n)) } if ("czyRosnaca" %in% names(porownania)) { n = ustaw_naglowek_tabeli(paste0("Monotoniczność funkcji przewidywania modeli ", modelu[nazwaModelu], ".")) #pander_table(porownania$czyRosnaca) print(kable_table(porownania$czyRosnaca, n)) } if ("statystyki" %in% names(porownania)) { n = ustaw_naglowek_tabeli(paste0("Statystyki dopasowania modeli ", modelu[nazwaModelu], ".")) #pander_table(porownania$statystyki) print(kable_table(porownania$statystyki, n)) } if ("parametry" %in% names(porownania)) { n = ustaw_naglowek_tabeli(paste0("Statystyki dopasowania modeli ", modelu[nazwaModelu], ".")) #pander_table(porownania$parametry) print(kable_table(porownania$parametry, n)) } plikiRysunki = list.files(folderRysunki, pattern = "[.]png") plikiRysunki = plikiRysunki[grepl("_stopien[[:digit:]]_", plikiRysunki) & grepl(paste0(sub("^m[lt]", "m_", nazwaModelu), "_(sum|norm|irt)"), plikiRysunki)] stopnie = sort(unique(gsub("^.*_stopien([[:digit:]])_.*$", "\\1", plikiRysunki))) lataWy = gsub("^.*_rok_[sgm]([[:digit:]]{1,4})_.*$", "\\1", plikiRysunki) lataWy = sort(unique(lataWy[lataWy != plikiRysunki])) if (length(lataWy) == 0) { lataWy = "" } wydl = sort(unique(gsub("^.*_wydl([[:digit:]]).*$", "\\1", plikiRysunki))) resetPageBreak(1); for (st in stopnie) { cat(paste0("\n\\subsection{Wielomian ", st, "-ego stopnia dla modelu ", modelu[nazwaModelu], "}\\label{StopienWielomianu-", st, ",", nazwaModelu, "}\n")) for (strRok in lataWy) { rysunki = plikiRysunki[grepl(paste0("_stopien", st, "_"), plikiRysunki)] if (length(rysunki) > 2) { rysunki = rysunki[grepl(paste0("_rok_[sgm]", strRok, "_"), rysunki)] if (length(rysunki) != 2) { stop("Sprawdź liczbę plików z wykresami stopnia wielomianu. (", nazwaModelu, ")") } } else if (length(rysunki) != 2) { stop("Sprawdź liczbę plików z wykresami stopnia wielomianu. (", nazwaModelu, ")") } rysunki = paste0(folderRysunki, sub(".png", "", rysunki)) temp = paste0("Diagnostyka dopasowania wielomianu ", st, "-ego stopnia dla modelu ", modelu[nazwaModelu], ifelse(strRok == "", ".", paste0(", ", rocznik[[strRok]], " rocznik w ramach analizowanego okresu."))) znacznikiTabeliRysunkow = list(Przypis = daj_naglowek_wykresu(temp), Plik1 = rysunki[1], Plik2 = rysunki[2]) cat("\n", drukuj_szablon(plikSzablonuTex = szablon2rysunki, znaczniki = znacznikiTabeliRysunkow)) printPageBreak() } } cat(paste0("\n\\subsection{Podsumowanie modelu ", modelu[nazwaModelu], "}\\label{Podsumowanie-,", nazwaModelu, "}\n")) if ("lm" %in% class(modele[[ind]])) { schowek = suppressWarnings(przygotuj_do_schowka_es(modele[[ind]], FALSE)) } else if ("lmerMod" %in% class(modele[[ind]])) { schowek = suppressWarnings(przygotuj_do_schowka_me(modele[[ind]], FALSE)) } else { stop("Model nieobsługiwanej klasy: '", paste0(class(modele[[ind]]), collapse = "', '"), "'. (", nazwaModelu, ")") } n = ustaw_naglowek_tabeli("Statystyki dopasowania modelu EWD.") if ("dopasowanie" %in% names(schowek)) { schowek$AICtab = as.data.frame(as.list(schowek$dopasowanie), check.names = FALSE) } #pander(schowek$AICtab) print(kable_table(schowek$AICtab, n)) cat("\n\n") if ("efLos" %in% names(schowek)) { n = ustaw_naglowek_tabeli("Dekompozycja wariancji modelu EWD.") schowek$efLos[, 2] = sub("(Intercept)", "stała", schowek$efLos[, 2], fixed = TRUE) # pander(schowek$efLos, # justify = ifelse(sapply(schowek$efLos, class) == "numeric", # "right", "left")) print(kable_table(schowek$efLos, n)) cat("\n\n") } n = ustaw_naglowek_tabeli(paste0("Parametry efektów stałych modelu ", modelu[nazwaModelu], ".")) schowek$efSt[, 1] = gsub("(Intercept)", "(stała)", schowek$efSt[, 1], fixed = TRUE) schowek$efSt[, 1] = gsub(", raw = TRUE", "", schowek$efSt[, 1]) schowek$efSt[, 1] = gsub("poly[(]([^,]+),[ ]*[[:digit:]][)]([[:digit:]])", "(\\1^\\2)", schowek$efSt[, 1]) schowek$efSt[, 1] = gsub("I(", "(", schowek$efSt[, 1], fixed = TRUE) schowek$efSt[, 1] = gsub("pleckobieta", "płeć: kobieta", schowek$efSt[, 1]) schowek$efSt[, 1] = gsub("dysleksja_mtak", "dysleksja matura", schowek$efSt[, 1]) schowek$efSt[, 1] = gsub("dysleksja_gtak", "dysleksja egz. gimn.", schowek$efSt[, 1]) schowek$efSt[, 1] = gsub("dysleksja_gtak", "dysleksja spr.", schowek$efSt[, 1]) schowek$efSt[, 1] = gsub("wydl([[:digit:]])", "wydłużona nauka:\\1", schowek$efSt[, 1]) schowek$efSt = schowek$efSt[, -ncol(schowek$efSt) + 0:1] colnames(schowek$efSt) = c("Zmienna", "Wartość", "Odch. Std.", "Statystyka t", "Istotność")[1:ncol(schowek$efSt)] #pander_table(schowek$efSt) print(kable_table(schowek$efSt, n)) cat("\n\n") rysunki = list.files(folderRysunki, pattern = "[.]png") rysunki = rysunki[grepl(paste0("_", typSzkoly, "_[[:digit:]]{4}"), rysunki) & grepl(paste0("_", sub("^m[lt]", "m_", nazwaModelu), "_(homo|norm|reszty|przew)"), rysunki)] rysunki = paste0(folderRysunki, gsub(".png", "", rysunki)) if (length(rysunki) == 0) { stop("Sprawdź nazwy plików z wykresami diagnostyki. (", nazwaModelu, ")") } temp = paste0("Wykresy diagnostyczne modelu ", modelu[nazwaModelu], ".") znacznikiTabeliRysunkow = list(Przypis = daj_naglowek_wykresu(temp), Plik1 = rysunki[grep("reszty_w_funkcji", rysunki)], Plik2 = rysunki[grep("homoscedatycznosc", rysunki)]) # resetPageBreak(1); # printPageBreak(); cat("\n", drukuj_szablon(plikSzablonuTex = szablon2rysunki, znaczniki = znacznikiTabeliRysunkow)) znacznikiTabeliRysunkow = list(Przypis = daj_naglowek_wykresu(temp), Plik1 = rysunki[grep("normalnosc_reszt", rysunki)]) cat("\n", drukuj_szablon(plikSzablonuTex = szablon1rysunek, znaczniki = znacznikiTabeliRysunkow)) if (length(grep("przew_ef_los_w_funkcji", rysunki)) == 1 & length(grep("normalnosc_ef_los", rysunki)) == 1) { znacznikiTabeliRysunkow = list(Przypis = daj_naglowek_wykresu(temp), Plik1 = rysunki[grep("przew_ef_los_w_funkcji", rysunki)], Plik2 = rysunki[grep("normalnosc_ef_los", rysunki)]) cat("\n", drukuj_szablon(plikSzablonuTex = szablon2rysunki, znaczniki = znacznikiTabeliRysunkow)) } rysunki = list.files(folderRysunki, pattern = "[.]png") rysunki = rysunki[grepl("panorama_EWD_", rysunki) & grepl(paste0("_", nazwaModelu, "_[[:digit:]]{4}"), rysunki)] rysunki = paste0(folderRysunki, gsub(".png", "", rysunki)) rysunki = rysunki[order(nchar(rysunki))] if (length(rysunki) != 2) { stop("Sprawdź liczbę plików z wykresami panoramy EWD. (", nazwaModelu, ")") } temp = paste0("Związki pomiędzy średnimi wynikami „na wyjściu” i „na wejściu” a EWD ", modelu[nazwaModelu], ".") znacznikiTabeliRysunkow = list(Przypis = daj_naglowek_wykresu(temp), Plik1 = rysunki[1], Plik2 = rysunki[2]) cat("\n", drukuj_szablon(plikSzablonuTex = szablon2rysunki, znaczniki = znacznikiTabeliRysunkow)) cat("\n\\pagebreak\n") cat("\n\\clearpage\n") }
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.