przewodnikPoPakiecieR6

przewodnikPoPakiecieR6



104 pazuRrry

2.4 Programowanie objaśniające i Sweave

Termin literate programing (przetłumaczony tutaj jako programowanie objaśniając' został ukuty przez Donalda Knutha, autora między innymi języka T^jX. Za tyij terminem kryje się idea, którą można wyrazić w trzech punktach (zobacz rów artykuł [16]):

1.    programy są bezużyteczne bez opisów,

2.    opisy powinny wyjaśniać program, zwykłe komentarze w kodzie nie są wystar czające,

3.    kody wykorzystywane w opisach powinny być wykonywalne.

Jedną z implementacji tej idei znaleźć można w pakiecie Sweave. Pakiet ten umożliwia tworzenie programów wraz z ich opisami. Może być też wykorzystani: do automatycznego generowania raportów (więcej informacji i przykładów moż znaleźć w pozycji [16]). Punktem wyjściowym jest przygotowanie pliku, w który" znajdą się fragmenty kodu w języku R wraz z opisami. Co jest pewnym novr w procesie kompilacji tego pliku fragmenty kodu R zostaną wykonane, a ich wynik zostanie dodany do opisu kodu. W ten sposób czytelnik ma 100% gwarancji, że wynik który" ogląda powstał tylko i wyłącznie w skutek wywołania wymieniony"' poleceń R.

Zacznijmy od przykładu. Poniżej przedstawiona jest zawartość pliku przykład. Sn Czytelnik dostrzeże w tym pliku tak komendy języka R jak i ŁXTpjX

\documentclass[aśpaper]{article}

\usapackage [cpl250]{inputenc}

\usepackage{Sweave>

\title{\vspace{-3cm}Programowanie objaśniająca ze Sweave>

\author{Przemysław Biecek}

\begin{document>

\maketitle

Wykres pudełkowy jest bardzo popularną metodą prezentacji zmienności

pojedynczej zmiennej. Można go wyznaczać rćwnież dla kilku zmiennych' (dzięki czemumożemy porównać rozkłady tych zmiennych) lub dla pojedynczej zmiennej w~rozbićiu na grupy obserwacji.

Kształt tego wykresu jest bardzo charakterystyczny, przypominający pudęj. z"wąsami. Poszczególne elementy wykresu przedstawiają różne charakterystyki obserwowanej zmiennej. Środek pudełka przedstawia medianę, dolna i“górna granica pudełka odpowiada kwartylom z~próby (odpowiednio dolnemu i~górnemu kwartylowi), kropki przedstawiają obserwacje odstające. Zakres zmienności (minimum i~maksimum) danej zmiennej (po ominięciu wartości odstających) zaznaczony jest za porno wąsów wykresu.

«»-

dane <- read.csv("http://www.biecek.pl/R/dane/daneSoc.csv",sep=";") attach(dane)

print(by(wiek, piec, summary)) boxplot(wiek'plec, data » dane, col="black")

^giE{cen*er>

=TRUE , echo ^FALSE

^jiotCwiek-plec, data = dane, col-"lightgrey") fi -•

;^eod{center>

i;\0ńd{document>

Przyjmijmy, że ten plik znajduje się w aktualnym katalogu roboczym R. Wykonując?0^ Sweave("przykład.Snw") przetworzymy ten plik wykonując zawarte w nim polecenia R. Efekt na konsoli R powinien być jak poniżej.

>    tt Generujemy kod LaTe)fo z plikóui Snw

>    Sveave("przykład.Snw")

Writing to file przyklad.tex Processing codę chunks ...

1 : echo term verbatim “|§ : term verbatim eps pdf

•..    ''-' r A"S,\X£    A" "‘*7 * v • y '    ..... •;* •    y '

y0u can now run LaTeX on 1przykład.tex’

m':

.....* ' - ......... ■ - - -

Tb fragmenty kodu (ang. cJiunks),

7. braku lepszego tłumaczenia, będziemy nazywać wstawkami.


Y. Ostatnia linia to informacja o tym, że proces przetwarzania pliku przykład. Snw przebiegi bez problemów. W katalogu roboczym utworzonych zostało kilka nowych c blików między innymi plik przyklad.tex. To plik wynikowy, zapisany w formacie '.fflJY. W tym pliku został umieszczony opis oraz wyniki wykonania komend R znajdujących się w pliku przykład.Snw. Plik przyklad.tex możemy skompilować używając kompilatora języka BT]eX np. do formatu pdf. Wynik takiej kompilacji przed-: stawiony jest na rysunku 2.2. Przyjrzyjmy się bliżej zawartości pliku przykład. Snw. Na pierwszy rzut. oka wygląda on jak plik z kodem w ffl^jpCu. Jednak występują w nim specyficzne fragmenty kodu o składni:

argumenty »=

'k=d R

Jak już pisaliśmy, funkcja Sweave(Sweave) powoduje przetworzenie wskazanego pliku. Wykonuje ona kod R znajdujący się we wstawkach, a wyniki wykonania tego "kodu zapisuje do pliku wyjściowego (w tym przypadku do pliku przyklad.tex).

Określając odpowiednie argumenty wstawek, możemy określać, w jaki sposób wyniki zostaną wklejone do pliku wynikowego. Np. jeżeli nie chcemy, by wynik wykona-iiia fragmentu kodu był wpisywany do pliku wynikowego, to za argumenty wstawki 'Jtydezy podać echo=false,results=hide.

Pytanie do czytelnika: dlaczego wynik drugiego polecenia, a nie pierwszego albo


Jeżeli wynikiem poleceń R jest wykres, to aby wykres ten znalazł się w pliku wy-.. pikowym, należy za argument wstawki podać f ig=true. W jednej wstawce możemy > j^yświetlić dowolnie wiele wykresów. Wynik każdego z nich zostanie przetworzony do : dwóch plików: jednego w formacie pdf i jednego w formacie eps. Do pliku wyniko-• wego automatycznie zastanie dodana odpowiednia instrukcja dołączająca plik ż rysunkiem. W naszym przykładzie do pliku wynikowego zostanie dodany poniższy napis, włączający wynik drugiego polecenia boxplot().


Wyszukiwarka

Podobne podstrony:
DSC00788 I. Z dziejów pojęcia i terminu Słowo .-.sentymentalizm", stosowane tutaj jako nazwa hi
przewodnikPoPakiecieR7 106 pazuRiry Programowanie objaśniające i Swcave Programowanie objaśniające
przewodnikPoPakiecieR0 112 pazuRrry Błędy i ostrzeżenia mogą zgłaszać też nasze programy. Funkcje s
przewodnikPoPakiecieR4 120 pazuRrry Wielomiany Legendre’a stopnia 0 — - stopnia 1 • • • stopnia 2 .
WOLONTARIAT FILOZOFUJZadanie #1 Opracowywanie kapsułek objaśniających trudniejsze terminy lub
104 Wykorzystanie programu ILWIS jako narzędzia GIS do wyznaczenia optymalnego przebiegu inwestycji
Ilustrowany słownik terminów literackich Historia, anegdota, etymologia słowo/obraz terytoria

więcej podobnych podstron