Przewodnik po pakiecie R – wydanie 4.0

TL;DR – od wczoraj w wybranych księgarniach stacjonarnych, niedługo w internetowych.

przewodnik4okladka

W wydaniu IV zmian jest bardzo dużo. Opiszę je niedługo szczegółowiej, ale w skrócie:

* Na bazie doświadczeń z kursu PogromcyDanych (udział wzięło ponad 2000 osób, więc było co analizować), pierwsze dwa rozdziały zostały bardzo bardzo uproszczone. Powinny być w zasięgu dla licealisty, studenta czy osób bez doświadczenia w programowaniu. Na przykładach pokazuję jak wczytać dane, zrobić proste wykresy, używać dplyr i shiny.

* Trzeci rozdział ,,Niezbędnik programisty”, wprowadza zagadnienia, które mogą zainteresować nawet zaawansowanych programistów. Zaczynamy od funkcji, pętli, później omawiamy bazy danych, jest podrozdział o Shiny, podrozdział o tym jak budować pakiety, obowiązkowo o Git/GitHub i oczywiście o profilowaniu i debugowaniu kodu.

* Czwarty rozdział ,,Niezbędnik statystyka” zmienił się najmniej w stosunku do poprzedniego wydania. Usunąłem funkcje których już nie ma i poprawiłem jakieś drobiazgi.

* Piąty rozdział ,,Graficzna prezentacja danych” został bardzo rozbudowany. Pakietom lattice i ggplot2 poświęciłem sporo miejsca, zasługują na nie. Jest też o interaktywnej grafice (rCharts) i też o klasycznej grafice.

Materiały z książki, zbiory danych, są dostępne w pakiecie Przewodnik.

Zmian było dużo więcej, niż początkowo planowałem, ale warto było je wprowadzić. Czwarte wydanie Przewodnika kończy maraton wydawniczy, który miał miejsce w tym roku. Kolejne wydania Przewodnika mają daty 2008, 2011, 2014, 2017.

Zabawy z typografią, czyli co nowego w ,,Przewodniku po pakiecie R” wydanie trzecie.

W poprzednich dwóch wpisach przedstawiłem dwa nowe fragmenty trzeciego wydania ,,Przewodnika po pakiecie R” (pakiety plyr i shiny). Tak się jednak składa, że zmieniło się również dużo w zakresie typografi. I o tych zmianach napiszę dzisiaj.

Napiszę z pewną nieśmiałością. Typografia to dziedzina, w której nowicjusze (a za nowicjusza się uważam) nie powinni zdawać się na intuicję, bo ta łatwo wyprowadzi ich na manowce. Zbyt wiele możliwości by zawierzyć intuicji.

Skoro to taka niebezpieczna dziedzina, to po co pchać palce między drzwi i samodzielnie składać książkę? Czy nie lepiej zlecić to komuś kto na sprawie się zna? A jeżeli już składać to może pozostać przy domyślnych ustawieniach LaTeXa?

Dla składu książki może byłoby lepiej, może nie, nie wiadomo. Ale z pewnością gdybym ten skład zlecił komuś innemu, to nie miałbym okazji się go nauczyć. A w przyszłości, im bardziej niestandardowe pomysły, tym skład może odgrywać większą rolę.

Zresztą, może bym nie targnął się na dużą zmianę wyglądu, gdyby nie to, że w maju dotarło do mnie nowe wydanie ,,Elementarza stylu w typografii” Roberta Bringhursta. Zacząłem czytać. Na początku zdziwiło mnie, że tak przeszkadzają mi ogonki litery y w tej książce, która to niby ma być elementarzem stylu. A później się w nich zakochałem. [ok, przesada, ale bardzo mi się podobają]

Spędziłem więc kilka tygodni na różne eksperymentach, próbując dziesiątek różnych wersji ,,Przewodnika …”. Trwało to długo bo po każdej większej zmianie potrzebowałem czasu by nabrać do niej dystansu. A później pomyślałem, że byłoby miło zobaczyć jak wyglądała ścieżka ,,badanych” rozwiązań. Szczęśliwie Dropbox ma możliwość przeglądania historii zmian pliku, dzięki czemu mając już jedno wybrane rozwiązanie, można przyjrzeć się jak wglądały poprzednie wersje.

Zobaczmy więc jak zmieniało się oznaczenia kodu programu R w trzecim wydaniu.

Formatujemy kod R

Punktem wyjścia było szare tło z ramkami po bokach, takie jak w drugim wydaniu Przewodnika.

Pierwsza zmiana polegała na przejściu z kodowaniem na UTF8. To kodowanie było mi potrzebne by móc pracować z XeLaTeXem i korzystać z dodatkowych krojów pisma. Niestety otoczenie listings zupełnie nie radziło sobie z tym kodowaniem.

Naprawimy to później. W pierwszym kroku chciałem pozbyć się znaków '>’ i '+’ przed kodem R. Znaki te rozpraszają. Co więcej, im więcej pracuje się w edytorze a mniej w konsoli, tym rzadziej ogląda się te znaki.
Ale jeżeli usunąć '>’ i '+’ to trzeba jakoś inaczej oznaczyć który fragment kodu jest wejściowy a który jest wynikiem.
Może szarym tłem?

Nie wyglądało to najlepiej, może więc odwrotnie, niech wynik będzie na szarym tle.

To też wyglądało źle, gdy na stronie pojawia się tylko jedna linia wyniku. Pojedyncza szara linia nie wiadomo co znaczy. Może więc zmienimy grubość linii ramki wokół wyjścia.

Z cienkimi liniami jest jednak dużo problemów przy wydruku. Może więc je poszerzmy.

Potrzebowałem kilku dni by odkryć że wygląda to tragicznie. Najgorsze wrażenie robiła zebra fragmentów wejściowych i wyjściowych. Zrezygnujmy więc z niej. Niech tło będzie białe a to co jest wejściem lub wyjściem niech oznacza grubość linii ramki.

Cienka ramka wygląda źle, może więc ją pogrubimy?

Pogrubiona też wygląda źle. Te nieciągłości w grubości wyglądały jakby miały zranić czytelnika.
Zobaczmy jak wyglądać będzie stała szerokość.

Ale teraz nie wiadomo co jest wejściem a co wynikiem. Wynik oznaczymy więc znakiem ##, tak jak to robi pakiet knitr.

Wciąż za mało rzuca się w oczy co jest wejściem a co wynikiem. Dodajmy więc przerwę w ramce tam gdzie kończy się wynik a zaczyna kolejny fragment kodu R.

Dopiero w tym miejscu dotarło do mnie, że nadużywam komentarzy. Po co komentarze w kodzie R, skoro piszę książkę i mogę dowolnie komentować kod językiem naturalnym. Kiedyś uważałem, że wklejanie komentarzy w kodzie R to dobry pomysł, ale to było lata temu, i już nie pamiętam czemu tak uważałem.

Komentarze w języku naturalnym wyglądają lepiej. Ale usuńmy wcięcia, bo te wyglądają strasznie sztucznie.

W tym miejscu zaczęły mi przeszkadzać przerywane linie ramki. Na stronach gdzie było dużo kodu takie przerywane brzegi wyglądały jak serie z karabinu. Zastąpmy je szarym tłem.

Lepiej, ale na szarym tle szare komentarze są mało widoczne. Zróbmy je ciemniejszymi.

Ponieważ wokół kodu jest sporo pustej przestrzeni, mogę trochę ten kod pomniejszyć. Dzięki temu skrócę książkę o ponad 20 stron, nie wpłynie to na czytelność, a odrobinę mniejsza czcionka będzie dodatkowo pełniła rolę wyróżnika.

Zmniejszymy też marginesy.

Małe marginesy gorzej wyglądają, wrócimy do poprzednich,
I czas jeszcze dopracować te koślawe komentarze.

Ostatecznie zmieniłem czcionkę z Palantino na Minion Pro + Inconsolata. Po tych zmianach ramka wygląda następująco.

W tym miejscu uznałem, że ta forma gotowa jest do użycia.

Wybieramy krój pisma

Wspomniana książka ,,Elementarz stylu w typografii” została złożona krojem Minion Pro. Pięknym krojem. Przez kilkanaście dni próbowałem zmusić LaTeXa by zaczął go używać. Niestety na wszystkich frontach i w wersji na MacOS, i Windows, i Ubuntu zostałem pokonany.

Ale nie wszystko stracone, jest inny podobny i też ładny krój. Palantino… (i cała kolekcja różnych jego klonów) Zanim do niego jednak dojdziemy, zobaczmy jak wyglądało wydanie drugie, złożone domyślną czcionką LaTeXową, czyli Computer Modern, zaprojektowaną przez Donalda Knutha.

Używając XeLaTeXa (niestety związane to było z przejściem na UTF8) najłatwiej było mi zacząć z TeX Gyre Pagella. Czcionka wzorowana na Palantino URW.

Kolejnym krokiem było UTW Palantino. Zobaczmy jak zmieniły się ogonki.

Ale w powyższej wersji ligaturki są złe, co widać np. po cudzysłowach. Naprawiamy to.

I w między czasie nauczyłem się jak używać Minion Pro. Czas więc przejść na tę czcionkę [XeLaTex pozwala na wykorzystywanie czcionek zainstalowanych w systemie. Wystarczy wiec sciagnac/kupic kroj w formacie OT lub TT aby go używać w XeLaTeXu].

I tak już zostanie.

Pakiet plyr, czyli co nowego w ,,Przewodniku po pakiecie R” wydanie trzecie.

Przygotowuję trzecie wydanie ,,Przewodnika po pakiecie R”. Zmiany w stosunku do wydania drugiego są spore, kilka rzeczy zostało usuniętych, kilka dodanych.

Jedna z dodanych rzeczy to bardziej rozbudowany rozdział o funkcjach z rodziny apply i plyr. Poniżej przeklejam część nowego wydania ,,Przewodnika …” poświęconą pakietowi plyr. Przepraszam też za ewentualne usterki związane z konwersją LaTeXa do HTMLa.

Czytaj dalej Pakiet plyr, czyli co nowego w ,,Przewodniku po pakiecie R” wydanie trzecie.