SPISTREŚCI
Przedmowa
IPodstawy
1. ´ Srodowisko R iprogram RStudio .. ...................................3
1.1.Cechyj˛ezykai ´ srodowiska R .....................................3
1.2.Organizacjapracyw R i RStudio ..................................4
1.2.1.Konsola R ...........................................5
1.2.2.Program RStudio .......................................6
1.2.3.Pierwszekrokiwtrybieinteraktywnym..........................8 1.2.4.Edytorskryptów........................................10 1.2.5.Systempomocy........................................11
2.Typyatomowe:wektoryi NULL ......................................13
2.1.Klasyfikacjatypówobiektówwj˛ezyku R ..............................13
2.2.Wektoryatomowe............................................14
2.2.1.Wektorywarto´scilogicznych................................14
2.2.2.Wektoryliczbowe.......................................17
2.2.3.Wektorynapisów.......................................18
2.2.4.Pozostałetypywektorówatomowychiichhierarchia..................19
2.3.Tworzenieobiektównazwanych...................................25
2.4.Brakidanych,warto´sciniesko´nczoneinie-liczby.........................29
2.5.Typpusty(
3.Operacjenawektorach
3.1.Podstawoweoperatory.........................................34
3.1.1.Operatoryarytmetyczne...................................35
3.1.2.Operatorylogiczne......................................38
3.1.3.Operatoryrelacyjne......................................39
3.1.4.Priorytetyoperatorów....................................41
3.2.Indeksowaniewektorów.Filtrowaniedanych............................42
3.2.1.Rodzajeindeksatorów....................................43
3.2.2.Modyfikowaniewybranychelementów..........................45
3.3.Przegl˛adfunkcjiwbudowanych....................................46
3.3.1.Zwektoryzowanefunkcjematematyczne.........................46
4.Listy
3.3.2.Agregacjadanych..
3.3.3.Operacjenas˛asiaduj˛acychelementachwektorów....................54
3.3.4.Wyszukiwanieindeksówiwybórelementówwektorów................55
3.3.5.Operacjeopartenapermutowaniuelementówwektorów................57
3.3.6.Operacjenazbiorach.....................................59
3.3.7.Podstawoweoperacjenanapisach.............................60
4.1.Tworzenielist..............................................63
4.2.Indeksowanielist............................................66
4.2.1.Operator„
4.2.2.Operator„
4.2.3.Modyfikowaniezawarto´scilist...............................67
4.3.Wybraneoperacjenalistach......................................70
4.3.1.ٞaczenie,rozwijanieipowielanielist...........................70
4.3.2.Wywoływaniefunkcjinawszystkichelementachlisty.................73
5.Funkcje
5.1.Tworzenieobiektówtypufunkcja..................................79
5.1.1.Blokiwyra˙ze´n.........................................81
5.1.2.Sprawdzaniepoprawno´sciargumentów..........................84
5.1.3.Kilkauwagdlaprojektantówfunkcji............................87
5.1.4.Bibliotekifunkcjiwplikach .R
5.1.5.Odwoływaniesi˛edofunkcjizpakietów R ........................89
5.2.Zasi˛egnazwwfunkcjach.......................................90
5.3.Parametryiargumenty.........................................92
5.3.1.Przekazywanieargumentówprzezwarto´ s ´ c........................92
5.3.2.Parametryzargumentamidomy´slnymi..........................93
5.3.3.Parametrspecjalny„
6.Atrybutyobiektów
6.1.Nadawanieiodczytywanieatrybutów................................97
6.2.Atrybutyspecjalne...........................................100
6.2.1.Atrybut comment .......................................101
6.2.2.Atrybut names .Wektoryzetykietami...........................101
6.2.3.Atrybut class .Wst˛epdoprogramowaniaobiektowego S3 ..............106
6.3.Ozachowywaniuigubieniuatrybutówprzezfunkcje.......................111
7.Typyzłozone ..................................................114
7.1.Macierzeitablice............................................114
7.1.1.Tworzeniemacierzy.....................................114
7.1.2.Indeksowaniemacierzy...................................118
7.1.3.Tablicejakouogólnieniemacierzy.............................120
7.1.4.Atrybut dimnames .Etykietowaniewierszyikolumn..................121
7.1.5.Reprezentacjamacierzyitablic...............................122
7.1.6.Wybraneoperacjenamacierzach..............................126
7.2.Szeregiczasowe.............................................129
7.3.Czynniki.................................................131
7.3.1.Tworzenieczynników....................................132
7.3.2.Reprezentacjaczynników..... .............................132
7.3.3.Czynnikiawektorynapisów................................134
7.3.4.Wybraneoperacjenaczynnikach..............................135
7.4.Ramkidanych..............................................138
7.4.1.Reprezentacjaramekdanych................................139
7.4.2.Operatoryindeksowania.Filtrowaniedanych.......................141
7.4.3.Wybraneoperacjenaramkachdanych...........................144
8.Piel˛egnowaniekodu .............................................156
8.1.Organizacjakodu............................................157
8.1.1.Projektyiskrypty.......................................157
8.1.2.Tworzeniewłasnychpakietów R ..............................158
8.2.Obsługawyj˛atków...........................................159
8.2.1.Rodzajewyj˛atków......................................159
8.2.2.Obsługakomunikatówdiagnostycznychiostrzeze´n...................160
8.2.3.Obsługabł˛edów........................................161
8.3.Testowanieoprogramowania.....................................162
8.4.Debugowaniekodu...........................................165
8.5.Pomiaripoprawawydajno´scikodu.................................167
8.5.1.Badaniekrótkichfragmentówkodu............................167
8.5.2.Profilowanieaplikacji....................................168
8.5.3.Złozono´ s ´ cczasowaipami˛eciowaalgorytmów......................171
9.Modyfikacjaprzepływusterowania ....................................174
9.1.Wyrazeniawarunkowe if i if...else ...............................175
9.1.1.Okre´slanietestowanegowarunku..............................178
9.1.2.Warto´scizwracaneprzezwyrazeniawarunkowe.....................181
9.1.3.Funkcja return().Rekurencja...............................182
9.2.P˛etle....................................................184
9.2.1.P˛etla while ..........................................184
9.2.2.P˛etla repeat ..........................................189
9.2.3.P˛etla for ............................................190
9.3.Uwaginatematwydajno´scip˛etli...................................193
IIPrzygotowaniedanych
10.Przetwarzanienapisów .... .......................................203
10.1.Podstawoweoperacjenanapisach..................................203
10.1.1.Wyznaczaniedługo´scinapisów...............................203
10.1.2.Porównywanienapisów...................................204
10.1.3.ٞaczenieipowielanienapisów...............................206
10.1.4.Przycinanieiwypełnianie..................................207
10.1.5.Formowanienapisównapodstawieinnychobiektów..................208
10.1.6.Zmianapojedynczychznaków...............................211
10.1.7.Wyznaczaniepodnapisów..................................211
10.1.8.Pozostałeoperacje......................................213
10.2.Wyszukiwaniewzorca.........................................214
10.2.1.Wzorceustalone........................................215
10.2.2.Wyrazeniaregularne... ..................................218
10.2.3.Wzorcerozmyte........................................229
10.3.Dataiczas................................................230
10.3.1.Reprezentacjadat.......................................230
10.3.2.Reprezentacjaczasu.....................................231
10.3.3.Operacjearytmetyczne....................................233
10.3.4.Konwersjadatyiczasu....................................234
10.4.Reprezentacjanapisów.........................................235
10.4.1.KodowanieASCII.......................................235
10.4.2.8-bitowekodowaniapolskichliterdiakrytyzowanych..................237
10.4.3.KodowanieUTF-8......................................238
10.4.4.Konwersjakodowa´n.....................................239
11.Przetwarzanieplików ............................................241
11.1.Podstawoweoperacjenaplikachikatalogach...........................241
11.1.1. ´ Sciezkidost˛epudoplikówikatalogów..........................241
11.1.2.Biez˛acykatalogroboczy. ´ Sciezkiwzgl˛edne........................243
11.1.3.Informacjeoplikachikatalogach.............................244
11.1.4.Wybranedziałanianaplikachikatalogach........................245
11.1.5.Wyszukiwanieplikówikatalogów.............................246
11.2.Serializacjaideserializacjaobiektów................................248
11.3.Popularneformatyplików.......................................249
11.3.1.PlikiCSV...........................................250
11.3.2.PlikiJSON...........................................254
11.3.3.PlikiXML...........................................255
11.4.Dost˛epdobazdanych SQL ......................................256
11.5.Dowolneplikitekstowe........................................257
11.5.1.Odczytplikówtekstowych..................................258
11.5.2.Zapisplikówtekstowych...................................258
11.6.Poł˛aczenia................................................259
11.6.1.URL,czyliujednoliconylokalizatorzasobów......................259 11.6.2.Tworzeniepoł˛acze´n......................................260
11.6.3.Otwieranieizamykaniepoł˛acze´n..............................262
11.6.4.Odczytdanychzpoł˛acze´n..................................262
11.6.5.Zapisdanychdopoł˛acze´n..................................265
11.6.6.Zarz˛adzanieotwartymipoł˛aczeniami...........................266
11.6.7.Notaoplikachbinarnych..................................267
IIIPrezentacjawyników
12.Tworzeniewykresów . ............................................271
12.1.Schematsystemówgraficznychw ´ srodowisku R ..........................271
12.2.Podstawyuzyciapakietu graphics ..................................273
12.2.1.Stronairysunki........................................274
12.2.2.Parametrygraficzne......................................275
12.2.3.Rysowaniepunktówiodcinków(łamanych).......................279
12.2.4.Barwy..............................................282
12.2.5.Rysowaniewielok˛atów....................................284
12.2.6.Wypisywanietekstu......................................286
12.2.7.Układwspółrz˛ednych.. ...................................287
12.2.8.Tworzeniewielurysunkównajednejstronie.......................291
12.3.Wybranewysokopoziomoweoperacjegraficzne..........................292
12.3.1.Rysowanieukładuwspółrz˛ednych.............................292
12.3.2.Adnotacjeilegenda......................................293
12.3.3.Wizualizacjadanychjednowymiarowych.........................295
12.3.4.Wizualizacjadanychdwuwymiarowych..........................298
12.3.5.Wizualizacjadanychwielowymiarowych.........................302
12.4.Urz˛adzeniagraficzne..........................................304
12.4.1.Urz˛adzenia pdf(), svg() i postscript() .......................307
12.4.2.Urz˛adzenia png() i jpeg() .................................307
13.Generowanieraportówprzyuzyciupakietu knitr ...........................309
13.1.J˛ezyk Markdown ............................................309
13.2.Podstawyuzyciapakietu knitr ....................................316
13.3.Ustawieniawstawek..........................................320
13.3.1.Identyfikatorywstawekizalezno´scimi˛edzynimi....................320
13.3.2.Pami˛e´cpodr˛eczna.......................................321
13.3.3.Wy´swietlaniekoduiwynikówtekstowych........................322
13.3.4.Rysunki.............................................323
13.3.5.Ustawieniaglobalne.....................................324
IVZastosowania
14.Obliczenianumeryczne ......................................337
14.1.Wprowadzenie.............................................337
14.2.Algebrawektorówimacierzy.....................................340 14.2.1.Podstawoweoperacje.....................................341
14.2.2.Normy.............................................342
14.2.3.Metrykiiinneodległo´sci...................................344
14.2.4.Wektoryiwarto´sciwłasne..................................348 14.2.5.RozkładCholeskiego.....................................350
14.2.6.RozkładQR..........................................351
14.2.7.RozkładSVD.........................................354
14.3.Rózniczkowanieicałkowanie.....................................356
14.3.1.Ró˙zniczkowanienumeryczne................................356 14.3.2.Całkowanienumeryczne...................................359
14.4.Optymalizacja..............................................360
14.4.1.Algorytmyprogramowaniamatematycznego.......................362
14.4.2.Algorytmyoptymalizacjici˛agłejogólnegozastosowania................365
14.5.Interpolacjaiwygładzanie.......................................368
14.5.1.Interpolacjajednowymiarowa................................368
14.5.2.Interpolacjadwuwymiarowa................................369
14.5.3.Wygładzanie..........................................370
14.6.Rozwi˛azywanie(układów)równa´n(nie)liniowych........................372
14.6.1.Wyznaczaniemiejsczerowychfunkcjijednejzmiennej.................372
14.6.2.Rozwi˛azywanieukładówrówna´nliniowych.......................374
14.6.3.Rozwi˛azywanieukładówrówna´nnieliniowych.....................374
15.Symulacje .............................................376
15.1.Generowanieliczb(pseudo)losowych................................376 15.1.1. ´ Zródła(pseudo)losowo´sci..................................377 15.1.2.Okre´slanieziarnageneratora................................378 15.1.3.Szczegółydziałaniageneratora...............................379
15.2.Rozkładyprawdopodobie´nstwa....................................381 15.2.1.Nazwyfunkcjizwi˛azanychzrozkładami.........................381
15.2.2.Wybranejednowymiarowerozkładyprawdopodobie´nstwa...............382 15.2.3.Zmiennelosowewielowymiarowe.............................386
15.3.Przykładoweeksperymentysymulacyjne..............................390
15.3.1.BadaniemocytestuShapiro–Wilka............................391
15.3.2.Własno´sciestymatorówparametrówrozkładuGamma.................392 15.3.3.CałkowanieMonteCarlo...................................396
15.3.4.Kroswalidacjaklasyfikatora.................................398
VZagadnieniazaawansowane
16.Zarz˛adzenie ´ srodowiskiem R . .......................................403
16.1.Podstawoweinformacje........................................403
16.1.1.Informacjeo ´ srodowisku R .................................403
16.1.2.Informacjeosystemie....................................406
16.1.3.Uruchamianieizamykanie ´ srodowiska R .........................407
16.1.4.Historiapolece´n........................................408
16.2.Opcjeglobalne.............................................408
16.3.Ustawienialokalizacyjne.......................................412
16.4.Rozszerzaniemozliwo´sci ´ srodowiska R ...............................415
16.4.1.Instalacjaiaktualizacjapakietów..............................416
16.4.2.Wywoływanieinnychprogramów.............................421
16.5.Zarz˛adzaniepami˛eci˛a.........................................422
16.5.1.Informacjaorozmiarzeobiektów..............................422
16.5.2.Kopiowaniena z˛adanie....................................424
16.5.3.Automatyczneod´smiecaniepami˛eci............................425 16.6.Typpodstawowy,trybaklasaobiektów...............................425
17. ´ Srodowiska ...................................................428
17.1. ´ Srodowiskajakozbioryobiektów..................................428
17.1.1.Podstawoweoperacjenaobiektachw ´ srodowisku....................429 17.1.2. ´ Srodowiskaalisty.......................................431
17.1.3.Przekazywanie ´ srodowiskfunkcjom............................433
17.2.Wska´znikina ´ srodowiskaotaczaj˛ace.................................435
17.2.1.Przypadekr˛ecznietworzonych ´ srodowisk.........................435 17.2.2. ´ Scie˙zkawyszukiwania....................................436 17.2.3.Przestrzenienazwi ´ srodowiskaeksportowaneprzezpakiety..............441
18.Syntaktykaisemantykaj˛ezyka R .....................................442
18.1.Obiektyreprezentuj˛acewyrazeniaj˛ezyka R ............................442 18.1.1.Parser..............................................443 18.1.2.Cytowanie...........................................446
18.1.3.Wywołania,czyliwyrazeniazłozone. ...........................446 18.2. ´ Srodowiskowymodeloblicze´n....................................451
18.2.1.Ewaluacjawyraze´n......................................452 18.2.2.Bie˙z˛ace ´ srodowiskoewaluacyjne..............................454
18.3.Ewaluacjawyraze´nwobr˛ebiefunkcji................................457 18.3.1.Lokalne ´ srodowiskaewaluacyjne..............................459 18.3.2. ´ Srodowiskaotaczaj˛acelokalne ´ srodowiskaewaluacyjne................460 18.3.3. ´ Srodowiskawywołuj˛ace...................................464 18.3.4.Ewaluacjaargumentów....................................465
18.4.Formuły.................................................471
18.4.1.Przykładyfunkcjistosuj˛acychargumentytypuformuła.................471 18.4.2.Formułyjakowywołania...................................473
18.4.3.Przetwarzanieformuł.....................................474
19.Programowaniezorientowaneobiektowo ................................476
19.1.Paradygmatyprogramowaniaobiektowego.............................476
19.2.Klasy S3 .................................................478
19.2.1.Okre´slanieklasyobiektu...................................479
19.2.2.Ekspediowaniemetod....................................479
19.2.3.Przeci˛azaniemetod......................................482
19.3.Klasy S4 .................................................483
19.3.1.Definiowanieklasitworzenieobiektów..........................484
19.3.2.Definiowaniefunkcjigenerycznychimetod.......................487
19.4.Klasyreferencyjne(RC)........................................491
19.5.Specjalnerodzajefunkcji.......................................492
19.5.1.Funkcjepodstawieniowe...................................492
19.5.2.Przeci˛a˙zanieoperatorów...................................494
19.5.3.Wbudowanegrupyfunkcjigenerycznych.........................495
20.Integracja R i C++ przyuzyciupakietu Rcpp ............................498
20.1.Wprowadzenie.............................................499
20.1.1.Trybypracyz Rcpp ......................................499
20.1.2.Podstawyskładnij˛ezyka C++ ...............................503
20.2.Operacjenawektorachatomowych.................................509
20.2.1.Dost˛epdowektorów.....................................509
20.2.2.Tworzeniewektorów.....................................512
20.2.3.Kopiowaniepłytkieigł˛ebokie................................513
20.2.4.Brakidanych..........................................515
20.2.5.Przegl˛adfunkcjiz R/CAPI .................................517
20.2.6.Przegl˛adfunkcjiimetodzpakietu Rcpp .........................520
20.3.Operacjenapozostałychtypachobiektów.............................521
20.3.1.Listy...............................................521
20.3.2.Funkcje.............................................523
20.3.3.Atrybutyobiektów......................................524
20.3.4.Obiektytypówzłozonych..................................525
20.3.5.Wska´zniki...........................................527
Bibliografia .....................................................532 Skorowidz ......................................................537