(Acest articol a fost publicat pentru prima dată pe kfornerș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.
Sunt încântat să anunț că clitable, noul meu pachet R pentru tipărirea tabelelor în terminal, tocmai a ajuns în CRAN!! Vă permite să imprimați tabele destul de colorate direct în consola sau terminalul R.
De asemenea, sunt destul de mândru că a fost acceptat la prima trimitere, fără nimic de reparat, ceea ce din experiența mea nu este atât de comun și este, de asemenea, subiectul postării mele anterioare Pregătirea Rfuzzycoco pentru publicare pe CRAN. Timpul mediu pentru o examinare a trimiterii CRAN este de o săptămână, așa că imaginați-vă întârzierea dacă trebuie să retrimiteți de 4 sau 5 ori. Acest lucru a fost posibil printr-o combinație de instrumente și bune practici (și experiență): devtools, testthat, roxygen2, covr, git, github actions (CI), rhub, pkgdown, codecov…
Și încă o dată, pachetul meu are Acoperire de testare 100%. (și da, este exagerat, dar sunt dependent de teste…).
Deci pentru ce este? Pentru tabele de tipărire frumoase (cadre de date, matrice) în terminal, astfel: 

În acest exemplu, puteți vedea:
- anteturi de coloană, redate în îndrăzneţ
- coloane cu dimensiuni adecvate
- 2 rânduri evidențiate (în verde)
- Valori NA redate cu un stil personalizat, barat
- cel flipper_len coloană cu a hartă termică fundal
- prima valoare, în celula (1, 1) folosind un stil creion personalizat
Codul corespunzător este:
# the table to print
df <- head(datasets::penguins, 20)
# custom crayon style
df$species <- as.character(df$species)
df(1, 1) <- crayon::style("ADELIE", "underline","bgYellow")
# create clitable
ct <- cli_table(df, header_style = "bold",
NA_style = "strikethrough",
heatmap_columns = list("flipper_len"), xmin = 180, xmax = 200,
hilite_rows = !is.na(df$sex) & df$sex == "female" & df$bill_dep >= 19,
hilite_style = "bgGreen"
)
# print it
cat(ct, sep = "n")
}
Rețineți că acesta este cel mai complex exemplu al meu.
Puteți întreba, de ce as vrea sa printez un tabel in terminal?? În R avem mai multe moduri de a reda tabele frumoase în html, pdf, imagini.
Cazul meu de utilizare personal este pentru următoarea versiune a unui pachet de-al meu, srcpkgs, care poate reda rezultatele testării sau verificării unei colecții de pachete sursă R ca mai multe tabele în terminal. Trebuie să evidențiați rândurile care corespund erorilor și pentru a imprima timp scurs coloană ca hartă termică pentru a identifica rapid blocajele. De asemenea, am vrut să-l fac compatibil cu pachetele uimitoare de creion și cli, astfel încât să fie ușor să personalizați rezultatul.
Un alt caz de utilizare pe care îl prevăd este pentru înregistrarea unor rezultate. Pachetul cli este cu adevărat util pentru asta, dar pare să lipsească o modalitate ușoară de a imprima tabele, deci clitable!
De asemenea, puteți întreba, nu există alte pachete R care pot reda tabele frumoase ca text? Există într-adevăr. De exemplu, am folosit mult pachetul huxtable, care este cu adevărat puternic și poate reda tabele în LaTeX, HTML, text. Dar utilizarea lui în scopul meu nu este atât de simplă, în măsura cunoștințelor mele, nu este compatibil cu cli și are multe dependențe. În comparație, clitable este un pitic, dar are dependențe minime (crayon/cli), este ușor de utilizat și ușor de extins și este destinat să funcționeze bine cu cli. Rețineți că aceasta este prima versiune, iar interfața poate evolua dacă este necesar.
Iată mai multe exemple, o parte din clitable::demo()





