clitable: un nou pachet R pentru a imprima cu ușurință tabele frumoase în terminal

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(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%. insigna de acoperire (ș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: un exemplu clitableun exemplu clitable

Î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()

unele stiluriunele stiluri mai multe stilurimai multe stiluri hărți termicehărți termice hilithilit

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.