przewodnikPoPakiecieR8

przewodnikPoPakiecieR8



108


pazuRrry


Debugger i profiler


109


2.5 Debugger i profiler

Bez względu na doświadczenie, nic da się pisać dużych programów zupełnie po-' zbawionych błędów. Nawet program, który wydawał się być wolny od błędów, po zainstalowaniu nowej wersji jakiegoś pakietu może przestać działać lub zgłaszać bardzo dziwne wyniki. Należy więc umieć wyszukiwać i usuwać błędy.

2.5.1 Debugger

1*:’ Narzędzia do wyszukiwania i poprawiania błędów nazywa się debuggerami. W R blę-dy można śledzić na wiele sposobów, np. używając funkcji z pakietu debug. Pońiżej przedstawimy także kilka innych sposobów.

£;*, • Sytuacje awaryjne w R raportowane są jako błędy lub jako ostrzeżenia. Wystąpienie błędu powoduje wywołanie funkcji stop(base), co zazwyczaj kończy wykonywanie podprogramu. Przerywane jest wykonanie pętli, funkcji, bloku kodu i innych instrukcji. Ostrzeżenia też są raportowane, ale nie powodują przerwania .' . wykonywania podprogramu. Po napotkaniu błędu i wywołaniu funkcji stopO wy-: kónana zostanie akcja określona przez opcję error globalną dla całego środowiska. Zmieniając wartość tej opcji możemy zażądać, aby R przed przerwaniem wykonywanych instrukcji zapisał stan wszystkich aktualnych zmiennych. Umożliwi to analizę : póst-mortem tego, co się stało i ułatwi znalezienie przyczyny wystąpienia błędu, ś: Prześledźmy poniższy przykład.

ż wartość opcji 'error' określa, co ma się dziać po napotkaniu błędu tę wartość można zmieniać korzystając z argumentu ‘error-’ funkcji optionsO. Po poniższym poleceniu, R po napotkaniu błędu zapisze stan środowiska do pliku errorDump.RData ..options (orror=quote (dump. f rames ("errorDump" , TRUE) ) )

* no potrzeby poniższych przykładów zdefiniujmy funkcję wyznaczającą logarytm

funkcja <- function(x) {

P' log(x)


Jeżeli nasz wynikowy plik ma być bardzo duży, to możemy nie chcieć, by wyg wstawek umieszczane były w tym samym pliku. Ustawiając we wstawce argun^S split=TRUE powodujemy, że wynik wykonanego w niej kodu R zostanie zapi* w osobnym pliku o nazwie w postaci plik-etykieta.tex, gdzie etykieta powinna być określona w liście argumentów. Oto przykład

<<split—FALSE, label*komentarz.S>>

Ten tekst trafi do innego pliku, który zostanie włączony do głównego pl£ wynikowego.

8

" V    ■    '    §j

Wynik z wykonania skryptów R umieszczany jest w pliku wynikowym w jedń z dwóch środowisk Sinput (dla instrukcji R) i Soutput (dla wyników tych instr Aby kompilator *IgX’a potrafił rozpoznać te środowiska musi znać ich definicje. |j one określone w pliku Sweave. sty, który znajduje się w katalogu pakietu Swea Jeżeli w pliku wejściowym . Snw nie ma polecenia dołączenia tego pliku, to Sweave Q automatycznie do preambuły dodaje linie

\usepackagetj!ueave}

Jeżeli nie chcemy, by ta linia była dołączana, to możemy „oszukać” Sweayelą dodając do pliku . Snw zakomentowaną linię. Ta sztuczka przydaje się, jeżeli chce użyć innych definicji wspomnianych środowisk.

'/. \usepackage{Sweave>

Korzystając z pakietu Sweave możemy wygenerować zarówno dokument z objaśnieniem fragmentu kodu R (jak w przykładzie), automatycznie wygenero raport z wyników naszej firmy (szef się ucieszy my zaoszczędzimy czas), i wygenerować prezentacje np. korzystając z Beamer’a.

Oczywiście format pdf to nie jedyny możliwy format prezentacji wyników, nieje też możliwość 'automatycznego generowania wyników w formacie HTML. Wi< informacji znaleźć można w pomocy dla funkcji HTMLCR2HTML).

y J / Programowanie objaśniające nadaje się świetnie do przedstawiania

kretnych rozwiązań/poleceń/funkcji w R. Opis rozwiązania połąezofy "A / jest z kodem, który to rozwiązanie generuje a również z wynikiem # konania tego kodu. Czytelnik może więc szczegółowo porównać z argumentami wywoływanych poleceń, mając pewność, że autor nie pominął j; goś ważnego parametru.

Takie przykładowe rozwiązania są dostępne w R w postaci ilustracji nazywanych mgncttc. Do pakietów R, poza funkcjami, zbiorami danych i opisami, dołączane są. również ilustracje rozwiązań określonych problemów. Ilustracja składa się z kodu R prezentującego rozwiązanie oraz pliku przedstawiającego wynik tego rozwiąząj|ś nia. Dostęp do ilustracji rozwiązań odbywa się z użyciem funkcji vignette(utils). Poniżej przedstawiamy przykładowe wywołania tej funkcji.

iniświetlmy listę ilustracji dostępnych w zainstalowanych pakietach etteCall “ TRUE)

hydob.ądźmy jedną konkretną ilustrację, dotyczącą wielowymiarowej oceny gęstości

%‘tracjaKDE = vignette("kda")

ższe polecenie otworzy plik PDF z teoretycznymi aspektami ,y * zaimplementowanymi w funkcji kde oraz opisem przykładów wykorzystania tej funkcji rłńt(ilustracj aKDE)

enohiższe polecenie otworzy okno edytora z kodami w języku R, których '< wyniki zostały przedstawione w powyższym pliku z opisem tej funkcji it(ilustracjaKDE)

Jeżeli ktoś twierdzi, że pisze programy bez błędów, to znaczy, że nic pisał dużych programów.

As a generał rulc (subject to numerous

exceptions, caveats,

etc.):

1)    it is programming and dobugging tłme that most impacts Worali* program exocut.ion timc;

2)    thls is most strongly imp&cted by codę readability and size (the smaller tlić bet ter);

3)    both of which are enhanced by inodular

construction and reuseability, which argues for avoidiug inłine coda and using separate functions.

Theso days, I would argtie that most of tłte time it is program clarity and correctnaos (t.hey arc related) that is the iniportant issue, not exocution speed.

Ber ton Gunter (in a discussion about parsing spoed) fortune(125)



Wyszukiwarka

Podobne podstrony:
>    profilaktykę trzeciorzędowy mającą na celu przeciwdziałanie pogłębianiu się
108 109 (3) Leczeniem ambulatoryjnym bez ograniczenia wieku zajmują się: ■    Poradni
Seminarium: Zakażenia szpitalne cz II. Zakażenia przewodu pokarmowego. Zapalenie otrzewnej. Profilak
przewodnikPoPakiecieR9 110 pazuRiry Debugger i pro/iler Enter an environment number, or 0 to exit S
przewodnikPoPakiecieR4 120 pazuRrry Wielomiany Legendre’a stopnia 0 — - stopnia 1 • • • stopnia 2 .
Szkoła Podstawowa nr 92 w Gdańsku informuje o naborze do klasy sportowej o profilu piłki ręcznej na
R. Marxkors Ryc. 16. a - konstrukcja hybrydowa nie uwzględniająca wymogów profilaktyki, bez komfortu
Obecny stan wiedzy Żaden biochemiczny marker nowotworowy w badaniu profilaktycznym nie wpływa&n
8 Wstęp Na część drugą składają się artykuły reprezentatywne dla profilu zainteresowań autorów.
362 K. Misiak ne. Profilaktyka wtórna ma na celu zapobieganie utracie sprawności po przebytych choro
P1020897 RURY KONSTRUKCYJNE r Profile rurowe gięte na zimno wg EN 10219 ze stali zwykłych i o podwyż
P1020898 RURY KONSTRUKCYJNE Profile rurowe gięte na zimno wg EN 10219 ze stali zwykłych i o podwyższ
P1020899 RURY KONSTRUKCYJNE Profile rurowe gięte na zimno wg EN 10219 ze stali zwykłych i o podwyższ
5 (685) 2.2.2. Pokrycia z blach profilowanych Blachy profilowane wykonywane są na ogół z blachy stal

więcej podobnych podstron