Repartizarea pe zile a încadrării profesorilor (IV)
O valoare ca "Rom\r\n11.D" – preluată dintr-o celulă a unui tabel Excel sau PDF – acoperă două domenii de valori (obiectele de învăţământ şi respectiv, clasele existente), ba mai vizează şi imprimanta (care chiar nu are de-a face cu datele respective).
Dacă ai de operat cu date, primul lucru de făcut constă în „normalizarea” acestora (obţinând un „set de date”); este inutil – în general – să înregistrăm valori neexistente; apoi, valorile înregistrate ar trebui să aibă fiecare propriul domeniu (şi să fie complet eliberate de aspecte vizuale – de exemplu, să nu includă în expresia lor, caractere de control a imprimării).
Repartizarea pe zile a încadrării profesorilor (III)
Cum extragi datele dintr-un document PDF care prezintă orarul unei şcoli? Folosind eventual Camelot-py (dar mai bine apelezi la un serviciu de conversie extern), poţi obţine un fişier Excel în care fiecare foaie prezintă câte unul din tabelele prezentate în documentul PDF; apoi, folosind R (prin pachetele tidyverse
şi readxl
), poţi transforma fişierul Excel respectiv într-un „set de date” (obiect de tip data.frame). Eliberând datele de sub formatările vizuale specifice PDF sau Excel – le vei putea organiza şi prelucra prin program, după caz.
Repartizarea pe zile a încadrării profesorilor (II)
Alocând zilele de lucru pe clase (şi profesori), am obţinut repartiţii omogene în privinţa numărului de ore pe zi ale claselor, dar neomogene în privinţa numărului de ore pe zi ale profesorilor. Este uşor de inversat rolurile, alocând zilele pe profesori (şi clase); vom obţine repartiţii omogene pentru profesori, dar neomogene pentru clase.
Repartizarea pe zile a încadrării profesorilor
„Tabelul de încadrare” (TIP
) specifică pentru fiecare profesor al şcolii, clasele care i-au fost alocate şi numărul de ore pe săptămână la fiecare dintre acestea. O primă problemă care s-ar pune constă în repartizarea orelor din TIP
pe zilele de lucru ale săptămânii; dacă excludem preferinţele individuale, rămân două condiţii: să nu se depăşească un anumit număr de ore pe zi, la fiecare clasă şi respectiv, orele fiecărui profesor să fie repartizate cât se poate de omogen (prima este obligatorie, a doua ar fi rezonabilă).
Lucrurile pot fi modelate în fel şi chip, în diverse limbaje; dar problemele ridicate în contextul unui „set de date” existent, cum este şi TIP
, pot fi abordate în mod natural prin limbajul R – recunoscut pentru scurtimea şi expresivitatea formulărilor prin care se pot regiza operaţii complexe cu seturi de date (chiar şi foarte mari, dar şi de talie modestă ca în cazul TIP
).
Explorarea datelor orarului şcolar - reveniri
Elemente de limbaj R (folosind acum funcţiile map()
şi map_df()
din „dialectul” tidyverse::purrr
), aplicate pe un set de date specific orarelor şcolare (majoritatea exemplificărilor uzuale, întâlnite în atâtea locuri, angajează – cât mai banal – seturi de date convenţionale, sau artificiale).
vezi Cărţile mele (de programare)