100529561

Page 1


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

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.
100529561 by WN PWN - Issuu