(Acest articol a fost publicat pentru prima dată pe R pe Nicola Rennieși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)
Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.
Când predau exemple folosind R, instructorii folosesc adesea frumos seturi de date, dar acestea nu sunt foarte realiste și nu sunt ceea ce elevii vor întâlni mai târziu în lumea reală. Seturile de date reale au greșeli de scriere, valori lipsă codificate în moduri ciudate și spații ciudate – pentru a numi doar câteva probleme. În același timp, este destul de rar să predați un modul doar despre disputarea datelor. Deoarece seturile de date cu adevărat reale nu sunt întotdeauna ideale pentru predare, deoarece s-ar putea să nu se potrivească cu ipotezele modelului pe care încercați să-l predați sau este doar prea murdar. Acolo intervine pachetul {messy}!
Ce face {messy}?
Pachetul {messy} R preia un set de date curat și adaugă aleatoriu aceste caracteristici ale real seturi de date în – oferind studenților posibilitatea de a-și exersa abilitățile de curățare a datelor și de dispută fără ca educatorii să fie nevoiți să-și schimbe toate exemplele.
Se instalează {messy}
De la începutul lui decembrie 2024, {messy} este disponibil oficial pe CRAN. Puteți instala {messy} folosind install.packages("messy")
.
1 |
pak::pkg_install("nrennie/messy") |
Câteva exemple
Înainte de a prezenta câteva exemple, vreau să le mulțumesc oamenilor care au contribuit deja la {messy}:
Folosind messy()
funcţie
Să începem cu primele 10 rânduri ale ToothGrowth
date ca exemplu de set de date mic, curat:
care arata ca:
1 2 3 4 5 6 7 8 9 10 11 |
len supp dose 1 4.2 VC 0.5 2 11.5 VC 0.5 3 7.3 VC 0.5 4 5.8 VC 0.5 5 6.4 VC 0.5 6 10.0 VC 0.5 7 11.2 VC 0.5 8 11.2 VC 0.5 9 5.2 VC 0.5 10 7.0 VC 0.5 |
Cel mai simplu mod de a folosi pachetul {messy} este prin intermediul messy()
funcţie. Pur și simplu introduceți cadrul de date pe care doriți să îl faceți mai dezordonat:
1 2 |
set.seed(1234) messy(ToothGrowth(1:10,)) |
1 2 3 4 5 6 7 8 9 10 11 |
len supp dose 1 4.2 VC 0.5 2 11.5 |
Înlănțuirea mai multor funcții
De asemenea, puteți varia cantitatea de messiness
și alegeți ce funcții sunt aplicate la ce coloane, prin înlănțuirea mai multor funcții:
1 2 3 4 5 6 7 |
set.seed(1234) ToothGrowth(1:10,) |> make_missing(cols = "supp", missing = " ") |> make_missing(cols = c("len", "dose"), missing = c(NA, 999)) |> add_whitespace(cols = "supp", messiness = 0.5) |> add_special_chars(cols = "supp") |> messy_colnames() |
1 2 3 4 5 6 7 8 9 10 11 |
!l_e)n S^UPP d^o)se 1 4.2 VC 0.5 2 11.5 VC NA 3 7.3 VC 0.5 4 5.8 *VC 0.5 5 6.4 VC 0.5 6 10.0 VC 0.5 7 11.2 0.5 8 11.2 V#C NA 9 5.2 !VC 0.5 10 7.0 VC* 0.5 |
Sfat: dacă adăugați
messy_colnames()
la un lanț (și specificați doar unele coloane în alte funcții), asigurați-vămessy_colnames()
vine la final. În caz contrar, este posibil ca numele coloanelor pe care încercați să le selectați să nu mai existe!
Consultați documentația pachetului pentru mai multe exemple și descrieri ale tuturor funcțiilor disponibile.
Alte gânduri despre {messy}
Deși acesta este un pachet R, este util și pentru predarea programarii în alte limbi. Tu creezi un murdar set de date și apoi salvați-l ca fișier CSV (sau Excel) și apoi utilizați-l pentru orice practică de dispută de date, indiferent de limbă. Are și utilizări dincolo de predare. De exemplu, testarea funcțiilor sau a pachetelor R pentru a vă asigura că funcțiile funcționează conform așteptărilor sau dați erori utile și adecvate atunci când nu funcționează.