You are on page 1of 123

<- ...erre, erre...!

Bevezets az R-nyelv s krnyezet hasznlatba e e o a a

Solymosi Norbert

2 Ezton szeretnk ksznetet mondani az R Development Core Team-nek az R-rendszer fejlesztsrt, illetve a u e o o e ee hasznos dokumentcikrt s pldkrt. Az R-rendszert alkalmazk kzssgnek a hasznos levelezsi arvh a o e e e a e o o o e e e vumrt s egyb dokumentcikrt. Szintn nagy seg eget nyjtottak (a segdlet tmakreinek kivlasztsban) e e e a o e e ts u e e o a aa kollgim: Harnos Andrea s Reiczigel Jen, valamint Pnzes Zsolt s Barta Zoltn. A szveg nyelvi ellenrze a e o e e a o o e sben seg e tett Dala Sra. a

Solymosi Norbert, 2005

Tartalomjegyzk e
Elsz o o Bevezets e Az R mkdsnek alapelvei . . . . . . . . . . . . u o ee Szintaktikai alapok . . . . . . . . . . . . . . . . . . Utas asok . . . . . . . . . . . . . . . . . . . . . . . t Fggvnyek . . . . . . . . . . . . . . . . . . . . . . u e Az adatok tartssga s az objektumok eltvol asa o a e a t Szvegszerkesztk . . . . . . . . . . . . . . . . . . . o o Segdletek e help . . . apropos . example . demo . . . Segdletek e 5 6 . 6 . 8 . 8 . 9 . 10 . 10 11 . 11 . 15 . 15 . 16 . 16 19 . 19 . 20 . 20 . 21 . 25 . 34 . 35 . 38

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . a

. . . . . . . . . . . . . . . . . . . . . . . . CRAN-on

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

Objektumok Attribtumok . . . . . . . u Objektumok kezelse . . . e Adatok begpelse . . . . e e Adatgenerls . . . . . . . aa Adattrol objektumok . a o Kifejezs . . . . . . . . . . e Objektumok szerkesztse . e Objektum-mveletek . . . u

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

Adatok olvassa, kezelse s asa a e e r 41 Munkaknyvtr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 o a Adatok olvassa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 a Adatok ki asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 rat Graka A grakai eszkz bell asai . . . . o a t Az alaptelep es grakai fggvnyei t u e Interakt vizualizci . . . . . . . v a o Trellis . . . . . . . . . . . . . . . . 52 . 52 . 57 . 61 . 63

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Programozs R-ben a 65 Vezrlk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 e o Sajt fggvnyek ksz ese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 a u e e t Jelentsek ksz ese e e t Sweave . . . . . . . . . . . . . . . . . Plda . . . . . . . . . . . . . . . . . e Sweave bell asok . . . . . . . . . . a t Objektumok hasznlata a szvegben a o A kdszakasz ujrahasznos asa . . . o t Tangle vagy weave . . . . . . . . . . Az RweaveLatex paramterezse . . e e 71 71 72 72 76 76 77 77

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . . 3

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

TARTALOMJEGYZEK

Fuggelk e

78

Telep es t 79 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Szovegszerkesztk o 85 Tinn-R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Kate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Grakus feluletek 90 Windows RGui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 R Commander . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 SciViews-R GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 ODBC-kapcsolat ltrehozsa e a Microsoft Excel . . . . . . . . Microsoft Access . . . . . . . MySQL . . . . . . . . . . . . PostgreSQL . . . . . . . . . . 111 111 111 114 114

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Szoftverintegrci a o 116 R (D)COM Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 RPy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Elsz o o
Ezt a rvid hasznlati utmutatt azrt kezdtem el o a o e rni, hogy magyarul is elrhet legyen egy az R nyelv e o alkalmazsba bevezet segdlet. Termszetesen a hasonl jelleg munkk, vagyis gyorsan fejld ny forrsaa o e e o u a o o lt a kd rendszerek felhasznlst seg o szvegek sohasem lehetnek teljesek. minden esetben a teljessg ignye o u aa a t o Igy e e nlkl kezdhet csak bele a szerkeszt a munkba, ami viszont egy alapos segdletet elkpzelve folyamatos e u o a e e e hinyrzetet okoz. Igen sok angol nyelv anyag ll rendelkezsre, de mindnek msok a cljai s slypontjai. a e u a e a e e u Radsul e slypontoknak megfelelen ms s ms didaktikai felp est kvetnek. Arrl nem is beszlve, a a u o a e a e t o o e hogy hnyszor egymsnak ellentmondan. . . a a o Az n clom az volt, hogy egy pusztn technikai bevezett adjak kzre, a specilis alkalmazsok (pl. statisztika) e e a o o a a elhagysval. Ahogy mr megjegyeztem, mindenkppen tredkes lesz az elll kzirat, tbben bizonyra paa a e o e oa o e o a e pen azt nem fogjk megtallni benne, amit kerestek, msok pedig esetenknt ms megfogalmazst tartannak a a a e a a a helyesnek. Eppen ezrt szeretnm, ha ezt az R-bevezett jelen llapotban kiindulsnak, bv e e o a a a o tend alapnak o tekintenk, mely folyamatosan fejldhet, ujabb rszekkel egszlhet ki. Ebben a folyamatban sz e o e e u vesen vennk e minden megjegyzst, kritikt s szvegjavaslatot. e a e o Addig is remlem, hogy munkm hasznra vlik majd nhnyaknak. e a a a e a

Budapest, 2005. szeptember 27. Solymosi Norbert Biomatematikai s Szm astechnikai Tanszk e a t e Allatorvos-tudomnyi Kar a Szent Istvn Egyetem a 1078 Budapest, Istvn u. 2. a E-mail: Solymosi.Norbert@aotk.szie.hu Honlap: http://www.univet.hu/users/nsolymosi/

Bevezets e
Az R egy olyan programozsi nyelv s krnyezet, amely klnsen alkalmas statisztikai szm asok s grakai a e o uo o a t e megjelen esi feladatok megvals asra. Az R-nyelv a John Chambers ltal elind t o t a a tott S-nyelv GNU verzijaknt o e is tekinthet. (Az S nyelvet az 1970-es vekben a Bell Laboratories-ben fejlesztettk interakt adatelemzs s o e e v e e vizualizci cljbl.) Az R szabad szoftver, ami a LESSER GNU1 GENERAL PUBLIC LICENSE2 kzreadsi a o e a o o a felttelek alapjn terjeszthet. Az S-nyelvvel val rokonsg miatt az S-nyelven, illetve az S-Plus3 krnyezetben e a o o a o meg kdok a legtbb esetben hasznlhatk az R-krnyezetben is, esetenknt azonban mdos asokra szorulrt o o a o o e o t nak. Az R magva egy parancsrtelmez (interpreter) jelleg nyelv, szintaxisa felletesen hasonl a C nyelvre, de e o u u t e tulajdonkppen egy funkcionlis programozsi nyelv a Scheme4 nyelvhez hasonl kpessgekkel. Az R-nyelv e a a o e e tbbek kztt lehetv teszi ciklusok alkalmazst, illetve a modulris programozst fgvnyeken keresztl. o o o o e aa a a u e u A felhasznlk ltal hasznlt fggvnyek tbbsge R-ben van meg ao a a u e o e rva, amelyek kisebb bels primit eljrsoo v a a kat gyjtemnyre plnek. Ms nyelvekben (C, C++ vagy FORTRAN) meg eljrsokat is hasznlhatunk a u e e e u a rt a a a nagyobb hatkonysg rdekben, illetve kiegsz o primit e a e e e t veket ksz e thetnk. u Az R-rendszer nagyszm statisztikai eljrst tartalmaz. Ezek kztt talljuk a lineris s generalizlt lineris a u aa o o a a e a a modelleket, a nem-lineris regresszis modelleket, idsoranal a o o ziseket, klasszikus paramteres s nem-paramteres e e e teszteket, klaszterezsi s sim asi mdszereket. A statisztikai lehetsgek mellett sok fggvny rhet el a rue e t o oe u e e o galmas grakai krnyezetben; e krnyezet seg egvel az adatok reprezentcija igen sokflekppen vals o o ts e a o e e o that o meg. Az alaprendszerrel telep tett eljrsok mellett igen nagy szm csomag rhet el mind a CRAN5 -rl, mind a aa a u e o o 6 Bioconductor -rl, mind pedig egyb internetes trolkbl. Az R rohamos terjedse folytn egyre tbben hozo e a o o e a o nak ltre egyegy specilis adatelemzsi terletnek megfelel eljrsgyjtemnyeket, csomagokat, amelyeket az e a e u o aa u e R-kzssg rendelkezsre bocsjtanak. o o e ee a Az R-nyelv fejlesztst Robert Gentleman s Ross Ihaka (Statistics Department of the University of Auckland) ee e kezdte el. 1997. kzepe ta az R Development Core Team mdos o o o thatja az R forrskd CVS arch a o vumt. a A krnyezet elnevezs arra utal, hogy inkbb alaposan megtervezett s egysges rendszerrl van sz, mint o e a e e o o folyamatosan nvekv nagyon specilis s merev eszkzrl (mint amilyenek a gyakrabban hasznlt adatelemz o o a e o o a o szoftverek). Az R nagyfok hordozhatsggal rendelkezik, hiszen mind Windows, mind Linux, mind pedig MacOS opercis u oa a o rendszerekhez elrhetk binris telep ok. Emellett a forrskd is letlthet, az abbl trtn telep es mg e o a t a o o o gy o o e o t e nagyobb rugalmasgot biztos a t. Az egyszer interakt programozs mellett lehetsg ny komplexebb megoldsok fejlesztsre, illetve lehetsu v a oe lik a ee e ges integrlt megoldsok fejlesztse, sszekapcsols ms alkalmazsokkal (pl. Microsoft Excel), illetve kombinls a a e o a a a aa A ms nyelvekkel (pl. L TEX, Python, Visual Basic, Deplhi, stb.). Ez utbbi lehetsg seg egvel sajt alkalmaa o oe ts e a zsok fejleszthetk gyakori statisztikai vagy vizualizcis feladatok egyszer megoldsra. a o a o u aa

Az R m kodsnek alapelvei u e e
Ahogy az elbbiekben lttuk, az R-nyelv egy interpretlt szkript nyelv, a programkdokat nem ford o a a o tjuk binris llomnny a futtatshoz, hanem az R-parancsrtelmez rtelmezi azokat. Az R-nyelv szintaxisa szerint a a a a a e oe megszerkesztett kdjainkat terminlon keresztl juttatjuk el az interpreterhez. Az 13. brkon lthat egy o a u a a a o Linux-os, egy DOS-os s egy Microsoft Windows-os terminl. Tulajdonkppen az 1. s a 2. egyformn mkdik, e a e e a u o vagyis a be kdokat ENTER-rel jvhagyva rtelmezi. A 3. brn lthat Windows-os RGui terminl az rt o o a e a a a o a elbbieknl tbb, a menrendszerbl elrhet funkcival rendelkezik. o e o u o e o o
1 http://www.gnu.hu/ 2 http://www.gnu.org/copyleft/lgpl.html 3 http://www.insightful.com/ 4 http://www.plt-scheme.org/ 5 http://cran.r-project.org/ 6 http://www.bioconductor.org/

AZ R MUKODESENEK ALAPELVEI

1. abra. Linux-os terminl a

2. bra. DOS-os terminl a a

BEVEZETES

3. bra. Windows-os RGui a A kdok rtelmezhetk parancssori, illetve szkript mdban. Az elbbinl a promptban (>) be kdot uj o e o o o e rt o sor kezdsvel kldhetjk el az rtelmezhz. Az utbbi esetben a megszerkesztett, ltalban tbb sorbl ll ee u u e o o o e a a o o a o fjlban mentett szkriptet h a vjuk meg akr az R-terminlon (source()), akr ms eszkzzel (pl. R CMD BATCH). a a a a o Ahogy a UNIX s Windows termilokban ltalnos, itt is a fggleges nyilak seg egvel tudunk kzlekedni e a a a u o ts e o az utas asok trtnetben. A mr korbban lefuttatott utas ast a felfel mutat ny t o e e a a t e o llal h vhatjuk ujra s vagy e ujrartelmeztetjk ugy, ahogy van, vagy pedig jav e u tjuk s az uj utas ast futtatjuk le. e t A parancsrtelmez ltal vgrehajtott utas asok eredmnyei visszatrhetnek a terminlba, fjlba, adatbzisba, e oa e t e e a a a valamint a grakus eszkz(k)re (4. bra). o o a

Szintaktikai alapok
Az R-rendszer kis- s nagybet rzkeny, pldul az R s az r klnbz szimblumoknak szm e ue e gy e a e uo o o o a tanak, s klnbz objektumokat jelenthetnek. Altalban minden alfabetikus szimblum hasznlhat a vltozk nee uo o o a o a o a o vben, ezek mellett a . s az _ is nhny megktssel. A nevek vagy .-tal vagy betvel kezddhetnek, ha .-tal e e e a oe u o kezddik egy nv a msodik karakter nem lehet szm. Az kezetes betk hasznlata vltoz siker, attl fgo e a a e u a a o u o u gen, hogy milyen opercis rendszeren ,illetve milyen nyelvi bell asokkal mkdik a rendszernk. Amennyiben o a o a t u o u hordozhat kdot szeretnnk o o e rni, akkor lehetsg szerint az objektumnevekben rdemes mellzni az kezetes oe e o e betket. u A megjegyzseket #-el jelljk, az ezt kvet karakterek a sor vgig megjegyzsknt rtelmezdnek. e o u o o e e e e e o

Utas asok t
Az alaputas asok kifejezsek vagy rtkadsok lehetnek. Ha egy kifejezst rtkads nlkl adunk meg mint t e e e a e e e a e u utas ast, akkor az R kirtkeli s megjelen az rtkt, ami egyben el is vsz. t e e e ti e e e e > 1 + 2 [1] 3

FUGGVENYEK

4. abra. Parancsrtelmez e o A terminlban megjelent ltvnybl az els sor > 1+2 a kifejezs, amit rtelmeztetni, futtatni szerettnk volna, a o a a o o e e u a [1] 3 sor pedig a kifejezs rtkelse utni eredmny. A szgletes zrjelek kztt lv 1 azrt ll ott, mert e e e e a e o ao o o e o e a az eredmnynk egy vektor s annak a sor elejn ll elemnek indext jelzi. e u e e a o e e Egy rtkads esetn ugyancsak kirtkeli a kifejezst, de az rtkt automatikus megjelen es nlkl eltrolja e e a e e e e e e e t e u a egy objektumban. Az rtkads ltalnos szintaxisa vltoz <- kifejezs. Az rtkads jeleknt itt a <e e a a a a o e e e a e hasznlatos, de lehet hasznlni a = s a -> jelet is. Korbban csak az ltalunk hasznlhat jel mkdtt minden a a e a a a o u o o esetben. > a <- 1 + 2 > a [1] 3 Itt mr kt utas ast hasznltunk, az els sor elvgzi az sszeadst s az rtkadst, a msodik sor pedig ki a e t a o e o a e e e a a ratja az a objektumban trolt rtket. Fontos megjegyezni, hogy amennyiben egy vltoznak uj rtket adunk, akkor a e e a o e e annak a korbbi rtke trldik s fell odik az ujjal. a e e o o e u r > a <- 5 > a [1] 5 Ha tbb utas ast adunk meg, az R azokat egyms utn rtelmezi. Az egyes utas asokat vagy pontosvesszvel o t a a e t o vagy sortrssel vlaszthatjuk el. Amennyiben az rtelmez egy szintaktikailag teljes utas ast tall, akkor azt oe a e o t a rtelmezi s az eredmnyt visszaadja. A pontosvessz mindig az utas as vgt jelzi.Ha a bevitt utas as szine e e o t e e t taktikailag nem teljes, s egy uj sort kezdnk, az rtelmezs nem fut le. Amennyiben interakt uzemmdban e u e e v o dolgozunk, ilyenkor a prompt az alaprtelmezett >-rl +-ra vltozik. e o a Az utas asokat csoportos t thatjuk is, kapcsos zrjelek {} kz rendezve. Az utas as-csoportokat esetenknt ao o e t e blokk nak h ak. Egy magban ll utas ast akkor rtelmez az R-krnyezet, ha annak szintaxisa teljes, s uj vj a a o t e o e sort kezdnk. A blokkot mindaddig nem rtelmezi, am azt le nem zrjuk, s uj sort nem kezdnk. u e g a e u > { + + + + } [1] 3 A kvetkezkben az utas ason mind a magban ll, mind a blokkba rendezett utas asokat rtjk. o o t a a o t e u a <- 1 b <- a + 2 b

Fuggvnyek e
Az R-ben ltrehozott s kezelt egysgeket objektumoknak nevezzk. Ezek lehetnek vltozk, tmbk, karake e e u a o o o terlncok, fggvnyek vagy ezek komplex struktri. Az R-rendszeren bell az objektumokon opertorokkal s a u e ua u a e

10

BEVEZETES

fggvnyekkel vgezhetnk klnbz mveleteket. A fggvnyek a fuggveny.neve(arg1,arg2,argN) szintaxis u e e u uo o o u u e szerint plnek fel. A fuggveny.neve hatroza meg a fggvny nevt, amivel azonos a rendszer a megh e u a u e e tja vand eljrs(oka)t. A zrjelek kz foglalt agrN a fggvny argumentumait jelenti. Egyes fggvnyek esetn o aa ao o e u e u e e nem minden argumentumnak kell megadnunk rtket, mivel a fggvny rendelkezik alaprtelmezett rtkekkel. e e u e e e e

Az adatok tartssga s az objektumok eltvol asa o a e a t


Egy R-munkafolyamat (session) sorn a ltrehozott objektumok nv szerint vannak trolva. Az objects() a e e a vagy a ls() utas as ki a konzolra az aktulisan az R-ben trolt objektumok nevt. Az aktulisan trolt t rja a a e a a objektumokat egyttesen munkaterletnek (workspace) nevezzk. A mr feleslegess vlt objektumokat az rm() u u u a e a fggvnnyel tvol u e a thatjuk el, ugy, hogy a fggvny paramtereknt az objektum(ok) nevt adjuk meg. u e e e e A ltrehozott objektumokat trolhatjuk egy kvetkez munkafolyamat szmra. Minden R-munkafolyamat ve a o o a a e gn, a kilpskor az RGui felajnlja a munkaterlet mentst. Amennyiben mentjk az objektumainkat, azok egy e e e a u ee u .RData, a munkafolyamatban hasznlt sszes utas as pedig egy .Rhistory kiterjeszts fjlba odik ki. Amia o t eu a r kor ujraind tjuk az R-t, a mentett munkaterlet betltdik (az elemzsek folytathatsga vgett). Emellett az u o o e oa e utas asok trtnete is betltdik. Ez igen zavar is lehet, mivel gyakori, hogy klnbz elemzsi munkafolyamat o e o o o uo o o e tokban is ugyanolyan egyszer neveket hasznlunk, ami automatikus betltds esetn adatok felcserldshez u a o o e e eo e e vezethet. Ennek kivdse rdekben egyrszt minden elemzst kln knyvtrban tancsos vgezni, msrszt e e e e e e uo o a a e a e rdemes az objektumneveket specializlni. e a

Szovegszerkesztk o
Amennyiben hosszabb szkripteket szeretnnk ksz e e teni, a terminlban val programkd as nehzkes s igen a o o r e e a ttekinthetetlen. Ezrt, ha ilyen feladatba fogunk, rdemes valamilyen szvegszerkesztvel meg a kdjainkat. e e o o rni o

Windows
Az RGui a 2.0.1-es verzitl kezdve tartalmaz egy szkript-szerkeszt eszkzt, ami igen egyszer szvegszeroo o o u o keszt, kevs funkcival. Elnye viszont, hogy a benne szerkesztett kdbl egyes sorokat vagy kijellt szakaszokat o e o o o o o kzvetlenl lehet tadni az R-terminlnak rtelmezsre. o u a a e e A Microsoft Windows krnyezetben a kellkek kztt elrhet Jegyzettmb teljes mrtkben megfelel a kd o e o o e o o e e o szerkesztshez. Ha ebben szerkesztjk a szkriptnket, akkor vagy ugy tudjuk az R-rtelmezhz eljuttatni, ee u u e o o hogy a source() fggvnyt hasznljuk, vagy a szerkesztbl a vglapra helyezett kdrszletet beillesztjk az u e a o o a o o e u R-terminlba. Htrnya mg, hogy egyszerre csak egy llomny tudunk benne szerkeszteni. a a a e a a Igen hasznos eszkz a Tinn-R7 szerkeszt, amivel egyszerre tbb fjlt kezelhetnk s ezek projektbe szervezhetk. o o o a u e o Emellett kpes kommuniklni a bell e a a tott R-terminllal. Ennek seg egvel a szerkesztbl kzvetlenl kldhea ts e o o o u u tnk kdokat vagy egsz szkript-fjlokat az R-hez. (A mellkletben rvid le as tallhat a Tinn-R bell asval u o e a e o r a o a t a kapcsolatban.)

Linux
Linuxon igen j eszkz a Kate 8 szerkeszt, ami rendelkezik egy terminlablakkal is, egy alkalmazson o o o a gy a bell lehet szerkeszteni s futtatni is a kdokat. u e o

Platformfuggetlen alkalmazsok a
o Platformfggetlen, sokfle feladatra hasznlhat eszkz az Emacs 9 vagy az Xemacs 10 , mely mint szerkeszt u e a o o is nagyon jl hasznlhat, de ha az ESS 11 (Emacs Speaks Statistics) csomagot is telep uk, akkor emellett, o a o tj mint az R-rtelmezvel val kzvetlen egyttmkdsre is kpes. e o o o u u o e e

7 http://www.sciviews.org/Tinn-R/ 8 http://kate.kde.org/ 9 http://www.gnu.org/software/emacs/emacs.html 10 http://www.xemacs.org/ 11 http://ess.r-project.org/

Segdletek e
Az R nagy elnye, hogy igen jl dokumentlt. A mkds minden pontja kontrolllhat, a nyitott forrso o a u o e a o a kdnak ksznheten. Termszetesen a forrskd tanulmnyozsnl egyszerbb informcinyersi lehetsgek o o o o e a o a aa a u a o e oe is rendelkezsre llnak az R hasznlatval kapcsolatban felmerl krdsek megvlaszolsra. Ezeket a lehete a a a uo e e a aa o sgeket gyjtttem ssze az albbiakban. e u o o a

help
Az R-ben a bep e tett sgrendszer a UNIX man segdlethez hasonl Ha egy adott fggvnnyel kapcsolatban u o e e t. u e rszletesebb informcikat szeretnnk megismerni, hasznlhatjuk a help parancsot. Ha pldul rdekelnek a mean e a o e a e a e fggvny paramterezsnek rszletei, jrhatunk el: u e e ee e gy a > help(mean) Ugyanezt rhetjk el az egyszers e u u tett szintaxissal: > ?mean mean Arithmetic Mean Description: Generic function for the (trimmed) arithmetic mean. Usage: mean(x, ...) ## Default S3 method: mean(x, trim = 0, na.rm = FALSE, ...) Arguments: x: An R object. Currently there are methods for numeric data frames, numeric vectors and dates. A complex vector is allowed for 'trim = 0', only. trim: the fraction (0 to 0.5) of observations to be trimmed from each end of 'x' before the mean is computed. na.rm: a logical value indicating whether 'NA' values should be stripped before the computation proceeds. ...: further arguments passed to or from other methods. Value: For a data frame, a named vector with the appropriate method being applied column by column. package:base R Documentation

11

12 If 'trim' is zero (the default), the arithmetic mean of the values in 'x' is computed. If 'trim' is non-zero, a symmetrically trimmed mean is computed with a fraction of 'trim' observations deleted from each end before the mean is computed. References: Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S Language_. Wadsworth & Brooks/Cole. See Also: 'weighted.mean', 'mean.POSIXct' Examples: x <- c(0:10, 50) xm <- mean(x) c(xm, mean(x, trim = 0.10)) mean(USArrests, trim = 0.2)

SEGEDLETEK

Az output szerkezete
A fent lthat output szerkezete ltalnos, nhny szban a kvetkez: a o a a e a o o o Az els sor els eleme a keresett objektum neve, a msodik pedig annak a csomagnak a neve, ami tartalmazza o o a azt. A kvetkez sorban lesz a dokumentci idevonakoz szakasznak c o o a o o a me, ezt kvetik a le o rszek: o r e Description: rvid le as o r Usage: ha fggvnyrl van sz, akkor a fggvny szintaxisa az sszes argumentumval, ha opertorrl, akkor u e o o u e o a a o opertor tipikus alkalmazsnak szintaxisa a aa Arguments: az argumentumok jelentsnek le asa s hasznlatuk szintaxisra vonatkoz megjegyzsek ee r e a a o e Details: rszletesebb le as e r Value: amennyiben van ilyen, akkor a fggvny vagy opertor hasznlata nyomn keletkez objetum le asa u e a a a o r References: a fejlesztk ltal fontosnak tartott kzlemny(ek) bibliograi adatai o a o e a Author(s): a fggvny, vagy az azt tartalmaz csomag ksz oinek neve u e o e t See Also: az R-dokumentciban a tmval kapcsolatban javasolhat egyb szakaszok a o e a o e Examples: a megrtst seg o nhny pldt mutat be e e t e a e a Ha specilis karaktereket tartalmaz kifejezst keresnk, a karaktereket szimpla vagy dupla idzjelek kz kell a o e u e o o e foglalnunk: > help("[[") Ugyanezt az eljrst hasznljunk egyes szavak esetn, amelyek szintaktikai jelentssel b aa a e e rnak (mint pl.: az if, a for vagy a function). A legtbb R-telep esben elrhet egy HTML sg rendszer is, amit a kvetkez o t e o u o o o paranccsal tudunk megh vni: > help.start() A parancs eredmnyeknt az alaprtemezett web browsernkben megjelenik a 5. brn lthat lap, ami a e e e u a a a o telep tett verzival s csomagokkal kapcsolatos informcik gyors elrst seg A kpernyn lthat linkek o e a o eee ti. e o a o seg egvel tudunk vndorolni a szmunkra fontos terletek kztt. Az An Introduction to R, Writing R Extents e a a u o o sions, The R Language Denition, R Data Import/Export, R Installation and Administration dokumentumok itt elrhet HTML verzija mellett nyomtathat pdf formtumban is elrhetk az ltalnos telep es utn, e o o o a e o a a t a mgpedig Windows krnyezetben a C:\Program Files\R\rw2001\doc\manual knyvtrban. A Search Engine e o o a

HELP

13

5. bra. HTML sg a u o

14

SEGEDLETEK

& Keywords rsz csak akkor mkdik ha telep e u o tett Java-val rendelkeznk valamint ha a browsernk Java s u u e JavaScript tmogatssal rendelkezik. a a A help() utas ast csak akkor tudjuk hasznlni, ha pontosan ismerjk a keresett fggvny nevt. Ha nem het a u u e e lyes adjuk meg a fggvny nevt, mint a kvetkez pldban, akkor nem jutunk a vrt informcihoz: Ha pl. u e e o o e a a a o szeretnnk a t-teszt alkalmazsval kapcsolatos informcikat s nem tudjuk a fggvny pontos nevt, megpre aa a o e u e e o blhatjuk a help(t-test) utas ast. a t > help(t-test) No documentation for 't - test' in specified packages and libraries: you could try 'help.search("t - test")' Az uzenetben kzli velnk az R, hogy a betlttt csomagok kztt nem tallt ilyen fggvnyt, s felajnlja, o u o o o o a u e e a hogy a help.search() fggvnnyel prbljuk megtallni azokat a csomagokat, illetve fggvnyle asokat, ameu e o a a u e r lyekben ez a szsszettel szerepel. M az alapbell asokkal a help() csak az aktulisan betlttt csomagok oo e g a t a o o kztt keres, addig a help.search() az sszes telep o o o tett R knyvtrban. Amennyiben a help() fggvnyben o a u e a try.all.packages argumentumot TRUE-ra ll a tjuk, akkor nem csak a betlttt, hanem az sszes telep o o o tett csomagban keres az objektum nevre. Hozztve azt, ha ppen nincsen betltve a telep e ae e o tett csomag az R-be, akkor nem fogja megjelen teni az objektumhoz tartoz le ast, csak azt adja meg, hogy mely csomag tartalmazza o r azt. > help(glh.test, try.all.packages=T) Help for topic 'glh.test' is not in any loaded package but can be found in the following packages: Package gmodels Library C:/PROGRA~1/R/rw2011/library

A jelzett csomag betltse utn a sg ki o e a u o rja a hasznlattal kapcsolatos informcikat. Msik lehetsg az a a o a oe informci megszerzsre, ha az intz seg esvel megnyitjuk a megjellt knyvtrat, vagyis a fenti plda szerint a o ee e o t e o o a e a C:\Program Files\R\rw2001\library knyvtron bell a gmodels alknyvtrat. Itt a 24. brhoz hasonl o a u o a a a o szerkezetet lthatunk, amelyen bell van egy chtml| alknyvtr. Ez tartalmaz egy gmodels.chm fjlt, ami egy a u o a a a llomnyban tartalmazza a csomag teljes dokumentcijt. Lthat, hogy az ltalunk megadott t-test szveget a a oa a o a o az R talak a totta t - test-. Most prbljuk megkeresni a help.search("t - test") utas assal a keresett e o a t fggvnyt. u e > help.search("t - test") No help files found with alias or concept or title matching 't - test' using fuzzy matching. Sajnos sem tudtunk meg semmit a t-teszt hasznlatrl. Most prbljuk meg ugy, hogy a ktjel kt vgrl gy a ao o a oo e e eo a szkzket elhagyjuk. o o o > help.search("t - test") bartlett.test(stats) fisher.test(stats) pairwise.t.test(stats) power.t.test(stats) t.test(stats) Bartlett Test for Homogeneity of Variances Fisher's Exact Test for Count Data Pairwise t tests Power calculations for one and two sample t tests Student's t-Test

Vgre megkaptuk a sgrendszer azon elemeit, amelyek tartalmaznak a megadott keressi felttelhez hasonl e u o e e o karakterlncot. Lthat, hogy az eredmnyknt megjelen listban a sorok az R-objektum nevvel kezddnek, a a o e e o a e o szorosan ezutn kvetkezik az azt tartalmaz knyvtr neve, majd pedig a R dokumentcin belli elnevea o o o a a o u zse. Ezek kzl mr ki tudjuk vlasztani azt az elemet, amit kerestnk (Students t-Test) s a help(t.test) e o u a a u e seg egvel ki tudjuk ts e ratni a dokumentcijt. a oa

APROPOS

15

apropos
Az apropos fggvnnyel a betlttt knyvtrak objektumainak neveiben kereshetnk karakteret vagy azok u e o o o a u lncolatt. A fggvny a telep a a u e tett, de nem betlttt knyvtrakban nem keres. o o o a > apropos("test") [1] [3] [5] [7] [9] [11] [13] [15] [17] [19] [21] [23] [25] [27] [29] [31] "testVirtual" "bartlett.test" "Box.test" "cor.test" "fligner.test" "kruskal.test" "mantelhaen.test" "mood.test" "pairwise.prop.test" "pairwise.wilcox.test" "power.prop.test" "PP.test" "prop.trend.test" "shapiro.test" "var.test" "testPlatformEquivalence" "ansari.test" "binom.test" "chisq.test" "fisher.test" "friedman.test" "ks.test" "mcnemar.test" "oneway.test" "pairwise.t.test" "power.anova.test" "power.t.test" "prop.test" "quade.test" "t.test" "wilcox.test"

Amennyiben csak azokat az objektumok keressk, amelyek nevnek a vgn szerepel a keresett karakterlnc, a u e e e a kvetkez szerint vgezhetjk el: o o e u > apropos("*.test") [1] [4] [7] [10] [13] [16] [19] [22] [25] [28] "ansari.test" "Box.test" "fisher.test" "kruskal.test" "mcnemar.test" "pairwise.prop.test" "power.anova.test" "PP.test" "quade.test" "var.test" "bartlett.test" "chisq.test" "fligner.test" "ks.test" "mood.test" "pairwise.t.test" "power.prop.test" "prop.test" "shapiro.test" "wilcox.test" "binom.test" "cor.test" "friedman.test" "mantelhaen.test" "oneway.test" "pairwise.wilcox.test" "power.t.test" "prop.trend.test" "t.test"

Amennyiben csak azokat az objektumok keressk, amelyek nevnek az elejn szerepel a keresett karakterlnc, u e e a tehetjk meg: gy u > apropos("^test") [1] "testVirtual" "testPlatformEquivalence"

example
Az example() fggvny szintn seg u e e thet egyes fggvnyek hasznlatnak elsajt asban. Kiprblhatjuk u e a a a t a o a vele azokat a pldkat, amelyeket a szerzk bep e a o e tettek az egyes csomagokba. Ez igazn hasznos lehet egyes a fggvnyek paramterezsnek tanulmnyozsban. u e e ee a aa > example(fisher.test) fshr.t> TeaTasting <- matrix(c(3, 1, 1, 3), nr = 2, dimnames = list(Guess = c("Milk", "Tea"), Truth = c("Milk", "Tea"))) fshr.t> fisher.test(TeaTasting, alternative = "greater") Fisher's Exact Test for Count Data data: TeaTasting

16 p-value = 0.2429 alternative hypothesis: true odds ratio is greater than 1 95 percent confidence interval: 0.3135693 Inf sample estimates: odds ratio 6.408309

SEGEDLETEK

demo
Egyes csomagokhoz szkripteket mellkelnek az eljrsok bemutatsra. Ezek a demo fggvny seg egvel e aa aa u e ts e lefuttathatk s ttekintst nyjtanak a knyvtr alkalmazsnak lehetsgeirl. A demo() utas assal, arguo e a e u o a aa oe o t mentum nlkl kilistzhatjuk az alapcsomagokhoz tartoz bemutatkat. e u a o o > demo() Demos in package 'base': is.things recursion scoping Explore some properties of R objects and is.FOO() functions. Not for newbies! Using recursion for adaptive integration An illustration of lexical scoping.

Demos in package 'graphics': Hershey Japanese graphics image persp plotmath Tables of the characters in the Hershey vector fonts Tables of the Japanese characters in the Hershey vector fonts A show of some of R's graphics capabilities The image-like graphics builtins of R Extended persp() examples Examples of the use of mathematics annotation

Demos in package 'stats': glm.vr lm.glm Some glm() examples from V&R with several predictors Some linear and generalized linear modelling examples from An Introduction to Statistical Modelling' by Annette Dobson Nonlinear least-squares using nlm() Visualize' steps in Tukey's smoothers

nlm smooth

Ha az sszes telep o tett csomaghoz tartoz bemutatszkriptet ki szeretnnk listzni, akkor a fenti forma helyett o o e a a demo(package = .packages(all.available = TRUE)) utas ast hasznljuk. A listkbl kivlasztva egy det a a o a mt, pl. a graphics csomagbl az image bemutatt, a demo(image) utas assal futtathatjuk le. o o o t

Segdletek a CRAN-on e
Gyakran feltett krdsek (GYIK) e e
A gyakran feltett krdsek12 s azok archivlt vlaszai sok esetben nyjthatnak clzott seg eget. e e e a a u e ts

Keress e
Az eddigiekbl lthat, hogy amennyiben valamely fggvnnyel vagy egyb objektummal kapcsolatban szeo a o u e e retnnk informcihoz jutni, a fenti lehetsggekkel csupn a gpnkre telep e a o oe a e u tett csomagok dokumentcijban a oa tudunk keresglni. Azonban a legtbb esetben a csomagoknak csak egy rsze van telep e o e tve gpnkre, vagyis az e u R eljrsainak csak tredkrl szerezhetnk informcikat. A CRAN szleskr keressi lehetsget k al (6. aa o e eo u a o e ou e oe n a bra), aminek seg egvel minden fggvnyrl, egyb objektumrl begyjthetk a k ant informcik. ts e u e o e o u o v a o
12 http://cran.r-project.org/

SEGEDLETEK A CRAN-ON

17

6. bra. Keressi fellet a CRAN-on a e u

18

SEGEDLETEK

R News
Az R News vente hrom alkalommal jelenik meg s az R-rel kapcsolatos ujdonsgokrl szmol be. e a e a o a

Levelezsi listk e a
Szmos levelezsi lista rhet el. Ezek igen nagy aktivitssal mkdnek. Az ltalnos cl levelezsi lisa e e o a u o a a eu e tk: R-announce, R-packages, R-help s R-devel listk. Egyes specilis rdeklds terletnek megfelelen a e a a e o e u o ltrehozott listk: R-sig-DB, R-SIG-Debian, R-sig-Epi, R-sig-finance, R-sig-Geo, R-sig-gR, R-SIG-GUI, e a R-SIG-Mac, R-sig-QA.

Objektumok
Az R-en bell mind az adatstruktrk, mind pedig a fggvnyek objektumknt jelennek meg. Az R-munkau ua u e e folyamatban jelenlv objektumokat kilistzhatjuk a ls vagy az objects fggvnyekkel. Az egyes objektumok e o a u e t ara, illetve mdjra vonatkoz informcikat kiolvashatjuk fggvnyek seg egvel. A typeof(x) fggvny pus o a o a o u e ts e u e seg egvel az x objektum t at olvashatjuk ki. Nhny gyakrabban elfordul rtk az 1. tblzatban olvasts e pus e a o oe e a a hat. Az x objektum S-nyelvel kompatibilis md jt a mode(x) fggvnnyel olvashajuk ki. A storage.mode(x) o o a u e fggvny pedig az x objektum trolsi mdjt adja vissza. Ez utbbi akkor fontos, ha valamilyen egyb nyelven u e a a o a o e fggvnyt h rt u e vunk meg (C, FORTRAN, stb.) s a mveletek elvgzse eltt fontos ellenrizni, hogy a fore u e e o o mtum megfelel-e az adott eljrs argumentum-elvrsainak. Az egyes vektorok t ara s mdjra jellemz a aa aa pus e o a o rtkeket a 2. tblzat tartalmazza. e e a a

Attrib tumok u
A NULL kivtelvel minden objektumhoz hozzrendelhetk attribtumok. Az attribtumok egy lista elemee e a o u u iknt vannak eltrolva. A lista elemeit az attributes fggvnnyel olvashatjuk, illetve az <-attributes-al e a u e rhatjuk. Egyedi komponenseket az attr fggvnnyel olvashatunk, illetve az <-attr-al u e rhatunk. Egyes attribu tumok sajtos elrsi funkcival rendelkeznek (pl. a faktoroknl a levels), amennyiben ilyen elrhet, rdemes a ee o a e o e ezeket hasznlni az adott feladatra. A mtrixok s a tmbk egyszer vektorok dim s dimnames attribtumokkal a a e o o u e u kiegsz e tve.

names
A names attribtum az adott objektum egyes elemeire utal c u o mke, amellyel egyben hivatkozni is lehet az adott elem(ek)re. Az adott objektumbl kiolvashatjuk a neveket a names fggvnnyel. Ugyanakkor a <-names o u e formban a rhajuk is azokat, termszetesen ekkor ugyelni kell a t e pusra s a mretekre. Egy dimenzis tmbk e e o o o esetben a names attribtum tulajdonkppen a dimnames[[1]]-el egyezik meg. e u e

dim
A dim attribtumot a tmbk ltrehozsra vezettk be. A tmbk tulajdonkppen vektorok, amelyek oszu o o e aa e o o e lopban troljk a vektor adatait, a tmb kiterjedseit pedig a dim attribtumban egsz szmokbl ll veka a o e u e a o a o torknt adjuk meg. Az R ellenrzi, hogy a dimenzikban megadott kiterjedsi hosszak megfelelnek-e a vektor e o o e hossznak. A dimenzik mrete lehet akr nulla is. A vektor nem egyezik meg az egydimenzis tmbbel, mivel a o e a o o az utbbi rendelkezik dim attribtummal, m az elbbi nem. o u g o

1. tblzat. a a rtk e e NULL symbol closure logical integer double complex character list raw

Fontosabb typeof visszatrsi rtkek ee e e jelentse e Null vltoz neve a o fggvny u e logikai rtkekbl ll vektor e e o a o egsz szmokbl ll vektor e a o a o lebegpontos szmokbl ll vektor o a o a o komplex adatokbl ll vektor o a o karaktervektor lista binris vektor a 19

20

OBJEKTUMOK

2. tblzat. A t a a pus, md s trolsi md kombincik o e a a o a o typeof mode storage.mode logical logical logical integer numeric integer double numeric double complex complex complex character character character

forrs a 0 1 2 0 1 2 0 1 2 FALSE FALSE FALSE '0' '1' '0' '1' '0' '1' 0 1.2 0 1.2 0 1.2

3. tblzat. T a a pus-konverzik o konverzi o eredmny e NA as.character "0" "1" "2" NA NA as.logical FALSE TRUE TRUE NA NA as.complex 0+0i 1+0i 2+0i NA TRUE NA as.character "FALSE" "TRUE" NA TRUE NA as.numeric 0 1 NA TRUE NA as.complex 0+0i 1+0i NA 'a' NA as.logical NA NA NA NA 'a' NA as.numeric 0 1 NA NA 'a' NA as.complex 0+0i 1+0i NA NA 2.3 NA as.logical FALSE TRUE TRUE NA 2.3 NA as.numeric 0.0 1.2 2.3 NA 2.3 NA as.character "0" "1.2" "2.3" NA

dimnames
A tmbk egyes dimenzii elnevezhetk a dimnames attribtumban trolt nevekkel. A neveket egy szveges o o o o u a o vektorokbl ll listban adhatjuk meg. o a o a

class
Az R bep e tett osztly-rendszere a class attributmon keresztl kezelhet. A class attribtum szveges a u u o u o vektor, azokat az osztlyokat tartalmazza, amelyekbl az adott objektum szrmazik. a o a

tsp
A tsp az idsorobjektumok attribtuma, azok paramtereit trolja (start, end s frequency). o u e a e

Objektumok kezelse e
Objektumok ltrehozsa e a
Ahogy mr a korbbiakban lttuk, ltrehoztunk objektumokat rtkadssal. Ekkor azonban az objektum a a a e e e a mdja, t o pusa ltalnosknt lesz meghatrozva. Az objektumot ugy is ltrehozhatjuk, hogy mdjt, t at, a a e a e o a pus mrett, stb. elre meghatrozzuk. Ez a lehetsg igen hasznos lehet az objektumokkal val manipulcik sorn. e e o a oe o a o a Pldul ltrehozhatunk ures objektumokat s mdos e a e e o thajuk elemeiket, ami hatkonyabb, mint a c() fggvnnyel e u e egyszerre feltlteni a vektort. Az elemek mdos asban az indexeket is hasznlhatjuk. o o t a a Az adattrol objektumokat (lsd albb) feltlthetjk adatokkal, adatfjlok beolvassval, adatok generlsval, a o a a o u a aa aa a illetve adatsorok billentyzetrl val bevitelvel. Az adatfjlok olvassrl s asrl a kvekez fejezetben lesz u o o e a a a o e r a o o o sz. Az albbiakban (az egyes objektumt o a pusok ismertetse eltt) az adatgenerlsrl e o a a o rok, mivel az adattrol a o objektumok ismertetse eltt ez clszernek ltszik. e o e u a

Adatok begpelse e e
A szm asainkban vagy a grakai megjelen esekben hasznland adatainkat, ha nem tl nagy mennyisgrl a t t a o u e o van sz, akkor gyorsan begpelhetjk, tbbflekppen is: o e u o e e

ADATGENERALAS

21

c
A c fggvny rtkeket vagy objektumokat fz ssze vektorr vagy listv. Alaprtelmezsben a megadott u e e e u o a a a e e rtkeket vektorr fzi ssze. e e a u o c(..., recursive=FALSE) A c fggvny argumentumainak le asa: u e r ... recursive Az osszefzend rtkek vagy objektumok, amelyeket vesszvel vlasztunk el. u oe e o a Ha az rtke TRUE s az objektumok kztt van lista is, akkor a lista minden e e e o o elemt egy vektor elemeiv alak s a vgleges objektum vektor lesz. Ha FALSE e e tja e e s az sszefzend objektumok egyik eleme lista, akkor az eredmnyknt ltrejv e o u o e e e o o objektum is lista lesz.

A c fggvny seg egvel ltrehozhatunk egy egszer vektort: u e ts e e u > a <- c(1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5) > a [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 Ures vektort is ltrehozhatunk: e > a <- c() > a NULL

scan
A scan fggvny rszletesebb le ast az adatfjlok olvassa s asa rsznl lehet megtallni, itt egy egyszerbb u e e r a a a e r e e a u alkalmazst lthatjuk. Seg egvel a kvetkez mdon hozhatunk ltre hasonl vektort: aa a ts e o o o e o > a <- scan() 1: 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 10: Read 9 items > a [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 Az egyes rtkeket szkzzel elvlasztva gpeljk be egyms utn. e e o o a e u a a

Adatgenerls aa
Szablyos sorozatok a
A kvetkez fggvnyek hasznlhatk: o o u e a o seq Szablyos sorozatok generlsra hasznlhatjuk. a aa a a from:to a:b seq(from, to) seq(from, to, by=) seq(from, to, length=) seq(along=) seq(from)

22 A seq fggvny argumentumainak le asa: u e r

OBJEKTUMOK

A sorozat indul rtke. oe e A sorozat zrrtke. a oe e A sorozat nvekedsnek/cskkensnek lptke. o ee o ee e e A ltrehozand sorozat hossza, elemszma. e o a Az itt megadott objektum hossznak megfelel hosszsg sorozatot hoz ltre. a o ua u e Egyenl hosszsg faktorok. o ua u Szablyos, egsz szmokbl ll sorozatot generl a kvetkez utas as, amiben a 1-tl 10-ig terjed vektor lesz: a e a o a o a o o t o o from to by length along a,b > a <- 1:10 > a [1] 1 2 3 4 5 6 7 8 9 10

> a <- 1:10 - 1 > a [1] 0 1 2 3 4 5 6 7 8 9

A msodik sorozatnl azt lthatjuk, hogy elbb generl 1-tl 10-ig egy sorozatot s utna, az eredmnyvektor a a a o a o e a e mindegyik tagjbl kivon egyet. a o > a <- 1:(10 - 1) > a [1] 1 2 3 4 5 6 7 8 9

Ez utbbi esetben a sorozat kezd rtke 1 lett, mivel nem a vektor mindegyik elembl vontunk ki egyet, hanem o oe e e o a szekvencia maximlis rtkbl, amit a : utni zrjellel adtunk meg. a e e e o a ao > a <- seq(1, 5, 0.5) > a [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 , ahol az seq fggvny els argumentuma a kezdete, a msodik a vge, a harmadik pedig a nvekvnye a u e o a e o e sorozatnak. Ms mdon is elll a o oa that az elz sorozat: o o o > a <- seq(length = 9, from = 1, to = 5) > a [1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 , ahol a length a sorozat elemszmt, a from a kezdett, a to pedig a vgt jelenti. a a e e e rep Vektorok vagy listk elemeit ismtli s ezltal hoz ltre sorozatot. Az ltalnos rep fggvnynl gyorsabb az a e e a e a a u e e egyszers u tett rep.int vltozat. a rep(x, times, ...) ## Default S3 method: rep(x, times, length.out, each, ...) rep.int(x, times) A rep fggvny argumentumainak le asa: u e r x times egy vektor (brmilyen formban), vagy pairlist vagy POSIXct vagy POSIXlt a a vagy date objektum Nem negat egsz szm(ok)bl ll vektor, ami megadja, hogy az x-et, illetve v e a o a o elemeit hnyszor ismtelje meg a fggvny. Ha a vektor hossza 1, akkor az abban a e u e megadott szmszor ismtli meg az x-et. Ha a hosszsga egyezik a x hosszsgval, a e ua ua a akkor az egyez index elemeinek rtknek megfelel szmban ismtli x adott o u e e e o a e elemt. e

ADATGENERALAS length.out each ... Nhny plda: e a e > a <- c(1,2,3) > b <- rep(a, 3) > b [1] 1 2 3 1 2 3 1 2 3 A b vektort ugy hozza ltre, hogy az a vektort hromszor megismtli. e a e > b <- rep(a, c(3,2,1)) > b [1] 1 1 1 2 2 3 Azt adhatjuk meg vele, hogy az eredmnyvektor milyen hossz legyen. e u Az x minden elemt megismtli az itt megadott egsz szmnak megfelelen. e e e a o tovbbi argumentumok a

23

Itt lthat az, hogy ha a times argumentumban megadott rtk hossza nem 1 s megegyezik az a vektor a o e e e hosszval, akkor az egymsnak megfelel index szorzval ismtli meg a forrsvektor elemeit. Esetnkben az els a a o u o e a u o elemet hromszor, a msodik elemet ktszer, a harmadik elemet pedig egyszer illeszti be az eredmnyvektorba. a a e e sequence A sequence fggvny seg egvel az argumentumban megadott rtkekkel vgzd sorozatokat generlhatunk. u e ts e e e e o o a Tulajdonkppen ugy, mintha a seq(from, to) fggvnyben a from mindig 1 lenne s csak a to rtket adnnk e u e e e e a meg. Azzal egytt, hogy itt egszerre tbb to rtket megadhatunk. u o e e > a <- sequence(c(4,5)) > a [1] 1 2 3 4 1 2 3 4 5 > a <- sequence(4:5) > a [1] 1 2 3 4 1 2 3 4 5 A fenti kt plda ugyanazt az eredmnyt adja, a msodik valamivel egyszerbben. Mindkt esetben ugyanaz a e e e a u e vektor a fggvny argumentuma, csak ms formban adjuk meg. u e a a gl A gl fggvny faktorokat hoz ltre a megadott szinteknek megfelelen. u e e o gl(n, k, length = n*k, labels = 1:n, ordered = FALSE) A gl fggvny argumentumainak le asa: u e r n k length labels ordered Egsz szm, ami megadja a szintek szmt. e a a a Egsz szm, ami az ismtlsek szmt hatrozza meg. e a e e a a a Az eredmny hosszt megad egsz szm. e a o e a A faktor szintjeinek elnevezsre szolgl vektor. ee ao Logikai rtk, ami azt hatrozza meg, hogy az eredmnyt rendezze-e vagy sem a e e a e fggvny. u e

> a <- gl(3, 5) > a [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 Levels: 1 2 3 > a <- gl(3, 5, length = 30) > a

24 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 Levels: 1 2 3 > a <- gl(2, 6, label = c("Male", "Female")) > a [1] Male Male Male [11] Female Female Levels: Male Female > a <- gl(2, 10) > a [1] 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 Levels: 1 2 > a <- gl(2, 1, length = 20) > a [1] 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 Levels: 1 2 > a <- gl(2, 2, length = 20) > a [1] 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 1 1 2 2 Levels: 1 2 Male Male Male Female Female Female Female

OBJEKTUMOK

Vletlen sorozatok e
A statisztikban igen hasznos eljrsok azok, amelyek seg egvel vletlen adatok ll a aa ts e e a thatk el. Az Ro o nyelvben nagyszm srsgfggvny ll rendelkezsre erre a feladatra. E fggvnyek ltalnos formja ...func(n, p1, p2, a u uue u e a e u e a a a ahol a func a valsz usgi fggvnyt jelzi, n a generland elemszmot s p1,... a valsz usg fggvny pao n e u e a o a e o n e u e ramterei (4. tblzat). A fggvnyek nevben szerepl ... helyre d (srsgfggvny), p (eloszlsfggvny), e a a u e e o e u u e u e a u e q (kvantilis fggvny) vagy r (vletlenszm-generls) bet kerlhet. u e e a aa u u 4. tblzat. Vletlen sorozatok a a e szably a fggvny u e bta e ...beta binomilis a ...binom Cauchy ...cauchy 2 ...chisq exponencilis a ...exp Fisher-Snedecor (F) ...f gamma ...gamma Gaussian (normlis) ...norm a geometrikus ...geom hypergeometrikus ...hyper logisztikus ...logis lognormlis a ...lnorm negative binomilis a ...nbinom Pearson (c2) ...chisq Poisson ...pois Student(t) ...t uniform ...unif Weibull ...weibull Wilcoxons statistics ...wilcox, ...signrank

ADATTAROLO OBJEKTUMOK

25

Adattrol objektumok a o
Vektor
A vektorokat alkothatjk numerikus, karakter, komplex vagy logikai adatt a pusok. Ugyanazon vektoron bell u tbbfle t o e pus nem hasznlhat. Korbban mr lttuk, hogy vektorokat ltrehozhatunk tbbfle mdon is az a o a a a e o e o adatgenerl fggvnyek vagy a c fggvny seg egvel. A vector fggvnnyel is ltrehozhatunk vektorokat. ao u e u e ts e u e e vector(mode = "logical", length = 0) A vector fggvny argumentumainak le asa: u e r mode length E kulcssz, arra utal, hogy milyen t u adatok trolsra szolgl a ksz o pus a aa a e tend o vektor. Nem negat egsz szm, amivel bell v e a a tjuk, hogy hny elemet tartalmazzon a veka tor.

A ltrehozott vektor rtkei attl fggenek, hogy milyen md ot ll e e e o u o a tottunk be: 0 ha numerikus, FALSE ha logikai vagy "" ha karakteres. A vector fggvny, aminek kt argumentuma van (mode s length), ltrehoz egy vektort, u e e e e > a <- vector(mode = "numeric", length = 5) > a [1] 0 0 0 0 0 > a <- vector(mode = "logical", length = 5) > a [1] FALSE FALSE FALSE FALSE FALSE > a <- vector(mode = "character", length = 5) > a [1] "" "" "" "" "" Ugyanezt rhetjk el egyetlen argumentum (length) megadsval, ha a numeric, a logical vagy a character e u aa fggvnyeket hasznljuk. u e a > a <- numeric(length = 5) > a [1] 0 0 0 0 0 > a <- logical(length = 5) > a [1] FALSE FALSE FALSE FALSE FALSE > a <- character(length = 5) > a [1] "" "" "" "" ""

Faktor
A faktorokat alkothatjk numerikus vagy karakter adatt a pusok. Ugyanazon faktoron bell tbbfle t u o e pus nem hasznlhat. A factor fggvny nem pusztn egy kategorilis vltozbl ll vektort hoz ltre, hanem a vltoz a o u e a a a o o a o e a o szintjeit is kigyjti. u factor(x, levels = sort(unique.default(x), na.last = TRUE), labels = levels, exclude = NA, ordered = is.ordered(x)) A factor fggvny argumentumainak le asa: u e r x levels Vektor, karakter vagy numerikus. Vektor, amely azon rtkekbl llhat, amelyekbl a x felpl. (Alaprtelmezsben e e o a o e u e e a x vektor nvekv sorba ll o o a tott egyedi rtkei.) e e

26 labels exclude

OBJEKTUMOK e Ertke vagy a levels vektor hosszsgval megyegyez hosszsg c eket tarua a o u a u mk talmaz vektor, vagy 1 hosszsg karaktervektor. o ua u Vektor, ami azokat az rtkeket tartalmazza, amelyeket el szeretnnk tvol e e e a tani a ltrehozand faktorbl. Ennek a vektornak ugyanolyan t unak kell lennie, mint e o o pus az x vektornak. Logikai rtk. Annak meghatrozsra, hogy a levels rendezve legyenek. e e a aa

ordered

Most ltrehozunk egy vektort s azt faktorr alak e e a tjuk: > a <- rep(c(1, 2, 3), 3) > a [1] 1 2 3 1 2 3 1 2 3 > r <- factor(a) Vessnk egy pillantst az eredmnyl kapott r faktor bels szerkezetre, a fix(r) utas assal: u a e u o e t structure(as.integer(c(1, 2, 3, 1, 2, 3, 1, 2, 3)), .Label = c("1", "2", "3"), class = "factor") > r <- factor(x, levels = 1:5) > r [1] 1 2 3 1 2 3 1 2 3 Levels: 1 2 3 4 5 > r <- factor(a, labels = c("a", "b", "c")) > r [1] a b c a b c a b c Levels: a b c > r <- factor(a, exclude = 3) > r [1] 1 2 Levels: 1 2 <NA> 1 2 <NA> 1 2 <NA>

A levels fggvnnyel kiolvashatjuk a faktor szintjeit: u e > levels(r) [1] "1" "2" "3" A labels utas assal kigyjthetk a faktor lehetsges szintjei: t u o e > labels(r) [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" Ezen rtkek megegyeznek a seq(along=a) fggvny eredmnyvel: e e u e e e > seq(along=a) [1] 1 2 3 4 5 6 7 8 9

Tmb o
A tmbket alkothatjk numerikus, karakter, komplex vagy logikai adatt o o a pusok. Ugyanazon tmbn bell o o u tbbfle t o e pus nem hasznlhat. Az array fggvny a forrsadatokbl (data) ltrehoz egy tmbt, ami a dim a o u e a o e o o argumentum ltal meghatrozott dimenzij. a a ou array(data = NA, dim = length(data), dimnames = NULL)

ADATTAROLO OBJEKTUMOK Az array fggvny argumentumainak le asa: u e r data dim dimnames

27

A tmb feltltsre szolgl vektor. Ha nem adunk meg adatokat, akkor ures tmo o ee ao o bt hoz ltre o e Egy vagy tbb elemet tartalmaz egsz szm vektor, aminek elemei a az egyes o o e a dimenzik maximlis indext adjk meg. o a e a A dimenzik nevt adhatjuk meg ezzel a lista t u argumentummal. Ha van neve o e pus az egyes dimenziknak, akkor azon keresztl is lehet rjuk hivatkozni. o u a

Amennyiben a forrsadat kevesebb elembl ll, mint amennyit a dimenzik meghatroznak, a fggvny a hinyz a o a o a u e a o elemeket feltlti a forrsadatokbl. o a o > a <- rep(c(1, 2, 3), 3) > r <- array(data = a, dim = c(2, 4)) > r [,1] [,2] [,3] [,4] 1 3 2 1 2 1 3 2

[1,] [2,]

> nevek <- list(c(1, 2), c("a", "b", "c", "d")) > r <- array(data = a, dim = c(2, 4), dimnames = nevek) > r a b c d 1 1 3 2 1 2 2 1 3 2 A tbbdimenzis tmbk s kontingencia-tblzatt alak asra egyszer eszkz a ftable fggvny. o o o o k a a a t a u o u e > ftable(Titanic, row.vars = 1:3) Survived Class Sex 1st Male Female 2nd Male Female 3rd Male Female Crew Male Female Age Child Adult Child Adult Child Adult Child Adult Child Adult Child Adult Child Adult Child Adult No Yes 0 5 118 57 0 1 4 140 0 11 154 14 0 13 13 80 35 13 387 75 17 14 89 76 0 0 670 192 0 0 3 20

Mtrix a
A mtrixokat alkothatjk numerikus, karakter, komplex vagy logikai adatt a a pusok. Ugyanazon mtrixon bea ll tbbfle t u o e pus nem hasznlhat. A matrix fggvnnyel lehet ltrehozni mtrixot, ami tulajdonkppen egy a o u e e a e ktdimenzis vektor. e o matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL) A matrix fggvny argumentumainak le asa: u e r data nrow Az adatokat tartalmaz vektor. Ha nem adjuk meg, akkor egy ures mtrixot hoz o a ltre. e A sorok szmt adhatjuk meg vele. Rvid ese nr. a a o t

28 ncol byrow dimnames

OBJEKTUMOK Az oszlopok szmt adhatjuk meg seg egvel. Rvid a a ts e o tve nc. Ha az rtke az alaprtelmezett FALSE, akkor oszlopfolytonosan, egybknt pedig e e e e e sorfolytonosan tlti fel a mtrixot adatokkal. o a Egy listban a dimenzik nevt adhatjuk meg, hasonlan a tmbhz, itt viszont a o e o o o csak kt dimenzi van. e o

A mtrix kpzsnl a sorok szmt az nrow (rvid a e ee e a a o tve nr), az oszlopok szmt az ncol (rvid a a o tve nc) argumentummal adjuk meg. Legalbb az egyiket meg kell adnunk. a > a <- 1:6 > m <- matrix(a, nr = 3) > m [1,] [2,] [3,] [,1] [,2] 1 4 2 5 3 6

Lthat, hogy a mtrix kpzsekor az adatforrst oszlopfolytonosan tlti be a matrix fggvny. Ha a byrow a o a e e a o u e argumentumot az alaprtelmezett FALSE helyett TRUE-ra ll e a tjuk, akkor mtrixunk sorfolytonosan fog feltltdni. a o o > m <- matrix(a, nr = 3, byrow = T) > m [1,] [2,] [3,] [,1] [,2] 1 2 3 4 5 6

Az oszlopok s sorok neveit a dimnames argumentum seg egvel hatrozhatjuk meg, amit a tmbnl ltottak e ts e a o e a szerint listaknt kell megadni. e Mtrixot az array fggvnnyel is ltrehozhatunk. Tovbbi mtrix-kpzsi lehetsg, hogy egy vektorbl hozunk a u e e a a e e oe o ltre mtrixot a dim fggvny seg egvel: e a u e ts e > a <- 1:6 > a [1] 1 2 3 4 5 6 > dim(a) NULL > dim(a) <- c(3, 2) > a [1,] [2,] [3,] [,1] [,2] 1 4 2 5 3 6

data.frame
A data.frame-eket alkothatjk numerikus, karakter, komplex vagy logikai adatt a pusok. Ugyanazon data.frame o e pus. A data.frame olyan adattbla, aminek alkot oszolopai vektorknt foghatk en bell hasznalhato tbbfle t u a o e o fel. Fjlbl beolvasott adattblk eredmnyei ltalban ilyen objektumknt jelennek meg, de ltrehozhatjuk a a o a a e a a e e data.frame fggvnnyel is. u e data.frame(..., row.names = NULL, check.rows = FALSE, check.names = TRUE) A data.frame fggvny argumentumainak le asa: u e r ... Vagy csak az rtkeket adjuk meg, ilyenkor ha azok rendelkeznek nvvel, akkor a e e e tblzat meznevei rklik ezeket. Vagy nvvel adjuk meg az rtkeket, ilyenkor a a o oo e e e ez e nv fog szerepelni a tblzat fejlcben. e a a e e

ADATTAROLO OBJEKTUMOK row.names

29

check.rows check.names

Seg egvel a sorok neveit adhatjuk meg. Ha egyetlen rtkknt adjuk meg, akkor ts e e e e ezzel azt hatrozzuk meg, hogy melyik oszlop tartalmazza azokat az rtkeket, a e e amelyeket a sorok elnevezsre sznunk. Az adott oszlopot megadhatjuk a soree a szmval, illetve a nevvel is. Ha vektorknt adjuk meg az rtkt, akkor annak a a e e e e e hossza meg kell hogy egyezzk a sorok szmval. Az alaprtelmezett rtk NULL. e a a e e e Ha az rtke TRUE, akkor ellenrzi, hogy a sorok hossznak s elnevezseinek egyee e o a e e zsgt. oe e Az alaprtelmezett TRUE rtk mellett ellenrzi a mezneveket: megfelelnek-e a e e e o o vltozk elvenezsi szablyainak, illetve, hogy nincsenek-e duplumok. a o e a

Az adattbla ltrehozsakor ugyeljnk arra, hogy az alkot vektorok egyforma hosszsgak legyenek. Amennyia e a u o ua u ben az egyik vektor rvidebb a msiknl, s a hosszabb vektor hossza oszthat a rvidebb vektor hosszval, o a a e o o a akkor a fggvny a rvidebb vektor ismtlsvel kiptolja a klnbsget. u e o e ee o uo e > > > > > > 1 2 3 4 x n M y r r x 1 2 3 4 <<<<<n 10 10 10 10 1:4 10 c(10, 35) 2:4 data.frame(x, n)

> r <- data.frame(x, M) > r 1 2 3 4 x 1 2 3 4 M 10 35 10 35

Ha viszont a hosszabb nem oszthat a rvidebbel, akkor hibt generl a fggvny. o o a a u e r<-data.frame(x,y) Error in data.frame(x, y) : arguments imply differing number of rows: 4, 3 Amennyiben az adattbla egy oszlopa nem vektor, hanem faktor, arra is vonatkozik, hogy azonos hosszsgnak a ua u kell lennie. Az adattblba bepl vektorok oszlopok lesznek, amiknek a neve alaprtelmezsben a vektor neve a a e uo e e lesz (ezt mdos o thatjuk). > r <- data.frame(oszlop1 = x, oszlop2 = n) > r 1 2 3 4 oszlop1 oszlop2 1 10 2 10 3 10 4 10

A rows.names argumentum seg egvel a sorokat is elnevezhetjk, a bemeneti objektum vektorknt adand ts e u e o meg, s a hossznak meg kell egyeznie a tblzat oszlopainak hosszval. e a a a a > r <- data.frame(oszlop1 = x, oszlop2 = n, row.names = c("a", + "b", "c", "d")) > r a b c d oszlop1 oszlop2 1 10 2 10 3 10 4 10

30 A mtrixhoz hasonlan a data.frame is rendelkezik dim argumentummal. a o > dim(r) [1] 4 2

OBJEKTUMOK

Lista
A listkat alkothatjk numerikus, karakter, komplex, logikai adatt a a pusok, illetve fggvny s kifejezs Ugyanu e e e azon listn bell tbbfle t a u o e pus hasznalhato. A listt a data.frame-hoz hasonlan hozhatjuk ltre a list a o e fggvnnyel. Altalban azt mondhatjuk, hogy semmilyen megkts nincsen az alkotelemekkel kapcsolatban. u e a oe o Nem szm hogy az egyes p oelemek (vektorok, listk, mtrixok stb.) milyen mretek. Azt viszont rdemes a t, e t a a e u e megjegyezni, hogy az alkotelemek nevt nem p be automatikusan a list fggvny a listba. o e e ti u e a list(...) A list fggvny argumentumainak le asa: u e r ... Objektumok, brmilyen. a

> lista1 <- list(x, y) > lista2 <- list(A = x, B = y) > lista1 [[1]] [1] 1 2 3 4 [[2]] [1] 2 3 4 > lista2 $A [1] 1 2 3 4 $B [1] 2 3 4 > names(lista1) NULL > names(lista2) [1] "A" "B"

Idsor o
A idsorokat alkothatjk numerikus, karakter, komplex vagy logikai adatt o a pusok. Ugyanazon idsoron bell o u o e pus. A ts fggvny seg egvel vektorbl vagy mtrixbl hozhatunk ltre egy idsor hasznalhato tbbfle t u e ts e o a o e o objektumot. A fggvny bell asi lehetsgei a kvetkezk: u e a t oe o o ts(data = NA, start = 1, end = numeric(0), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )

ADATTAROLO OBJEKTUMOK data start end frequency deltat ts.eps class names

31

numerikus vektor vagy mtrix. Amennyiben data.frame a bemen adat, akkor a a o data.matrix fggvnnyel numerikus fgvnny alak a ts fggvny u e u e e tja u e az els meggyels idpontja. Akr egy egsz szm, akr egy kt szmbl ll veko e o a e a a e a o a o tor, amely megad egy termszetes idegysget s egy 1-gyel kezdd mintaszmot e o e e o o a az utols meggyels idpontja, start-hoz hasonlan. o e o o az idegysgen belli meggyelsek szma. o e u e a kt meggyelsi idpont kzti mintavteli rsze (pl.: 1/12 a havonknti adatokhoz). e e o o e e e Vagy csak a frequency, vagy csak a deltat adhat meg. o az idsor sszehasonl asi tolerancija. A gyakorisgok egyenlnek tekintendk, ha o o t a a o o az abszolt klnbsgeik kisebbek, mint ts.eps rtke. u uo e e e az eredmnyhez rendelt osztly. Az alaprtelmezett rtk ts egy egyszer idsore a e e e u o hoz, vagy c("mts", "ts") tbbszrs idsorhoz. o oo o karaktervektor, ami a tbbszrs idsorok neveit adja meg, az alaprtke a data o oo o e e oszlopnevei vagy Series 1, Series 2, . . .

Nhny plda a ts fggvny paramterezsre: e a e u e e ee > ts(1:10, start = 1974) Time Series: Start = 1974 End = 1983 Frequency = 1 [1] 1 2 3

9 10

> ts(1:20, start = c(1974, 8), frequency = 4) 1975 1976 1977 1978 1979 1980 Qtr1 Qtr2 Qtr3 Qtr4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

> ts(1:20, start = c(1974, 8), frequency = 12) 1974 1975 1976 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Hivatkozs az objektumok elemeire a


Indexels e Az indexelsi rendszer nagyon rugalmas s hatkony eszkz az egyes adattrol objektumok elemeinek kie e e o a o olvassra, akr numerikus, akr logikai adatt aa a a pusokrl van sz. Az idexeket az objektum utn szgletes o o a rt o zrjellel adjuk meg. ao Az indexeles nem 0-rol hanem 1-rol indul!!! > x <- 1:3 > x [1] 1 2 3 Ha az x vektor harmadik elemt szeretnnk kiolvasni, egyszeren megtehetjk az x[3] utas assal. e e u u t > x[3] [1] 3 Ha mtrixbl vagy data.frame-bl szeretnnk kiolvasni rtkeket, azt kt index alkalmazsval tehetjnk meg. a o o e e e e aa u Az x mtrixbl egy elemet az x[i,j] utas assal olvashatunk ki, ahol i a mtrix sort, j pedig a sort jell a o t a a a oo index. Egy egsz sor olvasshoz az x[i,], egy egsz oszlophoz pedig az x[,j] parancsot hasznlhatjuk. e aa e e a

32 > x <- matrix(1:9, nc = 3) > x [,1] [,2] [,3] 1 4 7 2 5 8 3 6 9

OBJEKTUMOK

[1,] [2,] [3,]

> x[2, 2] [1] 5 > x[2, ] [1] 2 5 8 > x[, 2] [1] 4 5 6 A mtrixhoz hasonlan a tmbknl is hasznlhat az idexekkel val olvass, a dimenzik szerint bv a o o o e a o o a o o tve az indexek szmt. Pl. egy hromdimenzis tmb esetn egy elemre az x[i,j,k] hivatkozhatunk. a a a o o e Az indexek seg egvel nem csak kiolvashatunk rtkeket a tmbkbl, hanem lekrdezseket is vgezhetnk ts e e e o o o e e e u az objektumokbl, illetve azok elemeit is mdos o o thatjuk. > x[-1, ] [,1] [,2] [,3] 2 5 8 3 6 9

[1,] [2,]

> x[, -1] [,1] [,2] 4 7 5 8 6 9

[1,] [2,] [3,]

> x[-1, -1] [,1] [,2] 5 8 6 9

[1,] [2,]

> x[-c(1, 3), ] [1] 2 5 8 Ahogy lthat a pldbl, az objektumbl eltvol a o e a o o a thatunk elmeket, sorokat, oszlopokat. Az objektumok elemei kzl lekrdezhetjk a bizonyos feltteleknek megfelelket. o u e u e o > x[x >= 5] [1] 5 6 7 8 9 A mtrixbl azokat az rtkeket gyjti ki, amelyek ttel egyenlk vagy nagyobbak. a o e e u o o > which(x >= 5) [1] 5 6 7 8 9 A felttelnek megefelel elemek indexeit is kigyjthetjk, ltszlag ugyanaz az eredmny, de m az elz ple o u u a o e g o o e dban az rtkeket, itt az idexeket gyjtttk ki. Az egyes feltteleknek megfelel elemeket fell is a e e u o u e o u rhatjuk. > x[x >= 5] <- 10 > x

ADATTAROLO OBJEKTUMOK [,1] [,2] [,3] 1 4 10 2 10 10 3 10 10

33

[1,] [2,] [3,]

A data.frame-eken hasonlan hajthatjuk vgre a lekrdezseket. A listk esetben az indexek tbbrtegek o e e e a e o e u lehetnek, lljon itt nhny plda: a e a e > > > > > x <- matrix(1:9, nc = 3) y <- 1:5 allista <- list(c("a", "b", "c"), c(8, 5, 2, 4, 1, 3)) lista <- list(x, y, allista) lista

[[1]] [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 [[2]] [1] 1 2 3 4 5 [[3]] [[3]][[1]] [1] "a" "b" "c" [[3]][[2]] [1] 8 5 2 4 1 3 A lista gykr-elemeire dupla szgletes zrjelek kz zrt indexszel hivatkozhatunk. Az els gykr-elem egy o e o ao o e a o o e mtrix, annak az els oszlopt a kvetkez mdon hivatkozhatjuk: a o a o o o > lista[[1]][, 1] [1] 1 2 3 A lista harmadik gykr-eleme egy msik lista A lista msodik vektornak harmadik elemre a kvetkez mdon o e a a a e o o o hivatkozhatunk: > lista[[3]][[2]][3] [1] 2 Ahogy lthat, a listaelemeken bell a vektoroknl s mtrixoknl ltott hivatkozst hasznljuk. a o u a e a a a a a Nvvel val hivatkozs e o a A nevek attribtumok, amelyek tbb fajtja is lehet (nevek, oszlopnevek, sornevek, dimenzinevek). Tbbek u o a o o kztt arra is alkalmasak, hogy objektumok elemeire hivatkozhassunk. Ahhoz, hogy nevek seg egvel hivatkozo o ts e zunk elemekre, tudnunk kell, hogy milyen nevek vannak az objektumban. Az objektumban elfordul neveket o o tbb mdon is kiolvashatjuk, ennek egyik mdja a names() fggvny alkalmazsa. o o o u e a > names(lista) NULL Lthat, hogy a korbban ltrehozott listnk nem tartalmaz neveket. A nvadst megtehetjk az objektum a o a e a e a u ltrehozsakor, de utlag is. Az elbb hasznlt names() fggvny seg egvel rtket is adhatunk az objektue a o o a u e ts e e e munknak. A nvadshoz az objektum mretvel megegyez hosszsg vektort kell hasznlnunk, a fenti pldban e a e e o ua u a e a hasznlt lista 3 elem, teht egy 3 elembl all vektorban kell megadnunk a listaelemek neveit. a u a o o > names(lista) <- c("r", "t", "z") Ha most kiolvassuk a lista elemeinek nevt, a kvetkez eredmnyt kapjuk: e o o e

34 > names(lista) [1] "r" "t" "z"

OBJEKTUMOK

Most, hogy a listaelemeknek van mr neve, tudunk nv szerint hivatkozni rjuk. Az objektum nevt s az elem a e a e e nevt egy $ jel vlasztja el: e a > lista$r [,1] [,2] [,3] 1 4 7 2 5 8 3 6 9

[1,] [2,] [3,]

Ha huzamosabban dolgozunk egy adattrol objektummal, akkor a nvvel val hivatkozs sorn az objektum a o e o a a nevnek s a $ tbszrs begpelse feleslegesnek tnhet. Ezrt lehetsg van arra, hogy az adott objektumra e e o oo e e u e oe rkapcsoldhassunk, s a munka sorn az objektum nevt nem kell minden alkalommal megadnunk. Erre a o e gy a e szolgl az attach fggvny. Az elz plda az attach fggvny hasznlatval: a u e o o e u e a a > attach(lista) > r [,1] [,2] [,3] 1 4 7 2 5 8 3 6 9

[1,] [2,] [3,]

Egyszerre egy adattrol objektumra kapcsoldhatunk, egy ujabbara val kapcsolds az elzrl val automaa o o o o a o oo o tikus lekapcsolst is jelent. A lekapcsolsra hasznlhatjuk a detach fggvnyt is. a a a u e

Objektumok konvertlsa aa
Az R nagyszm talak asi lehetssggel rendelkezik a klnbz objektumt a u a t o e uo o o pusok kztt. Az talak ao o a t sok eltt clszer tjkozdni: milyen t u objektummal llunk szemben. Erre hasznlhat az is.valami() o e u ae o pus a a o fggyvny, aminl a valami az objektum-t u e e pust jelenti (pl. is.list, is.matrix, is.data.frame, stb.). A t pusok kztti konverzit az as.valami fggvnnyel vals o o o u e o thatjuk meg. Az egyes adatt pusok kztti talak asok o o a t eredmnyei a ?? tblzatban lthatk. e a a a o > faktor <- factor(c(1, 10)) > faktor [1] 1 10 Levels: 1 10 > as.numeric(faktor) [1] 1 2 Ha egy faktort ugy akarunk numerikuss konvertlni, hogy megmaradjanak a szintjei, elszr karakterr kell a a o o e alak tanunk s azutn numerikuss: e a a > as.numeric(as.character(faktor)) [1] 1 10

Kifejezs e
A kifejezs (expression) az objektumok kztt alapvet jelentsg az R-krnyezetben. Egy kifejezs tue o o o oe u o e lajdonkppen egy karaktersorozat, amit az R rtelmez. Minden rtelmezhet utas as kifejezs. Amikor egy e e e o t e utas ast kzvetlenl az R-terminlba t o u a runk be, az rtelmezdik, amennyiben a szablyoknak megfelel. Sokszor e o a o hasznos lehet egy kifejezs elll asa anlkl, hogy rtelmeztetnnk. Az expression fggvny ezt teszi lehetv. e oa t e u e e u e o e A ltrehozott kifejezst az eval() fggvnnyel tudjuk vgrehajtani. e e u e e expression(...)

OBJEKTUMOK SZERKESZTESE > > > > > x <- 3 y <- 2.5 z <- 1 kifejezes1 <- expression(x/(y + exp(z))) kifejezes1

35

expression(x/(y + exp(z))) > eval(kifejezes1) [1] 0.5749019 A kifejezseket tbbek kztt hasznlhatjuk arra is, hogy fggvnyeket jelen unk meg brinkon. Nhny e o o o a u e ts a a e a fggvny hasznlhat a kifejezseken, mint argumentum. pldul a D() a parcilis derivltat eredmnyez: u e a o e Igy e a a a e > D(kifejezes1, "x") 1/(y + exp(z)) > D(kifejezes1, "y") -(x/(y + exp(z))^2) > D(kifejezes1, "z") -(x * exp(z)/(y + exp(z))^2)

Objektumok szerkesztse e
Objektumok diagnosztikja a
Az adattrolsra szolgl objektumok tulajdonsgainak megismerse, ki asa gyakran hasznos lehet. Na a ao a e rat e hny, erre szolgl fggvny bemutatsa kvetkezik. a ao u e a o length A length fggvny seg egvel az objektum hosszt, elemszmt olvashatjuk ki. A fggvny az egyes objeku e ts e a a a u e tumoknl eltr elemeket olvas. Vektorok, tmbk s mtrixok esetben az objektumot alkot rtkek darabsza eo o o e a e oe e a mt, listk esetn a listt alkot gykr-elemek szmt adja meg. A data.frame-nl pedig az oszlopok szmt a a e a o o e a a e a a jelenti. summary A summary fggvny az egyes objektumok sszes o le o adatait adja vissza. u e o t r summary(object, ...) > summary(valtozo.lista) Length [1,] 5 [2,] 3 [3,] 2 Class -none-none-noneMode character numeric numeric

Ahogy pldnk mutatja a valtozo.lista le o adatai kzl kiolvashat, hogy az egyes vektorok milyen hosszak, e a r o u o u illetve milyen mdak. o u str Az str fggvny teljesen rszletes kpet ad az adott R-objektum str uktrjrl. A summary fggvnyhez kpest u e e e uaao u e e alternat diagnosztikai eljrsknt hasznlhat. v aa e a o > str(valtozo.lista) List $ : $ : $ : of 3 chr [1:5] "y" "x" "c" "v" ... num [1:3] 1 2 3 num [1:2] 1.2 2.3

A str az elz fggvnyhez (summary) kpest ki az objektum t at is s az egyes vektorok els elemeit is. o o u e e rja pus e o

36

OBJEKTUMOK

edit
Az edit fggvny egy szvegszerkesztt vagy a data.entry-t h u e o o vja meg az adott R-objektum szerkesztsre. ee edit(name = NULL, file = "", title = NULL, editor = getOption("editor"), ...) vi(name = NULL, file = "") emacs(name = NULL, file = "") pico(name = NULL, file = "") xemacs(name = NULL, file = "") xedit(name = NULL, file = "") Az edit fggvny argumentumainak le asa: u e r name file title editor A szerkeszteni k ant s neves v e tett R-objektum neve. Ha nincs megadva, akkor a file ltal meghatrozott objektum lesz megnyitva szerkesztsre. a a e Egy fjlnv, amelybe a szerkesztett vltozat ki lesz a e a rva. A szerkesztben c ent mejelen felirat. o mk o Meghatrozhatju, hogy mely szvegszerkesztt h a o o vja meg az R. Windowson az alaprtelmezs a notepad. Megadhat ms szerkeszt is, de termszetesen csak e e o a o e akkor fog hiba nlkl nkdni, ha telep uk a rendszeren (pl. Tinn-R). e u u o tett Tovbbi argumentumokat adhatunk meg ms eljrsokba, vagy azokhoz. a a aa

...

x
A fix fggvny az edit fggvnyt h meg az adott objektum szerkesztsre, azonban (az edit-tel ellenttben) u e u e vja ee e a vltozsokat el is menti az objektumban. a a fix(x, ...) x ... A szerkesztend R-objektum. o Az edit-nl hasznlhat tovbbi argumentumok. e a o a

Data Editor
Az elz adatbeviteli lehetsgek mellett, mg az is lehetsges, hogy a data.entry, a dataentry, illetve a o o oe e e de fggvnyek seg egvel grakus felleten keresztl tltsnk fel adattrol objektumokat adatokkal. u e ts e u u o u a o data.entry(..., Modes = NULL, Names = NULL) dataentry(data, modes) de(..., Modes = list(), Names = NULL) A data.entry, a dataentry s de fggvnyek argumentumainak le asa: e u e r ... Modes Names data modes Vltozk listja. Jelenleg numerikusnak, vagy karakternek kell lennie, vagy ezekbl a o a o a o ll listnak. a A vltozknak megfelel mdok. a o o o A vltozkhoz hasznlt nevek. a o a Numerikus s/vagy karakter vektorokbl ll lista. e o a o A data hossznak megfelel lista, ami megadja a vltozk mdjt. a o a o o a

A ksbbi fggvnyek bemutatshoz ltrehozunk nhny adattrol objektumot. eo u e aa e e a a o > > > > i <- c('y','x','c','v','b') j <- c(1,2,3) k <- c(1.2,2.3) valtozo.lista <- list(i,j,k)

Adatbevitelhez a valtozo.lista lista formtum objektumba gpeljk be a kvetkezt: a u a e u o o > de(valtozo.lista, Names=c('i','j','k')) Ha a megjelen tblzatban be o a a runk a j oszlopba egy uj rtket, mondjuk 4-et, akkor az albbi lista odik ki a e e a r terminlba: a

OBJEKTUMOK SZERKESZTESE $valtozo.lista $valtozo.lista$i [1] "y" "x" "c" "v" "b" $valtozo.lista$j [1] 1 2 3 4 $valtozo.lista$k [1] 1.2 2.3

37

Habr a terminlban megjelenik a j vektor uj eleme, a 4, a valtozo.lista objektum nem vltozott meg. Ezt a a a a kvetkez diagnosztikai eljrssal lehet ellenrizni: o o aa o > str(valtozo.lista) List $ : $ : $ : of 3 chr [1:5] "y" "x" "c" "v" ... num [1:3] 1 2 3 num [1:2] 1.2 2.3

Most prbljuk ki a de helyett a data.entry fggvnyt az uj rtk be ashoz: o a u e e e r a > data.entry(valtozo.lista, Names=c('i','j','k')) $valtozo.lista $valtozo.lista$i [1] "y" "x" "c" "v" "b" $valtozo.lista$j [1] 1 2 3 4 $valtozo.lista$k [1] 1.2 2.3 Az str fggvnnyel ellenrizzk, hogy a valtozo.lista objektumban trtnt-e vltozs. u e o u o e a a > str(valtozo.lista) List of 3 $ i: chr [1:5] "y" "x" "c" "v" ... $ j: num [1:4] 1 2 3 4 $ k: num [1:2] 1.2 2.3 Lthat, hogy (az elz pldval ellenttben) a be uj rtk bekerl a valtozo.lista objektumba. A fggvnya o o o e a e rt e e u u e csoport harmadik tagja a dataentry, aminl a lista formj adatok mellett mindenkppen meg kell hatrozni e au e a (ugyancsak lista formjban) az egyes vektorok md jt is. aa o a > dataentry(valtozo.lista,list('character','numeric','numeric')) Az elzekhez kpest a megjelen tblzat mezfeliratai: var0,var1,var2. Ha egy uj rtket adunk a var1 o o e o a a o e e oszlophoz, a tblzat bezrsa utn a terminlba (az albbiak szerint) ki odik: a a aa a a a r $var0 [1] "y" "x" "c" "v" "b" $var1 [1] 1 2 3 4 $var2 [1] 1.2 2.3 Az str fggvnnyel ellenrizzk, hogy a valtozo.lista objektumban trtnt-e vltozs. u e o u o e a a > str(valtozo.lista) List of 3 $ i: chr [1:5] "y" "x" "c" "v" ... $ j: num [1:4] 1 2 3 $ k: num [1:2] 1.2 2.3 Vagyis az eredmny hasonl, mint a de esetben, az objektum nem vltozott meg. e o e a

38

OBJEKTUMOK

5. tblzat. Aritmetikai opertorok a a a opertor jelents a e kifejezs eredmny e e + o a 2+3 5 sszeads kivons a 5-2 3 szorzs a 5*2 10 / oszts a 10/2 5 hatvny a 23 8

Objektum-m veletek u
Aritmetikai m veletek u
Ha a vektorokon vgezzk a klasszikus aritmetikai mveleteket (5. tblzat), fontos, hogy gyeljnk nhny e u u a a u e a specialitsra: a > x <- 1:4 > x + 3 [1] 4 5 6 7 Az x vektor minden elemhez hozzadott 3-at az utas as. e a t > > > > x <- 1:4 y <- rep(1, 4) z <- x + y z

[1] 2 3 4 5 Kt egyenl hosszsg vektort adtunk ssze. e o ua u o > > > > x <- 1:4 y <- 1:2 z <- x + y z

[1] 2 4 4 6 Kt klnbz hosszsg vektor esetn akkor hajthat vgre valamilyen aritmetikai mvelet, ha a rvidebb e uo o o ua u e o e u o vektor elemeinek szmval oszthat a hosszabb vektor elemeinek a szma (mint elz pldnkban). Ebben az a a o a o o e a esetben az R a rvidebb vektort addig ismtli, am annak a hossza el nem ri a hosszabb vektor hosszt. o e g e a Amennyiben az oszthatsg felttele nem teljesl, a feladatot ugyan vgrehajtja, de gyelmeztetst kapunk: oa e u e e > x<-1:3 > y<-1:2 > z<-x+y Warning message: longer object length is not a multiple of shorter object length in: x + y > z [1] 2 4 4

Gyakrabban hasznlt fuggvnyek a e


subset Seg egvel vektorokbl vagy data.frame-okbl vlogathatunk le rszeket, ltalunk meghatrozott szempontok ts e o o a e a a szerint. subset(x, ...) ## Default S3 method: subset(x, subset, ...) ## S3 method for class 'data.frame': subset(x, subset, select, drop = FALSE, ...)

OBJEKTUM-MUVELETEK A subset fggvny argumentumainak le asa: u e r x subset select drop ... Pldk: e a > a <- 1:20 > subset(a, a > 10) [1] 11 12 13 14 15 16 17 18 19 20

39

Az adatobjektum, amibl a levlogatst vgeznnk. o a a e e Logikai kifejezs. e E kifejezs meghatrozza, hogy mely oszlopok adatait vlogassa le a fggvny. e a a u e Ha TRUE, akkor a lehet legalacsonyabb dimenzinak megfelelen fogja ssze az o o o o eredmnyt. e Tovbbi argumentumok. a

Az a vektorbl levlogattuk a 10-nl nagyobb rtk elemeket. A tovbbiakban a data.frame-et hasznl plo a e e e u a ao e dkban az airquality adatllomnyt fogjuk hasznlni. Az alaptblzat 6 oszlopbl s 153 rekordbl ll: a a a a a a o e o a > dim(airquality) [1] 153 6

Az albbi pldban az lthat, hogy kt szempont szerint vgznk szrst: a Temp oszlop tartalma nagyobb, a e a a o e e u ue mint 80, valamint a Month oszlop rtke 9. Az eredmnytblzatban csak azok a sorok jelennek meg, amelyekre e e e a a ez a kt felttel igaz. A kiindulsi hat oszlop helyett az eredmnytblban csak kt oszlop lesz (Ozone, Wind). e e a e a a e > lekerdezes <- subset(airquality, Temp > 80 & Month==9, select = c(Ozone, Wind)) > dim(lekerdezes) [1] 9 2 A dimenzik lekrdezse utn lthatjuk, hogy csak 9 rekord felelt meg a feltteleknek. o e e a a e split s unsplit e A fggvny egy faktorban megadott rtkek szerint az adott vektort vagy data.frame-ot sztvlogatja, illetve u e e e e a o o e o a sszeilleszt ilyen mdon ltrejtt listkat. split(x, f) split(x, f) <- value unsplit(value, f) A split s unsplitfggvnyek argumentumainak le asa: e u e r x f value A feldaraboland vektor vagy data.frame. o A csoportokat meghatroz faktor, de lehet faktorokbl ll lista is. a o o a o Vektorokbl vagy data.frame-okbl ll lista, ami kompatibilis az x-el. Ha a hosszo o a o u sgok nem egyezek, akkor a recycling lp mkdsbe. a o e u o e

sort.list Seg egvel nvekv vagy cskken sorrendbe lehet rendezni adatokat, illetve sorbarendezhetnk tblzatokat ts e o o o o u a a is, ugy, hogy a sorok egyben maradnak. sort.list(x, partial = NULL, na.last = TRUE, decreasing = FALSE, method = c("shell", "quick", "radix")) A sort.list fggvny argumentumainak le asa: u e r Vektor. Rszleges rendezshez hasznlt elemek indexeinek vektora. e e a Logikai rtk, ami ha TRUE, akkor cskken, ha FALSE, akkor nvekv sorba rendezi e e o o o o az adatokat. na.last A hinyz rtkek NA kezelst meghatroz argumentum. Ha TRUE, akkor a hia o e e ee a o a oe e nyz rtkek a sor vgre, ha FALSE, akkor az elejre kerlnek. Ha az rtke NA, e e e u e e akkor a hinyz rtkeket eltvol a oe e a tja. method A rszleges rendezs mdszere. e e o Pldk: A korbban elll e a a oa tott lekerdezes tblzat rekordjai nem rendezettek: a a x partial decreasing

40

OBJEKTUMOK

6. tblzat. Mtrix-fggvnyek a a a u e %*% crossprod diag dim, ncol, nrow dimnames eigen kappa qr solve svd t upper.tri, lower.tri

> lekerdezes Ozone 96 78 73 91 47 32 44 16 36 Wind 6.9 5.1 2.8 4.6 7.4 15.5 14.9 8.0 10.3

124 125 126 127 128 129 134 143 146

Az albbi pldban az Ozone oszlop alapjn nvekv sorrendbe rendezzk a tblt: a e a a o o u a a > lekerdezes[sort.list(lekerdezes$Ozone),] Ozone 16 32 36 44 47 73 78 91 96 Wind 8.0 15.5 10.3 14.9 7.4 2.8 5.1 4.6 6.9

143 129 146 134 128 126 125 127 124

Adatok olvassa, kezelse s asa a e e r


Munkakonyvtr a
Ha adatllomnyokkal dolgozunk, sokszor fjlokbl olvasunk, illetve azokba a a a o runk ki adatokat. Ilyenkor meg kell adnunk a hasznlt fjlok elrsi utvonalt. Ha az elrsi utvonalban tbb alknyvtr is elfordul, akkor a a ee a ee o o a o az ut hossz lehet, s adott esetben tbbszr is meg kell adni, vagyis nehzkes. Az R lehetsget ad arra, u e o o e oe hogy meghatrozzuk a munkaknyvtrat, amiben dolgozunk. elegend a munkaknyvtron belli fjlnevek a o a Igy o o a u a megadsa, a teljes utvonal nlkl. A munkaknyvtr megadsra a setwd fggvnyt hasznljuk. a e u o a aa u e a > setwd("d:/munka"') Ahogy a pldbl is ltszik az ut megadsnl (akr Windows, akr Linux krnyezetben dolgozunk) a knyvtrak e a o a aa a a a o o a elvlasztsra a / jelet muszaj hasznlni. Ez Linuxon nem jelent ujdonsgot, viszont DOS, illetve Windows a aa a a esetn az elrsi utak megadsnl az elvlasztknt a \ jelet hasznljk. e ee aa a a o e a a Amikor az R-ben akarunk megadni fajleleresi utvonalat, akkor csak a / jelet hasznalhatjuk! Elfordulhat, hogy egyszerre tbb knyvtrban lv llomnyokkal is dolgozunk, ebben az esetben hasznos, ha o o o a e oa a tudjuk, hogy ppen mi az aktulis munkaknyvtr. Az aktulis munkaknyvtr kiolvasst a getwd fggvnnyel e a o a a o a aa u e vgezhetjk el. e u > getwd() [1] "d:/munka"

Adatok olvassa a
Microsoft Excel llomnyok olvassa a a a
Annak ellenre, hogy a Microsoft Excel adattrolsi formtum szles krben elterjedt az R alapcsomag e a a a e o jelenleg nem tartalmaz eljrst az ilyen fjlok olvassra. Ezen llomnyok olvassa tbbflekppen is megvalaa a aa a a a o e e o s that. o ODBC seg egvel ts e Az RODBC knyvtr seg egvel tbb mdon is olvashatjuk Excel munkafzetnket. Az els lps egy o a ts e o o u u o e e kapcsolat kialak asa, ezek lehetsgt mutatjk a kvetkez, egyenrtk kdok: t oe e a o o e e u o > > > > library(RODBC) kapcsolat <- odbcConnect('ODBCexcel') kapcsolat <- odbcDriverConnect("DRIVER=Microsoft Excel Driver (*.xls);DBQ=d:/excel.xls") kapcsolat <- odbcConnectExcel("d:/excel.xls")

Mindhrom megoldshoz szksges, hogy a Microsoft Excel Driver -t telep unk a szm ogpnkn. Az els a a u e ts a t e u o o pldban bemutatott megoldshoz szksges, hogy mieltt lefuttatjuk, ltrehozzunk egy ODBC-kapcsolatot (a e a a u e o e pldban ODBCexcel elnevezst). A msodik s a harmadik megolds nem ignyel ilyen elzetes bell ast. A e a eu a e a e o a t ltrehozott kapcsolatrl le lehet krdezni, hogy milyen tblzatokat tartalmaz. e o e a a > sqlTables(kapcsolat) TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS 1 d:\\excel <NA> Munka1$ SYSTEM TABLE <NA> 2 d:\\excel <NA> Munka2$ SYSTEM TABLE <NA> 3 d:\\excel <NA> Munka3$ SYSTEM TABLE <NA> 41

42

IR ADATOK OLVASASA, KEZELESE ES ASA

A kialak tott kapcsolaton keresztl az albbi kt mdon is kiolvashatjuk az egyes munkalapokban trolt adatokat. u a e o a > adat <- sqlQuery(kapcsolat,"select * from [Munka1$]") > adat <- sqlFetch(kapcsolat,"Munka1") Mindkt pldban a Munka1 nev munkalap adattartalmt olvastuk ki s adtuk t az adat objektumnak. e e a u a e a Az els plda azt mutatja be, hogy egy SQL-lekrdezs seg egvel hogyan olvashatjuk az adott munkalapot. o e e e ts e Nagyon fontos, hogy az SQL-kdban a $-jelnek s a szgletes zrjeleknek a fenti pldban megadott szintaxis o e o ao e a szerint jelen kell lennie. A msodik megolds szintaktikailag egyszerbben adja ugyanazt az eredmnyt. a a u e Fontos megjegyezni, hogy az ODBC-kapcsolaton keresztl az Excel tablazatok nem modos u t hatok, csak olvashatok! A gregmisc konyvtr read.xls fuggvnynek seg egvel a e e ts e Ahhoz, hogy ezt a fggvnyt tudjuk hasznlni, nem elegend a gregmisc csomagot telep u e a o teni, szksg van u e arra, hogy Perl is legyen telep tve gpnkn. Az ActivePerl 13 telep ese utn a gpnkn lesz egy hasznlhat e u o t a e u o a o Perl. > library(gregmisc) > adat <- read.xls("d:/excel.xls', 1, perl="C:/perl/bin/perl.exe") A fggvny els argumentumval megadjuk az adott excel fjlt, a msodikkal a munkalap sorszmt, a harmau e o a a a a a dikkal pedig a perl.exe elrsi utvonalt hatrozzuk meg. ee a a Excel-llomny CSV-formtumba alak asa a a a t Ahogy a ksbbiekben ltni fogjuk, az R tbb fggvny seg egvel is kpes a comma separeted value (.csv) eo a o u e ts e e a llomnyok olvassra. az Excel-llomnyok hasznlatnak az egyik lehetsge az, ha talak a aa Igy a a a a oe a tjuk .csv la lomnny. a a Ha a gpnkn fut Microsoft Excel, Open Oce vagy ms irodai programcsomag, amelyeknek van tblzatkezel e u o a a a o alkalmazsa, akkor annak seg egvel elmenthetjk .csv kiterjesztssel az adott .xls llomnyt. a ts e u e a a A xls2csv14 alkalmazs seg egvel szintn elvgezhetjk az llomny talak ast. Mivel nem kell telep a ts e e e u a a a t a teni, csupn a tmr a o o tett llomnyt kell kicsomagolni, olyan gpeken is hasznlhat, amin nincsen telep esi jogosulta a e a o t sgunk. A kvetkez kddal (DOS) egy .xls allomnyt alak a o o o a thatunk t .csv fjll. a a a D:\catdoc-0.94>xls2csv.exe -q 1 -c ; d:\excel.xls > d:\excel.csv Az itt lthat paramterezsnl tbb is lehetsges, de az R-hez val talak asnak ez is teljesen megfelel. A -q a o e e e o e oa t utn ll 1 azt jelenti, hogy csak a szveges cellk lesznek idzjelek kz foglalva. A -c utn ll ; az oszlopokat a a o o a e o o e a a o elvlaszt karakter megadsra szolgl. a o aa a

A foreign konyvtr adatllomny-kezel fuggvnyei a a a o e


A foreign knyvtr fggvnyei lehetsget adnak arra, hogy nhny statisztikai szoftver csomagok adatforo a u e oe e a mtumait olvashassuk, illetve a rhassuk.

Adatok olvassa ASCII llomnyokbl a a a o


readLines Szveges llomnyokbl soronknt olvashatunk ki adatokat a readLines fggvny seg egvel. o a a o e u e ts e readLines(con = stdin(), n = -1, ok = TRUE) A con argumentumban egy fjlt adunk meg. Az n seg egvel adhatjuk meg, hogy hny sort olvasson be a a ts e a megadott fjlbl a fggvny. Ha n rtke az alaprtelmezett -1, akkor a teljes szveges llomnyt beolvassa. A a o u e e e e o a a harmadik ok argumentumot amennyiben n 0-nl kisebb mindenkppen az alaprtelmezett TRUE-ra kell ll a e e a tani, klnben hibt generl a fggvny. uo a a u e
13 http://www.perl.com/download.csp 14 http://www.45.free.net/vitus/ice/catdoc/#download

ADATOK OLVASASA

43

fggvny u e data.restore lookup.xport read.dbf read.dta read.epiinfo read.mtp read.octave read.S read.spss read.ssd read.systat read.xport write.dbf write.dta write.foreign

7. tblzat. Foreign csomag fggvnyek a a u e rvid le as o r S3 binris llomnyt olvas a a a SAS XPORT formtum knyvtrbl olvas ki informcikat a u o a o a o DBF llomnyt olvas a a Stata binris llomnyt olvas a a a Epi Info adatllomnyt olvas a a Minitab Portable Worksheet-et olvas Octave szveges adatllomnyt olvas o a a S3 binris llomnyt olvas a a a SPSS adatllomnyt olvas a a a read.xport seg egvel egy tblt olvas ki SAS Permanent Dataset-bl ts e a a o egy tblt olvas ki a Systat File-bl a a o SAS XPORT formtum knyvtrat olvas a u o a DBF llomnyt a a r Stata binris formtum llomnyt a a ua a r tblzatot ki ms statisztikai eszkz szmra olvashat formban a a r a o a a o a

Karakterhatrolt llomnyok a a a Karakterhatrolt llomnynak nevezem azokat az ASCII llomnyokat, amelyek adatokat karakter hata a a a a a rolt rtkek15 formjban trolnak (csv ). A karakterhatrolt llomnyok R-be val beolvasst leginkbb a e e aa a a a a o aa a read.table fggvnnyel, illetve szrmazkaival vals u e a e o thatjuk meg. Ezek paramterezse lthat az albbiake e a o a ban. read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".", row.names, col.names, as.is = FALSE, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#") read.csv(file, header = TRUE, sep = ",", quote="\"", dec=".", fill = TRUE, ...) read.csv2(file, header = TRUE, sep = ";", quote="\"", dec=",", fill = TRUE, ...) read.delim(file, header = TRUE, sep = "\t", quote="\"", dec=".", fill = TRUE, ...) read.delim2(file, header = TRUE, sep = "\t", quote="\"", dec=",", fill = TRUE, ...) A read.csv fggvny lnyegben abban klnbzik a read.table-tl, hogy az alaprtelmezett mezelvlaszt a u e e e uo o o e o a o vessz (,). A read.csv2 fggvnynl a mezelvlaszt a pontosvessz (;), a tizedeseket elvlaszt jel pedig nem o u e e o a o o a o pont (.) hanem vessz (,). A read.delim fggvnynl a mezelvlaszt a \t vagyis tabultor, a tizedeseket o u e e o a o a elvlaszt jel pedig pont (.). A read.delim2 fggvnynl a mezelvlaszt ugyancsak \t, viszont a tizedeseket a o u e e o a o elvlaszt jel nem pont (.) hanem vessz (,). Az egyes fggvnyek kztti argumentumbell asi eltrseket a 8. a o o u e o o a t ee tblzat mutatja. a a 8. tblzat. A read.table fggvnycsoport klnbsgei a a u e uo e fggvny u e sep dec quote fill read.line "" . \"' !blank.lines.skip read.csv , . \" TRUE read.csv2 ; , \" TRUE read.delim \t . \" TRUE read.delim2 \t , \" TRUE A read.table fggvny argumentumainak le asa: u e r file A beolvasand fjl neve. Ha nem ll o a a tottuk be a munkaknyvtrknt azt a knyvo a e o trat, ami tartalmazza az adott fjlt, akkor a teljes utat meg kell adnunk. a a
csv.html

15 http://gisgyelo.geocentrum.hu/kisokos/kisokos

44 header

IR ADATOK OLVASASA, KEZELESE ES ASA Ha az alaprtelmezett FALSE rtkre van ll e e e a tva, akkor a tblzat els sort nem a a o a fejlcknt, hanem els adatsorknt olvassa be. TRUE esetn viszont a tblzatunk e e o e e a a els sort fejlcknt olvassa be. o a e e Az egyes mezket elvlaszt karaktert hatrozhatjuk meg. Az alaprtelmezett "" o a o a e (white space) hatrol mezknt rtelmezi az egy vagy tbb szkzt, a tabo(ka)t, a o o e e o o o vagy az uj sorokat. A szveges mezk jelzsre szolgl karaktert adhatjuk meg. Az alaprtelmezett o o ee ao gy e rtk a \"' jelsor. Ez a bell as azt jelenti, hogy akr ", akr ' jelek fogjk kzre a e e a t a a a o szvegeket a tblban, a fggvny a beolvasott tblzatban szvegknt, de a jelek o a a u e a a o e nlkl fogja trolni azokat. e u a A lebegpontos rtkeket tartalmaz mezk beolvasnl tizedesjelknt rtelmeo e e o o a a e e zend jelet hatrozza meg. Az alaprtelmezs a pont (.). o a e e A sorok neveit hatrozhatjuk meg vele. Megadhatjuk tbbflekppen is. Az egyik a o e e lehetsg, hogy egy vektorban adjuk meg a sorneveket, ebben az esetben gyelni oe kell arra, hogy a vektor hossza megegyezzk a sorok szmval. A sorneveket ugy e a a is meghatrozhatjuk, hogy megadjuk a tblzatnak azt az oszlopt, amelyik tara a a a talmazza a neveket. Az adott oszlopot meghatrozhatjuk egy szmmal (ami az a a oszlop sorszma), vagy az oszlop nevvel. Ha nem ll a e a tjuk be a sorneveket, akkor egyszeren automatikusan sorszmozva lesznek. u a Az oszlopnevek megadsra szolgl. Az oszlopok szmnak megfelel hosszsg aa a a a o ua u vektor formjban adhat meg. Ha header argumentumot FALSE-ra ll aa o a tottuk, akkor alaprtelmezsben az oszlopok nevei a V s az oszlop sorszmbl jnnek e e e a a o o ltre. e A read.table fggvny alaprtelmezsben a szveges mezket faktorr alak u e e e o o a tja. Ez az argumentum lehetsget nyjt az talak as kontrolllsra. Az alaprteloe u a t aa a e mezse FALSE. Ha TRUE-ra ll e a tjuk, akkor a szveges mezk szvegesknt lesznek o o o e beolvasva s nem alak odnak t faktorr. e t a a Vektorknt megadhat listja azon rtkeknek, melyek esetn a fggvny hinyz e o a e e e u e a o rtket kell, hogy beszrjon a helykre a vgleges tblzatba. Alaprtelmezett e e u u e a a e rtke "NA". e e Lehetsget nyjt arra, hogy az egyes mezk adatt at megvltoztassuk a beoloe u o pus a vass sorn. Egy vektorban sorolhatjuk fel (az oszlopok sorrendjben) az talak as a a e a t eredmnyeknt vrt t e e a pusokat. Ha valamelyik mezn nem akarunk talak ast vo a t e gezni, akkor annak NA rtket adunk meg.Az alaprtelmezett rtk NA e e e e e A beolvasand sorok maximlis szmt hatrozhatjuk meg vele. Ha rtke negat o a a a a e e v, akkor az egsz tblt beolvassa a fggvny. Alaprtke -1. e a a u e e e Az llomny elejn beolvass nlkl tugrand sorok szma. Alaprtelmezse 0. a a e a e u a o a e e Az alaprtelmezett TRUE-rtk mellett a mezneveket ellenrzi, hogy megfelelnek-e e e e o o a vltozk elnevezsi szablyainak. a o e a Ha ezt TRUE-ra ll a tjuk, akkor (ha van olyan sora forrsllomnynak, ami kevesebb aa a mezt tartalmaz) a fggvny feltlti ures cellkkal, a sor vgre illesztve azokat. o u e o a e e Alaprtelmezsben !blank.lines.skip. e e Ha a sep argumentumot bell a tottuk, s ha ennek az rtkt TRUE-ra ll e e e e a tjuk, akkor a szveges mezk elejn, illetve vgn lv szkzket trli. Alaprtelmezsben o o e e e e o o o o o e e FALSE Ha az alaprtelmezett TRUE rtkre van ll e e e a tva, akkor a forrsfjlbl nem olvassa a a o be az ures sorokat, tugorja ket. a o A megjegyzseket megelz, jell karaktert hatrozhatjuk meg vele. Alaprtelmee o o oo a e zsben #. e

sep

quote

dec row.names

col.names

as.is

na.strings

colClasses

nrows skip check.names fill

strip.white

blank.lines.skip comment.char

Rogz e e u o tett szlessg mezk Olyan ASCII fjlokbl is olvashatunk adatokat, amelyekben nem karakterek hatroljk el az egyes mezket. A a o a a o mezk szlessge ilyenkor rgz o e e o tett karakterszm. Ilyen feladat esetn a read.fwf fggvny nyjt seg eget. a u e u e u ts read.fwf(file, widths, header = FALSE, sep = "\t", as.is = FALSE, skip = 0, row.names, col.names, n = -1, buffersize = 2000, ...) A read.fwf fggvny read.table fggvnytl eltr argumentumainak le asa: u e u e o e o r

ADATOK OLVASASA widths

45 Az egyes mezk mrett hatrozhatjuk meg seg egvel. Amennyiben egy rekord o e e a ts e egy sorban helyezkedik el, akkor egy vektorban kell megadnunk, a mezk hosszso ua gt meghatroz karakterhosszban. Ha a rekordjaink tbbsorosak, akkor listaknt a a o o e kell megadnunk ezt az argumentumot. Itt nem a forrsfjl beli mezelvlaszt karaktert jelenti, st nem is szabad, hogy a a o a o o az itt megadott jel szerepeljen a forrsllomnyban. Tulajdonkppen bels haszaa a e o nlatra szolgl, szeparl karakter. a ao ao Megyegyezik a read.table fggvny nrows argumentumval. u e a Az egyszerre beolvasand sorok szmnak bell asra szolgl. o a a a t a a Tovbbi read.line argumentumokat hasznlhatunk, kztk a na.strings s a a o u e colClasses fggvnyeket is. u e

sep

n buffersize ...

scan A read.table s a read.fwf fggvnyek tulajdonkppen a scan fggvnyre plnek, azonban ez utbbi kze u e e u e e u o o vetlenl is hasznlhat. M a korbbi fggvnyek visszatrsi objektuma data.frame, addig a scan vektort vagy u a o g a u e ee listt ad vissza. a scan(file = "", what = double(0), nmax = -1, n = -1, sep = "", quote = if (sep=="\n") "" else "'\"", dec = ".", skip = 0, nlines = 0, na.strings = "NA", flush = FALSE, fill = FALSE, strip.white = FALSE, quiet = FALSE, blank.lines.skip = TRUE, multi.line = TRUE, comment.char = "") A scan fggvny read.fwf s read.table fggvnyektl eltr argumentumainak le asa: u e e u e o eo r file Hasonlan az elzkhz, a beolvasand llomnyt adjuk meg vele. Ha azonban az o o o o oa a rtke az alaprtelmezett "", akkor a billentyzetrl olvassa be a begpelt adae e e u o e tokat a meghatrozott objektumba. A billentyzetrl val adatbevitel befejezest a u o o e vagy egy uj sor kezdsvel, vagy egy EOF jel seg egvel rhetjk el. Ez utbbit ee ts e e u o Windowson Ctrl-D, Linuxon Ctrl-Z billentykombincival adhatjuk meg. u a o A beolvasand adatok t at hatrozza meg. Ha listban adjuk meg, akkor ugy o pus a a rtelmezi a fggvny, hogy a fjl sorai rekordok, s a listban meghatrozott adate u e a e a a t pusok sorrendben a mezk-nek felelnek meg. A tmogatott t o a pusok: logical, integer, numeric, complex, character, raw s list. A list olyan elemeket kell, e hogy tartalmazzon, amelyek az elz hat t o o pusnak, vagy NULL-nak felelnek meg. A beolvasand adatok elemszmnak maximuma. Ha a what lista, akkor a maxio a a mlisan beolvasand rekordok szma. Amennyiben nem pozit rtkknt adjuk a o a v e e e meg, a teljes adatllomnyt beolvassa. a a A beolvasand adatok elemszmnak maximuma. Alaprtelmezsben nincsen koro a a e e ltozva. a Ha pozit szm, akkor a maximliasan beolvasand sorok szmt hatrozza meg. v a a o a a a Ha az rtke TRUE, akkor a fggvny az utols mez olvassa utn a sor vgre e e u e o o a a e e ugrik. Ez lehetv teszi, hogy a az utols mez utn megjegyzseket helyezhessnk o e o o a e u el, s kizrjuk azt, hogy egy sorban tbb mint egy rekord legyen. e gy a o Ha az rtke az alaprtelmezett FALSE, akkor a fggvny minden elem beolvassa e e e u e a utn ki egy sort a terminlba, jelezve azt, hogy hny elemet olvasott mr be. a r a a a A fggvny csak akkor veszi gyelembe, ha a what lista. Ebben az esetben, ha u e FALSE-ra ll a tjuk, akkor minden rekord egy sorba lesz beillesztve.

what

nmax

n nlines flush

quiet multi.line

dget A dput fggvnnyel ki objektum visszaolvassra hasznlhat fggvny (a dget(file) szintaxis szerint), ahol u e rt aa a o u e a file az objektumot tartalmaz llomny. oa a Magyar as t Elfordulhat, hogy munknk sorn olyan ASCII-llomnyokat olvasunk be, amelyekben magyar kezetes o a a a a e betket tartalmaz karakterlnok, szavak fordulnak el. Ilyenkor, ha a karakterek kdolsi bell asa nem megu o a o o a a t felel, elfordulhat, hogy ezek az kezetes karakterek a beolvass utn nem a vrt alakban jelennek meg. Az o o e a a a aktulisan mkd kdolst a kvetkez mdon olvashatjuk ki: a u o o o a o o o

46 > Sys.getlocale(category = "LC_CTYPE") [1] "Hungarian_Hungary.1250"

IR ADATOK OLVASASA, KEZELESE ES ASA

Az R alapbell asban a magyar nyelvhez az Hungarian_Hungary.1250 kdolst hasznlja, ami a korbbi a t a o a a a pldkban bemutatott .csv llomny beolvassakor a kvetkez eredmnyt adja: e a a a a o o e > read.csv2('d:/excel.csv', header=T) a b c 1 '\366' 1 NA 2 '\341' 2 76 3 '\355' 3 23 4 '\365' 4 34 5 '' 5 54 u 6 '\351' 6 60 Lthat, hogy a betk nagyrszt hibsan kdolta az R. Az alapkdols helyett az 1251 vagy 1252 kdot a o u e e a o o a o hasznlva karaktereink helyesen jelennek meg a terminlban. A bell as a kvetez mdon trtnik: a a a t o o o o e > Sys.setlocale("LC_CTYPE", "Hungarian_Hungary.1252") > read.csv2('d:/excel.csv', header=T) a b c 1 '' 1 NA o 2 '' 2 76 a 3 ' 3 23 ' 4 '' 4 34 o 5 '' 5 54 u 6 '' 6 60 e A kdols bell ast rdemes a munkafolyamat elejn elvgezni, mert ha egyszer a helytelen bell assal elvo a a t a e e e a t e geztnk mr a beolvasst, akkor az a kdols mkdik a munkafolyamatban tovbbra is. u a a o a u o a

Adatbzisok a
Mirt hasznljunk adatbzist? e a a Az R-ben az adatobjektumok a memriban helyezkednek el s esetleg tbb vltozatban is jelen lehetnek o a e o a egy munkafolyamatban. Mivel az objektumok a memriban foglalnak helyet, ezrt az R (jelenlegi formjban) o a e aa a tl nagy adatllomnyok kezelshez nem a legjobb eszkz. Nhny szz megabjtos objektumok gyorsan u a a ee o e a a a okozhatnak memria-tlcsordulst. o u a Az R nem tmogatja az adatok konkurrens kezelst: ha tbb felhasznl dolgozik ugyanazzal az adatlloa ee o ao a mnnyal, az egyik ltal ltrehozott vltoztats nem jelenik meg a msiknl. a a e a a a a Az adatbziskezel rendszerek (DBMS), s klnsen a relcis DBMS-ek (RDBMS) ezen hinyossgokon ka o e uo o a o a a e pesek seg teni, fbb elnyeik a kvetkezk: o o o o 1. Gyors hozzfrs nagy adatbzisok egyes rszeihez aee a e 2. Az adatbzison bell sszes o tblzatok s kereszttblk ltrehozsra igen hatkony eszkz. a u o t a a e a a e aa e o 3. Az adatokat sokkal hatkonyabb formban lehet trolni adatbzisokban, mint egyszer tblzatokban e a a a u a a vagy az R data.frame formtumban. a a 4. Amellett, hogy egyszerre tbb felhasznl frhet hozz az adatbzisban trolt adatokhoz, ez biztonsgos o ao e a a a a kapcsolaton keresztl trtnhet, az illetktelenek kizrsval. u o e e aaa Az adatbzisban trolt adatokbl az R-krnyezetbe nem kell teljes tblzatokat beh a a o o a a vni s ezzel terhelni a e memrit. Az adatbzisban el lehet vgezni bizonyos elmunklatokat a felhasznland adatokon s csak a stao a a e o a a o e tisztikai elemzsben valban rsztvev vagy brzoland adatok kerlnek az R-be, erforrsokat szabad e o e o a a o u gy o a tva fel. Az R-hez tbbfle kzvetlen interfszt fejlesztettek adatbzisok elrshez (pl. RMySQL, RPgSQL) ezek kisebbo e o e a eee nagyobb mrtkben kvetik az uj R-vltozatokat. Rugalmasabb adatbzis elrst tesz lehetv az RODBC csomag, e e o a a ee o e ami ODBC -kapcsolaton keresztl tud adatbzisokat olvasni s u a e rni. Az albbiakban egy igen egyszer megoldst a u a mutatunk be, ahol egy Microsoft Access adatbzisbl egy tblzatot olvasunk ki. Itt az ODBC-kapcsolat nem a o a a k an meg azonos ast s jelszt ms kapcsolatoknl (pl. PostgreSQL16 ) ez nem nlklzhet. v t e o a a e uo o
16 http://www.postgresql.org/

ADATOK KI IRATASA > library(RODBC) > db <- odbcConnect('adatbazisom') > tablazat <- sqlQuery(db, 'SELECT * FROM d_virus_emission')

47

Lthat, hogy az adatbzis megnyitsa utn, azon SQL lekrdezseket lehet futtatni, a lekrdezs eredmnyeknt a o a a a e e e e e e visszatr objektum data.frame. eo SQLite Az SQLite 17 adatbzis-formtum nagy hordozhatsgot tesz lehetv, mivel az adatbziskezelshez nem a a oa o e a e szksges szerver. Nem tl nagy adatbzisok kezelshez hasznos formtum. Platformfggetlen s ingyenes. Tbb u e u a ee a u e o teszt is azt bizony totta, hogy gyorsabb a MySQL18 illetve PostgreSQL szervereknl. Az SQLite-adatbzisok e a tervezshez, kezelshez remek grakus fellettel rendelkez, platformfggetlen ingyenes szoftver a SQLite Daee ee u o u tabase Browser 19 . Ha valaki prblt mr tbb tbla sszekapcsolsval SQL-lekrdezseket szerkeszteni, akkor o a a o a o aa e e tudja, hogy milyen nagy seg eget nyjthat egy grakus SQL-szerkeszt. Az Open Oce 1.1 20 verzjhoz ts u o oa letlthet egy kiegsz es21 , aminek telep ese utn az Open Oce Calc alkalmazssal kapcsoldni lehet SQo o e t t a a o Lite-adatbzisokhoz s azokban knnyedn szerkeszthetnk grakus felleten tbbtbls lekrdezseket. Sajnos a e o e u u o a a e e jelenleg ez csak Linux alatt mkdik, de erik Windows alatt is mkd verzijt is. Az albbi kd egy SQLite u o g u o o oa a o adatbzisbl SQL kd seg egvel olvas ki egy tblzatot. a o o ts e a a > > > > > library(RSQLite) meghajto <- dbDriver("SQLite") kapcsolat <- dbConnect(meghajto, dbname = "d:/vtr.db") eredmeny <- dbSendQuery(kapcsolat, "select * from alpha") adat <- fetch(res, n = -1)

Adatok ki asa rat


write A megadott objektumot (x) ASCII-llomnyba a a rja ki. Altalban mtrixokra hasznlatos, amiket rdemes a a a e transzponlni a ki as eltt. a r o write(x, file = "data", ncolumns = if(is.character(x)) 1 else 5, append = FALSE) A write fggvny argumentumainak le asa: u e r x files A ki rand adat. o Vagy a clfjlt megad karakterlnc, vagy egy kapcsolat, amin keresztl ki odik e a o a u r az adat. Lehet "" is az rtke, akkor a mr korbban bell e e a a a tott kapcsolatba ki a r fggvny. u e Lehetv teszi az oszlopok szmnak meghatrozst a ki o e a a a aa rand adatokban. o Ha TRUE rtkre van ll e e a tva, akkor a file argumentumban megadott fjl tara talmhoz hozzfzi az adatokat, ha az alaprtelmezett FALSE, akkor fell a au e u rja az a llomnyt. a

ncolumns append

> x <- matrix(1:10,ncol=5) > x <- t(x) > write(x,"write-al_kirva.txt") Ha data.frame-re hasznljuk, eltte rdemes talak a o e a tanunk mtrixsz. a a > > > > adat <- read.table("tabla.txt") adat <- as.matrix(adat) adat <- t(adat) write(adat,"write-al_kirva.txt")
17 http://www.sqlite.org/ 18 http://www.mysql.com/ 19 http://sqlitebrowser.sourceforge.net/ 20 http://www.openoce.org/ 21 http://dba.openoce.org/drivers/sqlite/index.html

48 write.table

IR ADATOK OLVASASA, KEZELESE ES ASA

E fggvny seg egvel az x objektumot (data.frame) u e ts e rathatjuk ki egy fjlba, amiben karakterhatrolt szvega a o knt troldik. e a o write.table(x, file = "", append = FALSE, quote = TRUE, sep = " ", eol = "\n", na = "NA", dec = ".", row.names = TRUE, col.names = TRUE, qmethod = c("escape", "double")) A write.table fggvny write fggvnytl eltr argumentumainak le asa: u e u e o e o r quote Vagy logikai rtket kell megadni, vagy numerikus vektort. Ha az rtke TRUE, e e e e akkor a karakter s faktor oszlopok adatai idzjelek kz zrva lesznek ki e e o o e a rva. Ha numerikus vektorknt adjuk meg, akkor a vektorban azoknak az oszlopoknak e a sorszmt adjuk meg, amelyek tartalmt idzjelek kz szeretnnk foglalni. a a a e o o e e Mindkt esetben mind az oszlop-, mind a sornevek idzjelekkel lesznek vezve. e e o o Ha az rtke FALSE, akkor egy cella sem lesz idzjelezve. e e e o Ezzel ll a thajuk be, hogy az adatllomnyban az egyes oszlopokat milyen hatrol a a a o karakter vlassza el. a A sor vgt jelz karakter(ek). e e o A hinyz adatot jelz karakterlnc. a o o a A tizedesjelknt hasznlatos karaktert hatrozza meg. e a a Ha az rtke TRUE, akkor a sorok nevei is ki lesznek e e rva a clllomnyba, ha ea a FALSE, akkor nem. Figyelni kell arra, hogy ha ki ratjuk a sorneveket, akkor ugyan egy ujabb oszlopknt fog az megjelenni, de nem lesz az oszlopnak neve. Ez az e adatok ksbbi visszaolvassnl hibt eredmnyezhet. eo a a a e Az oszlopok nevnek ki ast meghatroz logikai rtk. Ha TRUE, akkor ki ode rat a a o e e r nak, ha FALSE, akkor nem. Meghatrozhatjuk, hogy a dupla idzjelek ("") hogyan jelenjenek meg a ki a e o rt a llomnyban. Az alaprtelmezett "escape" C-st a e lusban \" formban a rja ki. A msik lehetsg a "double" megduplzza a jeleket. Mindkt rtk rvid a oe a e e e o thet is o az els betikkel. o u

sep eol na dec row.names

col.names qmethod

> adat <- read.table("tabla.txt") > write.table(adat,"write.table-val_kirva.txt") save A save fggvnnyel a megadott objektumokat binris llomnyba lehet ki u e a a a ratni, elmenteni egy ksbbi R muneo kafolyamathoz. Az eredmnyknt kapot fjlt a load fggvnnyel tlthejk be egy ujabb munkafolyamatba. e e a u e o u save(..., list = character(0), file = stop("'file' must be specified"), ascii = FALSE, version = NULL, envir = parent.frame(), compress = FALSE) A save fggvny argumentumainak le asa: u e r ... list file ascii A ki rand objektumok neveit soroljuk itt fel. o Egy karaktervektorban megadhatjuk a mentend objektumok mentsi elnevezseit. o e e Vagy egy kapcsolat vagy egy fjlnv, ahova az objektumokat a e ratnnk ki. Ha a a version rtke 1, akkor fjlnvknt kell megadni ezt az argumentumot. e e a e e Ha az rtke TRUE, akkor az objektumok ASCII formtumban lesznek ki e e a rva. Hasznos lehet klnbz gpt u o o o e pusok kztti adattvitelnl. Az alaprtelmezett FALSE o o a e e rtk binris ki ast eredmnyez. e e a r e A munkakrnyezet formtumnak verzijra utal. Ha az rtke az alaprtelmezett o a a oa e e e NULL, akkor a fut verzi szerint menti el. Erteke 1 az R 0.99.0 verzijtl az o o oao 1.3.1-ig. Az alaprtelmezett rtk 2 (az R 1.4.0 verziszmtl kezdden). e e e o a o o o Azt hatrozhatjuk meg vele, hogy mely krnyezetben keresse a mentsre kijellt a o e o objektumokat. Ha fjlba mentnk, akkor lehetsg van a ki llomny tmr esre ezzel a logikai a u oe rt a a o o t e argumentummal. Ha kapcsolaton keresztl u runk ki, vagy a version rtke 1, akkor e e nincs lehetsg a tmr esre. oe o o t

version

envir compress

ADATOK KI IRATASA > save(adat, file="save-vel") > load("save-vel") save.image

49

Az elz fggvnyhez hasonlan binris llomnyba ki az objektumokat, de nem csak az argumentumknt o o u e o a a a rja e megadottakat, hanem minden objektumot, ami a munkakrnyezetben tallhat. o a o save.image(file = ".RData", version = NULL, ascii = FALSE, compress = FALSE, safe = TRUE) A save.image fggvny save fggvnytl eltr argumentumainak le asa: u e u e o eo r safe Az alaprtelmezett TRUE bell as esetn elszr kszl egy tmeneti llomny, s e a t e o o e u a a a e ha a ki as ebbe sikeres, akkor ez nevezdik t a vgleges llomnny. Br ez tbb r o a e a a a a o lemezterletet vesz ignybe, a munkafolyamat adatait biztonsgosan kezeli. u e a

A save(list = ls(all=TRUE), file = "minden_objektum.RData") utas assal save.image fggvny t u e eredmnyvel egyez eredmnyt rhetjk el. Amennyiben az R-bl q("yes") utas assal lpnk ki, akkor is e e o e e u o t e u hasonl ments trtnik, de akkor egy .RData fjlba odik ki minden objektumunk. Ez a fjl a kvetkez R o e o e a r a o o ind askor automatikusan be is tltdik! Ha Windows RGui-t hasznlunk, akkor a kilpskor az R rkrdez, t o o a e e a e hogy akarjuk-e menteni a munkakrnyezetet (32. bra), amennyiben jvhagyjuk, akkor egy (a ksbbiekben o a o a eo automatikusan betltd) .RData fjlba menti el a munkakrnyezet objektumait. o o o a o dput R-objektumot tudunk vele ki rni egy ASCII-llomnyba. Az objektum olvassra hasznlhat a dget(file) a a aa a o fggvny. u e dput(x, file = "", control = "showAttributes") A dput fggvny argumentumainak le asa: u e r x file control A ki rand objektum. o Vagy egy karakterlnc, ami a clfjlra mutat vagy egy kapcsolat. Ha "" rtket a e a e e adunk meg, akkor a konzolra az objektumot. rja A deparsing folyamat paramterezhet a seg egvel. (A rszleteket lsd a e o ts e e a .deparseOpts le asnl.) r a a

> dput(adat, file="dput-tal") > adat2 <- dget("dput-tal") dump A list argumentumban megadott objektumokat egy ASCII-fjlba ki, amit a source fggvny forrsaknt a rja u e a e lehet hasznlni. Ha a list argumentumnak ls() rtket adunk, akkor a munkakrnyezet sszes objektumt a e e o o a ki az .R fjlba. rja a dump(list, file = "dumpdata.R", append = FALSE, control = "all", envir = parent.frame(), evaluate = TRUE) A dump fggvny (elzekben mg le nem argumentumai: u e o o e rt) list evaluate Listban meghatrozott egy vagy tbb ki a a o rand objektum neve. o

> dump(ls(), file = "dump-pal.R") > adat2 <- source('dump-pal.R') sink E fggvny seg egvel az R-utas asok outputjai egy ASCII-fjlba odnak ki. u e ts e t a r sink(file = NULL, append = FALSE, type = c("output", "message"), split = FALSE) sink.number(type = c("output", "message"))

50 A sink fggvny tovbbi argumentumainak magyarzata: u e a a file type

IR ADATOK OLVASASA, KEZELESE ES ASA

split > sink("sink-kel.txt")

Vagy a clfjlt megad karakterlnc, vagy egy kapcsolat, amin keresztl ki odik e a o a u r az adat. Az alaprtelmezett R-outputban a bell asa "output". Ha tll e a t a a tjuk "message"re, akkor csak prompt-, s a gyelmeztets/hiba uzenetek jelennek meg a termie e nlban. a Ha az rtke TRUE, akkor az output a terminl mellett az uj sinkbe is ki odik. e e a r

Az utas as vgrehajtsa utn lefuttatott parancsok eredmnyeknt elllt outputok a terminl helyett a sink-kel.txt t e a a e e oa a fjlba odnak ki. Az unlink(sink-kel.txt) utas assal trlhetjk a sink-fjlunkat. a r t oo u a history A fenti mentsi lehetsgek az objektumokra koncentrlnak, de nem rgz e oe a o tik a munkafolyamatban hasznlt a parancsokat, illetve azok sorrendjt. A savehistory(file = ".Rhistory") utas assal menthetjk a lefuttatott e t u utas asok sorrendjt egy ASCII-fjlba. A mentett parancstrtnetet a loadhistory(file = ".Rhistory") t e a o e utas assal tlthetjk be egy uj R-munkakrnyezetbe. t o u o loadhistory(file = ".Rhistory") savehistory(file = ".Rhistory") history(max.show = 25, reverse = FALSE) A history fggvny tovbbi argumentumainak magyarzata: u e a a max.show reverse A maximlisan megjelen a tett sorok szma. Ha Inf rtket adunk meg, akkor az a e e o e o sszes elrhet sort visszaadja. Ha rtke FALSE, akkor a parancsok futtatsnak sorrendjben listzza ki azokat, e e aa e a ha TRUE, akkor visszafel. Ez utbbi esetben azonban hibsan jelenhetnek meg a e o a tbbsoros utas asok. o t

xtable
A Az xtable knyvtr xtable fggvnyvel L TEX-, vagy HTML- formtumba alak o a u e e a thatunk t tblzatokat, a a a amiket ksbb fjlba is eo a rhatunk tovbbi dokumentumokba val begyazs cljbl. a o a a a a o

xtable(x, caption=NULL, label=NULL, align=NULL, vsep=NULL, digits=NULL, display=NULL, ...) A xtable fggvny argumentumainak magyarzata: u e a x caption label align Olyan R -objektum, amelynek osztlya a methods(xtable)-ban megtallhat. a a o A tblzat c et megad karakterlnc. Ha az alaprtelmezett NULL, akkor nem ad a a m o a e c met. A A L TEX-tblzat esetn a c eben szerepl elnevezs. Az alaprtelmezett NULL a a e mk o e e nem hoz ltre c et. e mk E karaktervektorral azt hatrozzuk meg, hogy az egyes oszlopok hogyan legyenek a rendezve. A jobbra igaz ast a r, a balra igaz ast a l, a kzpre igaz ast pedig a t t o e t c karakter jelzi. Az oszlopok fggleges elvlasztsra hasznlhat a jel. u o a aa a o Karaktervektor, aminek a hossza vagy egy, vagy pedig az oszlopok szma plusz 2 a A (egy a bal, egy pedig a jobb szlhez a tblnak). Brmelyik, a L TEX-ben elfogaee a a a dott elvlaszt karakter hasznlhat. HTML-mdban nem mkdik. a o a o o u o Numerikus vektor, aminek hossza megyegyezik az oszlopok szmval. Mindegyik a a elem az adott oszlopban lv lebegpontos szmok tizedeshelyeinek a szmt jelzi. e o o a a a Ha data.frame az x, akkor mivel a sornevek egy plusz oszlopot kpeznek, a vektor e hossza eggyel tbb, mint a ncol(x). o Karaktervektor, aminek a hossza megegyezik az oszlopok szmval, illetve a a data.frame esetn eggyel tbb, mint az ncol(x) rtke. Az egyes karaktereket e o e e a formatC fggvny rtelmezi (9. tblzat). u e e a a Kiegsz o argumentumok (jelenleg nincs ilyen). e t

vsep

digits

display

...

ADATOK KI IRATASA

51

kd o d f e, E g, G fg s

9. tblzat. A formatC rtkforml kdjai a a e e ao o t pus formtum a egsz szm e a vals szm xxx.xxx o a vals szm n.ddde+nn vagy n.dddE+nn o a vals szm n.dddde+nn vagy n.ddddE+nn o a vals szm xxx.xxx o a szveg o

Graka
Az R-krnyezet a nagyszm statisztikai eljrs mellett a grakai lehetsgek trhzt is nyjtja. A statiszo a u aa oe a a a u tikai elemzsek klnbz, nagy rugalmassggal kezelhet grakus megjelen ese mellett sajt brat e uo o o a o t a a pusainkat is meg tudjuk tervezni. A grakai eljrsokat hasznlhatjuk interakt s batch mdban. Az utbbi ltalban az elbbi seg egvel alaaa a v e o o a a o ts e posan megtervezett grakk rutinszer elksz esre hasznlatos. a u e t e a Az brkat az R valamely ugynevezett grakai eszkz meghajt (graphics device driver) seg egvel hozza ltre. a a o o ts e e Attl fggen, hogy a szmos meghajt (10. tblzat) kzl melyiket hasznljuk, az brk megjelen o u o a o a a o u a a a thetk a o kpernyn, illetve fjlba e o a rhatk. Mieltt egy brt ksz unk, el kell ind o o a a e t tanunk egy meghajtt. Ha nem ll o a tjuk be ennek t at, akkor az R automatikusan egy grakai ablakot nyit meg az brzolshoz. Ez tulajdonkppen pus a a a e ugyanaz, mintha Windowson kiadnnk a windows() utas ast. A grakval kapcsolatos eljrsok hrom fbb a t a aa a o csoportba oszthatk: o A magas szint grakai eljrsok ltrehoznak egy brt a grakus eszkzn, annak tbb elemvel egytt u aa e a a o o o e u (pl.: tengelyek, c ek, feliratok). mk Az alacsony szint grakai eljrsok seg egvel kiegsz o informcikat jelen u aa ts e e t a o thetbk meg az akt grau v kai eszkzn lv brnkon (pontok, vonalak, c ek). o o e oa a mk Az interakt grakai lehetsgek seg egvel az akt grakai eszkzn lv brhoz adhatunk ujabb v oe ts e v o o e o a a informcit megjelen o elemeket, vagy arrl rtkeket olvashatunk le. Mindezt az egr seg egvel. a o t o e e e ts e

A grakai eszkoz bell asai a t


Ha az R-knyezet alapbell ast hasznljuk, akkor egy grakus ablakba rajzoljuk a parancsokban megadott o a t a a a a brinkat. Ha a munkafolyamat sorn tbb brt is ksz unk, s szeretnnk, hogy ezek visszanzhetek legyenek, a o a a e t e e e o akkor vagy elmentjk azokat kln-kln fjlokba, vagy rgz uk a grakai trtnetben. u uo uo a o tj o e

Tbb grakai eszkoz o


Arra is van lehetsg, hogy tbb grakus ablakunk legyen s a munkafolymat sorn kszl brk kln oe o e a e uo a a uo ablakokban egyszerre lthatk legyenek. A 10. tblzat fggvnyeinek seg egvel tudunk uj grakus eszkzt a o a a u e ts e o megnyitni brink ksz esre. Pldakppen nyissunk meg eygszerre tbb eszkzt: a a e t e e e o o > > > > > > > windows() pdf() postscript() png() jpeg() windows() windows()

Ltrehoztunk teht ht eszkzt, amire brkat ksz e a e o a a e thetnk. Ha egyszerre tbb grakai eszkzt hasznlunk, u o o a akkor gyelni kell arra, hogy egyszerre csak az egyik eszkz lesz akt Az aktulisan kiadott utas asok mino v. a t dig az akt eszkzre lesznek kirajzolva. Ha ltrehozunk egy uj eszkzt, akkor az lesz az akt m a tbbit v o e o v, g o inaktivizljuk. Fontos, hogy gyeljnk arra, hogy ha a ltrehozott eszkz grakus ablak (pl.: windows()), akkor a u e o az R-krnyezet fkusza arra kerl t. Ez azt jelenti, hogy amikor kiadtuk a konzolon az utas ast, az enter o o u a t megnyomsig a fkusz ott volt, azutn pedig mr a grakus ablakon lesz. Ennek gyakorlati jelentsge az, hogy aa o a a oe hiba kezdnk el gpelni vagy beilleszteni ujabb kdokat, azok nem kerlnek be a konzolra, mert az akt ablak a u e o u v a grakus ablak. A fkuszt az egrrel a konzolra kattintva tudjuk visszahelyezni. A munka sorn lekrdezhetjk, o e a e u hogy milyen grakus eszkzeink vannak megnyitva. Ez a dev.list() fggvnnyel lehetsges. o u e e 52

IT A GRAFIKAI ESZKOZ BEALL ASAI

53

utas as t X11() windows() quartz() postscript() pdf() png() jpeg() bitmap() pictex()

xfig() bmp() win.metafile() win.print()

10. tblzat. Grakai meghajtk a a o rvid le asa o r A grakus ablak X11 window rendszereken val hasznlathoz (pl. o a a Linux). A grakus ablak Windowson val hasznlathoz. o a a A grakus ablak MacOS X krnyezetben val hasznlathoz. o o a a PostScript printeren val nyomtatshoz, vagy PostScript t u o a pus fjlba ashoz. a r PDF fjlba val ashoz. a o r PNG pixelgrakus llomny ltrehozshoz. a a e aa JPEG pixelgrakus fjl ksz eshez. a e t e Bitmap fjlba a kpet. a rja e A A TEX, illetve L TEX llomnyokba beilleszthet formban ki a a o a rja az brt egy .tex llomnyba. A \usepackage{pictex} szksa a a a u e ges. Xg grakt hoz ltre. a e BMP llomnyba az brt. a a rja a a Windos Metafjlba ki az brt. a rja a a A nyomtatra kldi az brnkat. o u a a

> dev.list() windows pdf 2 3 png:Rplot%03d.png jpeg:75:Rplot%03d.jpg 5 6 windows 8 postscript 4 windows 7

Azt hogy ppen melyik grakus eszkz akt a dev.cur() utas assal tudjuk lekrdezni. e o v, t e > dev.cur() windows 8 Ha az akt eszkznk egy grakus ablak, akkor annak c v o u msorban a R Graphics: Device 8 (ACTIVE) felirat a is jelzi akt voltt. Arra is van md, hogy egy adott grakus eszkz eltti, illetve utni eszkzt lekrdezzk, v a o o o a o e u erre szolgl a dev.prev(), illetve a dev.next() utas as. Ha az atk sttuszt egy msik eszkzre szeretnnk a t v a a o e a a tani, akkor a dev.set(which = k) fggvnyt hasznljuk. A k argumentumban adhatjuk meg az aktivitll u e a zland eszkz szmt. Azonban a konkrt szm helyett hasznlhatjuk az eltte (dev.prev()), illetve utna a o o a a e a a o a (dev.next()) relat hivatkozst is. v a > dev.set(which = dev.next()) windows 2 Ahogy lthat, a 2. szm eszkz lett az akt Ez azt is bemutatja, hogy ha az utols eszkzrl a kvetkezre a o a u o v. o o o o o ugrunk, akkor az az els lesz. Ha egy eszkzre mr nincs szksgnk, bezrhatjuk a dev.off(k) utas assal, o o a u e u a t amiben a k argumentum az eszkz szmra utal. o a a > dev.off(2) pdf 3 A trls utn a sorban kvetkez eszkz lesz az akt Ha nem grakus ablak a bezrt eszkz, akkor annak o e a o o o v. a o tartalma fjlknt lesz mentve a bezrs utn. Ezek a fjlok a munkaknyvtrba lesznek mentve. a e aa a a o a Az adott eszkz tartalmt t tudjuk msolni a dev.copy(device, ..., which = dev.next()) utas assal egy o a a a t a ltalunk meghatrozott eszkzre. Hasonl eredmnyt rhetnk el a dev.print(device = postscript, ...) a o o e e u paranccsal is, azzal a klnbsggel, hogy ebben az esetben a forrseszkz be is zrdik. A dev.copy2eps(...) uo e a o ao

54

GRAFIKA

eszkzfellet braterlet rajzterlet


b m3

k m3 k m4

b m4

b m2

b m1 k m2

k m1

7. bra. Grakai eszkz rszei a o e

fggvny egy specilis esete az elzknek, mivel ennek seg egvel EPS llomnyba u e a o o ts e a a rhatjuk ki az eszkzn o o ksz e tett brnkat. A dev.control(displaylist = c("inhibit", "enable")) seg egvel az adott eszkzn a a ts e o o rgz o thetjk az egyms utn megjelen brkat, visszanzhetjk azokat. Ha a displaylist argumentumot u a a oa a gy e u "inhibit" rtkre ll e e u a tjuk, akkor kikapcsoljuk a rgz est, ha "enable" rtkre, akkor bekapcsoljuk. Ha rgz o t e e o teni akarjuk a kpeket, akkor az bra ltrehozsa eltt kell ezt az utas ast bell e a e a o t a tanunk. A dev.copy fggvny u e csak bekapcsolt rgz es esetn mkdik. o t e u o

A grakai felulet szerkesztse e


A 7. brn lthatk a grakai eszkz rszei s azok alapbell as szerinti elrendezse. Az R-krnyezetben a a a o o e e a t e o lehetsgnk van a fellet rszeinek, illetve elrendezsknek tszabsra. A grakai fellet testreszabsra haszoe u u e eu a aa u aa nlhatjuk a layout, s a split.screen fggvnyt s a grakai paramtereket. (A grakai paramterek le asa a e u e e e e r az 58. laptl olvashat.) o o layout A layout fggvny az eszkzfelletet alablakokra darabolja fel, az argumentumban megadott mtrixnak, illetve u e o u a az oszlopszlessg s sormagassg rtkeinek megfelelen. e e e a e e o layout(mat, widths = rep(1, dim(mat)[2]), heights = rep(1, dim(mat)[1]), respect = FALSE) layout.show(n = 1) lcm(x) A layout fggvny argumentumainak rvid le asa: u e o r

IT A GRAFIKAI ESZKOZ BEALL ASAI > m <- matrix(c(2, 0, 1, 3), 2, 2, byrow = TRUE) > m [,1] [,2] 2 0 1 3

55

[1,] [2,]

> nf <- layout(m, widths = c(3, 1), heights = c(1, 3), TRUE) > layout.show(nf)

8. bra. A grakai fellet tszabsa a layout fggvnnyel I. a u a a u e

mat

widths

heights respect

n x

Mtrix formjban adhatjuk meg a kialak a aa tand alablakok szmt, aminek mino a a den cellja 0 vagy pozit egsz szm lehet. Egy szm tbbszr is szerepelhet a a v e a a o o mtrixban, viszont hinyos sorozat esetn hibt generl a fggvny. A 0 rtk a a e a a u e e e u cellnak megfelel alablakba nem kerl majd bra. a o u a Vektorban adhatjuk meg az oszlopok szlessgt. Relat szlessget numerikus e e e v e e vektorban adhatunk meg. Az abszolt szlessget centimterben, az lcm fggvny u e e e u e seg egvel adhatjuk meg. ts e Az oszlok magassgt adhatjuk meg e fggvny seg egvel, a widths argumena a u e ts e tumhoz hasonlan. o Vagy logikai rtkknt adjuk meg, vagy mtrixknt. Az utbbi esetben a mtrix e e e a e o a mretnek meg kell egyeznie a mat argumentumban megadott mtrix mretvel. e e a e e A mtrix cellk rtke 0 vagy 1 lehet. a a e e A kirajzoland brk szma. oa a a Azt a dimenzit adhatjuk meg vele, ami centimterben lesz rtelmezve. o e e

A 8. brn lthat grakai felletszerkezet a felette lthat mtrixra pl. Meggyelhet, hogy a jobb fels saa a a o u a o a e u o o rokban nem jn ltre alablak, ennek az oka, hogy az alapmtrixban a msodik cella rtke 0. Az is meggyelhet, o e a a e e o hogy a layout fggvny widths argumentuma c(3,1) rtket vett fel, aminek az lesz az eredmnye az brn, u e e e e a a hogy a bal oszlopban elhelyezked kt cella (2,1) hromszor olyan szles, mint a jobb oszlopban lv cella (0,3). o e a e e o A sorok magassgban tapasztalhat klnbsgek a heights rtkei miatt keletkeztek. a a o uo e e e A ltrehozott uj szerkezetbe ezek utn berajzolhatk az brk. Azt, hogy az adott bra melyik alablakba kee a o a a a rljn, a rajzutas asok sorrendjben hatrozhatjuk meg. Az elz pldban ltrehozott alablakokba rajzolsra u o t e a o o e a e a lthat plda a 9. brn. a o e a a split.screen A split.screen fggvnnyel az eszkzfelletet rszekre vghatjuk. Ezek kln-kln kpernyknt kezelheu e o u e a uo uo e o e tk, rajzolhatk s trlhetk. A screen seg egvel kivlaszthatjuk azt az alablakot, amelyikkel dolgozni o o e oo o ts e a szeretnnk. Az erase.screen trli a meghatrozott kpernyt, a close.screen pedig trli a meghatrozott e o a e o o a ablak den ojt. ci a

56

GRAFIKA

> > > > > > > > > > +

x <- pmin(3, pmax(-3, rnorm(50))) y <- pmin(3, pmax(-3, rnorm(50))) xhist <- hist(x, breaks = seq(-3, 3, 0.5), plot yhist <- hist(y, breaks = seq(-3, 3, 0.5), plot top <- max(c(xhist$counts, yhist$counts)) xrange <- c(-3, 3) yrange <- c(-3, 3) plot(x, y, xlim = xrange, ylim = yrange, xlab = barplot(xhist$counts, axes = FALSE, ylim = c(0, barplot(yhist$counts, axes = FALSE, xlim = c(0, horiz = TRUE)

= FALSE) = FALSE)

"", ylab = "") top), space = 0) top), space = 0,

q q q q q q q q q q q q q qq q q q q q

q q q q q q

q q q q q q q q q q q q q

q q

9. bra. A grakai fellet tszabsa a layout fggvnnyel II. a u a a u e

AZ ALAPTELEP ES GRAFIKAI FUGGVENYEI IT split.screen(figs, screen, erase = TRUE) screen(n = , new = TRUE) erase.screen(n = ) close.screen(n, all.screens = FALSE) A fggvnyek argumentumainak rvid le asa: u e o r figs

57

screen

erase n new all.screens

Az oszlopok s a sorok szmt meghatrz, ktelem numerikus vektor. Ngyosze a a ao o e u e lopos mtrixknt is megadhat a kperny szerkezete. Ha mtrix, akkor minden a e o e o a sora le egy kpernyt, annak bal- s jobb oldalra, tetejre s aljra vonatkoz r e o e a e e a o rtkekkel. A cellk rtke NDC egysgben rtend, vagyis a bal als sarok 0 s a e e a e e e e o o e jobb fels 1. o E szmmal hatrozzuk meg azt, hogy mely kpernyt vgja ujabb kpernykre a a a e o a e o fggvny. Ha ezt nem hatrozzuk meg, akkor az egsz grakai eszkzre vonatkozik u e a e o a mvelet. u Logikai rtk, ami arra vonatkozik, hogy a kivlasztott kperny trldjk-e. e e a e o o o e E szmmal meghatrozzuk, hogy melyik ablakot ksz a a e tse el a rendszer a rajzoo lsra, trlsre vagy den o trlsre. a o e ci o e Logikai rtk, ami ha TRUE, akkor a rajzols eltt az ablak trldik. e e a o o o Logikai rtk arra vonatkozan, hogy az sszes kpernyden o trldjn-e. e e o o e o ci o o o

Az alaptelep es grakai fuggvnyei t e


Magas szint graka u
A magas szint grakai fggvnyek minden esetben uj brt generlnak az ppen akt grakai eszkzn, u u e a a a e v o o egyszersmind az adott grakai eszkz addigi tartalma trldik. E fggvnyek eredmnyeknt a tengelyek, c ek o o o u e e e mk s feliratok automatikusan jelennek meg, ha azokat alaprtelmezsben hasznljuk. e e e a Az alaptelep esben elrhet magas szint grakai fggvnyek: assocplot, barplot, boxplot, coplot, contour, t e o u u e curve, dotchart, filled.contour, fourfoldplot, hist, image, interaction.plot, matplot, mosaicplot, pairs, persp, pie, plot, qqnorm, qqplot, stars, sunflowerplot, symbols, termplot, ts.plot. A fggvnyek u e argumentumai igen nagy szmak is lehetnek. A rszletekre nem kitrve a kzs argumenumok rvid le asa a u e e o o o r albb olvashat: a o add axes Ha rtke TRUE, akkor lehetv teszi, hogy alacsony szint grakai fggvnyekkel e e o e u u e az brt elrjk. Nem minden eljrst tesz lehetv. a a e u aa o e Ha FALSE rtket adunk meg, akkor nem generl tengelyeket az brnkhoz, e e a a a gy lehetvtve, hogy magunk szerkeszette tengelyekkel (axis) lssuk el a ksbbieko ee a eo ben. Alaprtelmezsben TRUE. e e Az ltala meghatrozott tengely(eke)t log-transzformlja. Ha rtke "x", akkor a a a e e az x-en, ha "y", akkor az y tengelyen vgzi el az talak ast. Ha "xy", akkor e a t mindkettn. Sok de nem minden brat o a puson mkdik. u o Az bra c a me, ami fellre s kzpre lesz ki u e o e rva (nagybetkkel). u Alc ami az x tengely al kerl kisebb betkkel. m, a u u e e Ertkvel a graknk rajzt ll a a a thatjuk be: "p" pontokat rajzol "l" vonalakat rajzol "b" vonalakkal sszekttt pontokat rajzol o oo "o" a pontok fl rajzolja a vonalakat oe "h" a pontokbl fggleges vonalat hz az x tengelyhez o u o u "s", "S" lpcszetes vonalrajz e o "n" Nem rajzol brt. A tengelyeket ugyan felrajzolja, de azon k ul a a v nincs semmi a grakus eszkzn. Viszont lehetsget ad arra, hogy o o oe alacsony szint grakai eljrssal rajzoljunk r. u aa a Az x, illetve y tengely feliratt hatrozhatjuk meg, alaprtelmezsben a megjelea a e e n tett objektum neve.

log

main sub type

xlab, ylab

Alacsony szint grakai utas asok u t


Az alaptelep es alacsony szint grakai fggvnyei: abline, arrows, axis, contour, grid, legend, lines, t u u e mtext, points, polygon, rect, segments, qqline, text, title.

58

GRAFIKA

Interakt grakai lehetsgek v o e


Az elz kt grakai fggvnycsoportnl az egyes rajzelemek megjelen est parancsok seg egvel tudjuk o o e u e a t e ts e elrni. Az alaptelep esben vannak olyan fggvnyek, amelyek seg egvel az brnkrl informcikat tudunk e t u e ts e a a o a o leolvasni, illetve kiegsz e thetjk feliratokkal, rajzelemekkel. u identify E fggvny seg egvel az egrmutat poz ojt tudjuk kiolvasni, ha a bal egrgombot megnyomjuk. Ha az u e ts e e o ci a e adott x, y koordinthoz kzel van rajzolt pont, akkor annak indext jelen meg a pont mellett. aa o e ti identify(x, y = NULL, labels = seq(along = x), pos = FALSE, n = length(x), plot = TRUE, offset = 0.5, ...) Egy szrsdiagram pontjainak koordinti. Meg lehet adni objektumot is, ami a oa aa koordintkat tartalmazza. aa labels Lehetsg van arra, hogy a koordintkkal megegyez elemszm vektorban megoe aa o a u adjunk c eket a pontokhoz. mk pos Ha az rtke TRUE, akkor a visszatrsi rtkhez hozzrendeldik egy rtk, ami a e e ee e e a o e e c mke relat poz ojt adja meg (1 = alatta, 2 = balra, 3 = felette, 4 = jobbra). v ci a n Az azonos tand pontok maximlis szma. o a a plot Ha az rtke TRUE, a c ek megjelennek az brn, klnben nem. e e mk a a uo offset A c eket elvlaszt tvolsg karakter-szlessgben megadott mrtke. mk a o a a e e e e ... Tovbbi grakai paramterek a e Az albbi pldval ltrehozunk egy brt, amelyen vletlen pontok lthatk. Ha valamelyik kzelbe kattintunk, a e a e a a e a o o e akkor az adott pont indexhez tartoz nagybet jelenik meg mellette. e o u x,y > > > > x <- rnorm(26,0,1) y <- rnorm(26,0,1) plot(x,y) identify(x,y,labels=LETTERS)

Ha meghatroztuk a n argumentumot, akkor annak elrse utn a kurzor ujra akt lesz a konzolon. Ha nem a ee a v hatroztunk meg ilyen korltot, akkor ugy nyerhetjk vissza a kurzorunkat, hogy a konzolra kattintunk (a a a u fkuszt thelyezzk) s megnyomjuk a ESC billentyt. o a u e u locator A bal egrgombbal val kattintssal megadott poz ot adja vissza, illetve ezen adatok felhasznlsval az brt e o a ci aa a a a pontokkal, szimblumokkal vagy vonalakkal egsz o e thetjk ki. u locator(n = 512, type = "n", ...) n type ... > > > > Az azonos tand pontok szma. o a Az rtke "n" (nem rajzol ), "p" (pontot rajzol ), "l" (vonalat rajzol ) vagy "o" e e (pontot s vonalat rajzol ) lehet. e Egyb grakai paramterek adhatk meg. e e o

x <- rnorm(26,0,1) y <- rnorm(26,0,1) plot(x,y) locator(n=3,type="p",pch=13)

A fenti pldval a vletlen pontokbl ll brnkra hrom pontot rajzolhatunk az egr bal gombjt hasznlva. e a e o a oa a a e a a A pontok pch=13 kd szimblumknt jelennek meg (11. bra) o u o e a

Grakai paramterek e
A grakai paramterek bell ashoz, illetve lekrdezshez a par fggvnyt hasznlhatjuk. Az egyes grakai e a t a e ee u e a paramtereket a par fggvny argumentumaknt ll e u e e a thatjuk be paramternv = rtk formban, de megade e e e a hatjuk listaknt is. Az aktulis paramterbell asokat a par() vagy a par(no.readonly=TRUE) utas asokkal e a e a t t krdezhetjk le. A csak olvashat s nem e u oe rhat argumentumok neve eltt a jel lthat. o o a o

AZ ALAPTELEP ES GRAFIKAI FUGGVENYEI IT adj

59

ann ask bg bty

cex cex.axis cex.lab cex.main cex.sub cin col col.axis col.lab col.main col.sub cra crt

csi cxy

din err family

fg fig

fin font font.axis font.lab font.main font.sub gamma

A szveges elemek igaz ast ll o t a a thatjuk be vele. A 0 rtk balra igaz az 1 jobbra, e e t, m a 0.5 kzpre. Megadhatjuk c(x,y) formban is, ekkor a v g o e a zszintes s fgge u o leges irnyban kln ll a u o a thatjuk be ezt a tulajdonsgot. a Ha FALSE rtket adunk meg, akkor a magas szint fggvnyeknl nem jelennek e e u u e e meg feliratok. Az alaprtelmezett rtk TRUE. e e e Logikai argumentum. Ha az rtkt TRUE-ra ll e e e a tjuk, akkor egy uj rajz ltrejtte e o eltt, a felhasznltl jvhagyst kr. o ao o o a a e A httr sz et ll a e n a thatjuk be vele. Karakterlnc, aminek seg egvel meghatrozhatjuk, hogy az brt hatrol doa ts e a a a a o boz milyen vonallal legyen kirajzolva. "o" teljes keretet rajzol "l" baloldali s als oldalakat rajzol e o "7" jobboldali s fels oldalakat rajzol e o "c" baloldali, als s fels oldalakat rajzol oe o "u" baloldali, als s jobboldali oldalakat rajzol oe "]" als, jobboldali s fels oldalakat rajzol o e o "n" nem rajzol keretet Szmrtk, ami a megjelen a e e tett szveg, illetve szimblum mrett ll o o e e a tja be, az alaprtelmezett rtkhez (1) viszony e e e tva. A tengelyfeliratok mretnek az aktulishoz viszony e e a tott nagy asi mrtke. t e e Az x s y c ek mretnek az aktulishoz viszony e mk e e a tott nagy asi mrtke. t e e A fc mretnek az aktulishoz viszony o m e e a tott nagy asi mrtke. t e e Az alc mretnek az aktulishoz viszony m e e a tott nagy asi mrtke. t e e Hvelykben megadott karaktermret (szlessg, magassg). u e e e a A rajzolshoz hasznlatos sz a a n. A tengelyfelirathoz hasznlt sz a n. Az x s y c ekhez hasznlt sz e mk a n. A fc o mhez hasznlt sz a n. Az alc mhez hasznlt sz a n. Az alaprtelmezett karaktermret pixelben (szlessg, magassg). e e e e a Szmrtk, amivel meghatrozhatjuk, hogy egy karakter hny fokkal legyen elfora e e a a gatva. Nem tl intelligens argumentum, mivel csak a 90 fok tbbszrst kpes u o ooe e rtelmezni. e Az alaprtelmezett karaktermagassg, hvelykben. e a u Az alaprtelmezett karaktermret (szlessg, magassg) a felhasznli mre e e e a ao e tkegysgben. A par("cxy")=par("cin")/par("pin"). Megjegyzend, hogy a e e o c(strwidth(ch), strheight(ch)) hasznlata az adott ch karakterlnchoz soka a kal pontosabb. A grakai eszkz dimenzii (szlessg, magassg) hvelykben. o o e e a u Hibazenet. Nem mkdik! u u o A rajzhoz hasznlt betcsald neve. Minden grakus eszkzn egyforma, br na u a o o a e hny nem engedi az tll ast. Az alaprtelmezett rtk "". Standard rtkei a a a t a e e e e e "serif", "sans", "mono" s "symbol". Egyes eszkzkn ms csaldok is hasze o o o a a nlhatk. a o Az bra elternek rajzolshoz hasznlt sz Ezel a sz a o e aa a n. nnel fog megjelenni a keret, a tengely. Egy c(x1, x2, y1, y2) formban megadhat NDC vektor, ami meghatrozza az a o a a braterletet az eszkzn. Ha bell u o o a tjuk, akkor uj rajz jn ltre. o e Igy, ha egy mr a meglvhz szeretnnk hozzadni, akkor a new=TRUE bell asra is szksgnk lesz. e o o e a a t u e u Az braterlet dimenzii (szlessg, magassg) hvelykben. Ha bell a u o e e a u a tjuk, akor uj rajz jn ltre. o e Egsz szm, ami meghatrozza, hogy milyen bett hasznlunk a szvegnkben. e a a u a o u Az 1 norml, a 2 vastag, a 3 dlt s a 4 vastag dlt bett eredmnyez. a o e o u e A tengelyfeliratokhoz hasznlt bet. a u A c ekhez hasznlt bet. mk a u A fc o mhez hasznlt bet. a u Az alc mhez hasznlt bet. a u Gamma korrekci. (A rszletek a hsv fggvnynl tallhatk.) o e u e e a o

60 lab

GRAFIKA Egy c(x, y, len) formtum numerikus vektor, ami a tengelyfeliratokat mdoa u o s tja. Az x s y elemben azt hatrozzuk meg, hogy kzel oleg hny jel legyen e a o t a az egyes tengelyeken. Az alartelmezett rtk c(5, 5, 7). Jelenleg a len nem e e e mkdik. u o A tengelyek c einek elhelyezkedsi irnyt hatrozhatjuk meg a numerikus rmk e a a a e tknek bell asval: e e a t a 0 mindig prhuzamos a tengellyel, ez az alaprtelmezs a e e 1 mindig horizontlis a felirat a 2 a felirat mindig merleges a tengelyre o 3 a felirat mindig fggleges u o A vonalvg st at hatrozhatjuk meg. Vagy szmknt (0 = lekerek e lus a a e tett, 1 = vgott, 2 = szgletes), vagy karakterlncknt (("round" = lekerek a o a e tett, "butt" = vgott, "square" = szgletes)) adhatjuk meg. a o A szvegsorok magassgszorzja. Az alaprtk 1. o a o e e A vonalak tallkozst bell o atgumentum, ami lehet szm (0 = lekerek a aa a t a tett, 1 = flderkszg, 2 = ferde), vagy karakterlnc ("round" = lekerek e e o a tett, "mitre" = flderkszg, "bevel" = ferde). e e o A vonal szgellsnek limitje. Az rtknek 1-nl nagyobbnak kell lennie, alapro ee e e e e e telmezetten 10. Nem mindegyik grakus eszkz fogadja el. o A vonal t at hatrozhatjuk meg a seg egvel. Megadhatjuk szmknt (0 = ltpus a ts e a e a hatatlan, 1 = folyamatos, 2 = szaggatott, 3 = pontozott, 4 = pontozott-szaggatott, 5 = hossz-szaggatott, 6 = hossz-rvid szaggatott), illetve karakterknt ("blank" = u u o e lthatatlan, "solid" = folyamatos, "dashed" = szaggatott, "dotted" = pontozott, a "dotdash" = pontozott-szaggatott, "longdash" = hossz-szaggatott, "twodash" u = hossz-rvid szaggatott) kdolva. A vonalrszek hosszt meg lehet hatrozni u o o e a a egy maximlisan 8 karakterbl ll karakterlnccal is. A c(1:9,A:F) karakterek a o a o a kzl ll o u a thatjuk ssze a karakterlncot. o a Vonal vastagsgt megad pozit szm, ami alaprtelmezsben 1. a a o v a e e A rajzterlet margmreteit hvelykben meghatroz vektor. A 7. brn a bels u o e u a o a a o margk jellsnek megfelelen kell megadni: c(bm1 , bm2 , bm3 , bm4 ). o oe e o A rajzterlet margmreteit sorszmban meghatroz vektor. A 7. brn a bels u o e a a o a a o margk jellsnek megfelelen kell megadni: c(bm1 , bm2 , bm3 , bm4 ). Az alapro oe e o e telmezett rtke c(5, 4, 4, 2) + 0.1. e e A mex a margkon hasznlatos koordintk le asra szolgl karakter mrett o a aa r a ao e e nvel faktor. Nem a karakter mrett vltoztatja, hanem a mai s mar, illetve az o o e e a e oma s omi kztti konverzit hatrozza meg. e o o o a A grakus fellet felosztsra hasznlhatjuk, a vektor formban (c(nr, nc)) megu aa a a adott rtkek seg egvel. Eredmnyeknt az nr*nc tmbnek megfelel sor- s osze e ts e e e o o e lopszm kpernyszerkezet jn ltre. A tmb celliba kln-kln helyezhetnk a u e o o e o a uo uo u el brkat. a a Az mfcol s mfrow paramterek ltal meghatrozott tmb elemeire hivatkozhatunk e e a a o a c(i, j) formj vektor seg egvel. A meghatrozott cellnak megfelel felau ts e a a o u letre kerl a kvetkez rajz. Az S-el val kompatibilits vgett a c(i, j, nr, nc) u o o o a e forma is hasznlhat. a o A tengelyc tengelyc m, mke s a tengelysor margsora mex egysgben. Az alapre o e e telmezs c(3, 1, 0). e Ha a rajzoland szimblum pch rtke szm, akkor ezzel az argumentummal hao o e e a trozhat meg a magassga hvelykben mrve. Jelenleg nem mkdik. a o a u e u o Logikai rtk, meylet ha az alaprtelmezett FALSE rtkrl TRUE-ra ll e e e e e o a tunk, akkor a kvetkez, magasszint fggvnnyel ksz o o u u e e tett bra rrajzoldik az akt eszkzn a a o v o o mr meglv rajzra. Ellenkez esetben, minden magasszint rajzols eltt trldik a e o o u a o o o a fellet. u A kls margkat sorszmban meghatroz vektor (7. bra). A vektort c(km1 , u o o a a o a km2 , km3 , km4 ) formban kell megadni. a A kls margkat NDC (normalized device coordinates) egysgben megad vektor, u o o e o amit a c(x1, x2, y1, y2) formban kell megadni (7. bra). a a A kls margkat hvelykben meghatroz vektor (7. bra). A vektort c(km1 , u o o u a o a km2 , km3 , km4 ) formban kell megadni. a

las

lend

lheight ljoin

lmitre lty

lwd mai mar

mex

mfcol, mfrow

mfg

mgp mkh new

oma omd omi

INTERAKT VIZUALIZACIO IV pch pin plt ps pty

61

smo srt tck

tcl

tmag type usr

xaxp

xaxs

xaxt

xlog xpd yaxp yaxs yaxt ylog

Vagy egy szimblumkdot hasznlunk (0-25), vagy egy karaktert adunk meg pont o o a jellsre. A 0-24 kztti kdok s a megfelel szimblumok a 11. brn lthatk. oe e o o o e o o a a a o Az aktulis rajzterlet dimenzii (szlessg, magassg), hvelykben megadva. a u o e e a u Seg egvel az aktulis braterleten koordintkkal hatrozhatjuk meg a rajztets e a a u aa a rletet. Vektor formban kell megadni c(x1, x2, y1, y2). u a Egsz szmmal adhatjuk meg a karakterek vagy szimblumok pontmrett. e a o e e A rajzterlet alakjt hatrozhatjuk meg. Ha "s" rtket vesz fel, akkor ngyzet u a a e e e alak, ha "m" rtk, akkor a maximlis rajzterletet biztos o tgla alak rajzteu e e u a u t e u rletet kapunk. u A krk s kr o o e o vek sim asval kapcsolatos argumentum. Nem mkdik. t a u o Karakterlncok elforgatst adhatjuk meg fokban (lsd mg crt). a aa a e A rajzterlet szlessghez, illetve magassghoz viszony u e e e a a tva adhatjuk meg a rcsa jelek hosszt. Ha rtke 1, akkor a teljes rajzterletet behlzza, egy grided hoz a e e u ao ltre, az alaprtelmezett rtk NA. Ha pozit szmot adunk meg, akkor a rajztee e e e v a rletre, ha negat u vot, akkor azon k ulre hzza a vonalakat. v u A rcsjelek mrett a szvegsor magassgnak arnyban adhatjuk meg. Az alapa e e o a a a a rtelmezett rtk -0.5. Ha NA rtket adunk meg, akkor annak kvetkeztben a e e e e e o e tck = -0.01 rtk lesz (S alaprtelmezett). e e u e A fc mretnek a rajz egybb felirataihoz viszony o m e e e tott nvelst meghatroz o ee a o szm. a E karakterrel megadhatjuk a rajzols t at. A rszleteket lsd az 57. lapon. a pus e a A rajzterlet felhasznl ltal bell u ao a a that szls koordinti, amiket o e o aa ac(x1, x2, y1, y2) formban kell megadni. Ha a xlog rtke TRUE, akkor a e e az x hatrrtkei 10par(usr)[1:2] . ae e Az x tengely szls rtk jellinek koordintit adja meg c(x1, x2, n) forme oe e u oo aa a ban. Ha az xlog rtke FALSE, az n egsz szm, ami azt adja meg, hogy a kt e e e a e megadott x rtk kztt hny szakasz legyen. e e o o a Az x tengely intervallumnak szm asi st at meghatroz argumentum. A lea a t lus a o hetsges rtkek: "r", "i", "e", "s", "d". Azonban jelenleg csak az "r" s az "i" e e e e hasznlhat. A st a o lusok mindegyike az adattartomnyon vagy a xlim rtkeken a e e alapszik. Az "r" (regulris) mdszer az elszr 4%-kal megnagyobb az adata o o o tja tartomnyt, s ehhez hoz ltre egy jl illeszked c ej tengelyt. Az "i" (internal) a e e o o mk u az eredeti adattartomnyhoz hoz ltre egy jl illeszked c ej tengelyt. a e o o mk u E karakterrel meghatrozhat az x tengely st a o lusa. Az "s" rtk az alartelmezs, e e e e hasznlhat az "l", illetve az "e" rtk is, de ezek eredmnye ugyanaz lesz, mint a o e e e az "s"-nl. Ha "n" rtket adunk meg, akkor ltrehozza a tengelyt, de nem rajzolja e e e e ki. Ha a FALSE alaprtelmezett rtket TRUE-ra ll e e e a tjuk, akkor az x tengelyen logaritmus sklt fog hasznlni. aa a Logikai vagy NA rtket vehet fel. Ha FALSE, akkor a rajzterletre, ha TRUE, az e e u a braterletre, NA esetn pedig az egsz eszkzfelletre rajzol. u e e o u A xaxp argumentumhoz hasonl. o Az y tengely intervallumnak szm asi st at meghatroz argumentum. Rsza a t lus a o e letek az xaxs argumentumnl olvashatk. a o Az y tengely st at meghatroz karakter. Rszletek az xaxt argumentumnl lus a o e a olvashatk. o Az y tengely skljt ll a a a a thatja t. Rszletek az xlog argumentumnl olvashatk. a e a o

A 10. brn lthat hrom grakai paramter tll asa s azok eredmnye. A mfrow = c(2, 2) bell as ngy a a a o a e a a t e e a t e egyenl rszre osztja a grakai eszkz fellett. Ahhoz, hogy a ngy rajzterlet ngyzet alak legyen, a pty o e o u e e u e u rtkt "s"-re vltoztattuk. A bty = "n" hatsra a rajzterletek krl nem jelennek meg keretek. e e e a aa u ou

Interakt vizualizci v a o
Szmos fejleszts ll rendelkezsre interakt vizualizcis feladatok megoldsra. Egyesek telep eshez szka e a e v a o aa t e u sges az R-krnyezeten k ul egyb krnyezet vagy meghajtk. Az iplots22 s a KLIMT23 JAVA krnyezetet e o v e o o e o ignyl eszkz, az R-rel val kommunikcijukhoz szksges az rJava csomag is. Az xgobi ujabb vltozata a e o o o a o u e a
22 http://www.rosuda.org/iPlots/ 23 http://www.rosuda.org/KLIMT/

62

GRAFIKA

> > > > > >

grafikai.parameterek <- par(mfrow = c(2, 2), pty = "s", bty = "n") hist(rnorm(300, 0, 1), col = "red") hist(rnorm(300, 0, 1), col = "red") hist(rnorm(300, 0, 1), col = "red") hist(rnorm(300, 0, 1), col = "red") par(grafikai.parameterek)

Histogram of rnorm(300, 0, 1)
50

Histogram of rnorm(300, 0, 1)
50 Frequency

Frequency

30

0 10

0 10 3

30

1 2 3

rnorm(300, 0, 1)

rnorm(300, 0, 1)

Histogram of rnorm(300, 0, 1)
60

Histogram of rnorm(300, 0, 1)
60 Frequency

Frequency

40

20

0 3

20

40

rnorm(300, 0, 1)

rnorm(300, 0, 1)

10. bra. par plda a e

TRELLIS

63

10

11

12

13

14

15

16

17

18

19

q
20 21 22 23 24

11. bra. A pch kdok 0-tl 24-ig a o o

ggobi24 vizualizcis rendszerrel is kialak a o that egyttmkds a Rggobi csomag telep esvel. o u u o e t e Az OpenGL25 krnyezetre pl rgl s djmrgl csomagok seg egvel nem csak ltrehozhatunk hromdimenzis o e uo e ts e e a o grakkat, felleteket, hanem azokat trben forgathatjuk, nagy a u e thatjuk s mozgathatjuk. Plda az rgl csomag e e lehetsgeire: oe > > > > > > > > > > > > library(rgl) data(volcano) y <- 2 * volcano x <- 10 * (1:nrow(y)) z <- 10 * (1:ncol(y)) ylim <- range(y) ylen <- ylim[2] - ylim[1] + 1 colorlut <- terrain.colors(ylen) col <- colorlut[ y-ylim[1]+1 ] rgl.clear() rgl.bg(color="white") rgl.surface(x, z, y, color=col)

Trellis
A Trellis grakai krnyezetet eredetileg tbbvltozs adatllomnyok vltozi kzttt fennll kapcsolatok, o o a o a a a o o o a o interakcik explorat vizualizcijra fejlesztettk ki26 , s az S/S-plus krnyezetben implementltk elszr. Az o v a oa e e o a a o o R-krnyezetben a lattice s ennek alapjt jelent grid knyvtrak tartalmazzk azokat a fggvnyeket, ameo e a o o a a u e lyekkel Trellis t u vizualizcit vals pus a o o thatunk meg. Itt is beszlhetnk magas, illetve alacsony szint grakai e u u fggvnyekrl, ezek azonban eltrnek az alapcsomag grakai fggvnyeitl. A trellis.device() hasznlhat u e o e u e o a o a trellis grakai eszkz megnyitsra. o aa
24 http://www.ggobi.org 25 http://www.opnegl.org 26 http://cm.bell-labs.com/cm/ms/departments/sia/project/trellis

64

GRAFIKA

Magas szint fuggvnyek u e


A kvetkez magas szint grakai fggvnyek hasznlhatk a trellis grakai brk ltrehozsban: barchart, o o u u e a o a a e aa bwplot, cloud, contourplot, densityplot, dotplot, histogram, levelplot, parallel, qq, qqmath, rfs, splom, stripplot, tmd, wireframe, xyplot.

Alacsony szint fuggvnyek u e


Az elz fggvnyekkel ltrehozott brkat kiegsz o o u e e a a e thetjk egyb grakai elemekkel, amire a kvetkez fggu e o o u vnyeket hasznlhatjuk: larrows, llines, lplot.xy, lpoints, lsegments, lsegments, ltext, panel.arrows, e a panel.lines, panel.points, panel.segments, panel.text.

Grakai paramterek e
Az egyes grakai paramterek aktulis rtkt a trellis.par.get() fggvny seg egvel krdezhetjk e a e e e u e ts e e u le. Az egyes paramtereket tll e a a thatjuk a lset, a canonical.theme vagy a trellis.par.set() fggvnyek u e seg egvel. Az utbbi megolds hasznlata javasolhat leginkbb. ts e o a a o a

Programozs R-ben a
Az R az egyszerbb-bonyolultabb utas asok mellett lehetsget nyjt komplex feladatok megvals asra is. u t oe u o t a Ezen feladatok ltalban nem oldhatk meg egy-egy utas as lefuttatsval, hanem programozst ignyelnek, a a o t aa a e amikor is tbb (esetleg vezrlkn keresztl egymsra pl) utas ast hasznlunk ciklusokba rendezve, feltteles o e o o u a e uo t a e elgazsokba terelve a folyamatokat. Amellett, hogy az R gazdag fggvnytrt hasznlhatjuk ezekben a proga a u e aa a ramokban, magunk is ksz e thetnk fggvnyeket. Erdemes sajt fggvnyt ksz u u e a u e e teni olyan gyakran elfordul, o o o aa a e u e o o e e e o sszetett feladatok megoldsra, amire nem talltunk ksz fggvnyt az R-kzssg kszletben. Ha tbb ilyen fggvnyt ksz unk mr s ezeket gyakran szeretnnk hasznlni, akkor ltrehozhatunk sajt csomagot is, u e e tett a e e a e a ami ezeket tartalmazza. Az R-programok ashoz rdemes olyan szvegszerkesztt hasznlni, ami egyttmkdik az R-krnyezettel r a e o o a u u o o (Emacs, Xemacs). A programkd szerkesztshez nagy seg eget nyjt, ha a szvegszerkesztnk rendelkezik az o ee ts u o o R-nyelvnek megfelel szintaktikai kiemelssel (Tinn-R). o e

Vezrlk e o
Itt vezrlon a ciklusszervez eszkzket s a feltteles utas asokat rtjk. Mindkt vezrlt e o o o o e e t e u e e o pus esetn e gyakran kell megfogalmaznunk feltteleket. Ezekhez az R-ben, mint ms programozsi nyelvekben is, hasznlunk e a a a osszehasonl o, illetve logikai opertorokat (11. s 12. tblzat). t a e a a

Ciklusok
A cikluskpzs vagy looping azt jelenti, hogy egy utas ast vagy blokkot ismtelten futtatunk le. Kifejezetten e e t e a ciklusok kezelsre az R hrom utas assal rendelkezik, ezek a for, a while s a repeat . Mindhrom utas as ee a t e a t az utoljra rtelmezett utas as rtkt adja vissza. Itt is lehetsges, habr ritkn alkalmazott megolds, hogy a e t e e e e a a a az eredmnyt egy objektumnak adjk t. A cikluson belli folyamatellenrzsre tovbbi kt bep e a a u o e a e e tett szerkezet rhet el: a next s a break. A break s a next utas asokkal kilphetnk egy ciklusbl, illetve a ciklus kvetkez e o e e t e u o o o elemre ugorhatunk. Mindkettre igaz, hogy az utnuk ll utas asok nem rtelmezdnek. e o a a o t e o Az R-ben elrhetk egybb utas asok is, amelyek tulajdonkppen hurkolsokat vgeznek, ilyenek az apply, a e o e t e a e lapply, a mapply s a tapply. Egybknt tbb opertor, klnsen az aritmetikaiak vektorizltak, ciklus e e e o a uo o a gy nlkl is minden elemen vgrehajtdik a mvelet. e u e o u A ciklusszervez fggvnyek szintaxisa: o u e for(var in seq) expr while(cond) expr repeat expr break next A ciklusszervez fggvnyek argumentumainak le asa: o u e r

11. tblzat. a a opertor a < > <= >= == !=

Osszehasonl o opertorok t a jelents e kisebb mint nagyobb mint kisebb vagy egyenl o nagyobb vagy egyenl o egyenl o nem egyenl o 65

66

PROGRAMOZAS R-BEN

12. tblzat. Logikai opertorok a a a opertor jelents a e !x nem x&y s e x && y s e x|y vagy x || y vagy xor(x, y) exkluz vagy v cond Egyelem vektor, amiben meghatrozzuk a felttelt. Az rtke nem lehet NA. Ha u a e e e tbb elembl ll vektorknt adjuk meg, akkor (hibazenet mellett) a vektor els o o a o e u o elemben meghatrozott felttel szerint fut le a fggvny. e a e u e Egy vltoz neve. a o Egy vektor (belertve a listt is). e a Kifejezs(ek), ha tbb soros kifejezs-sorozat, akkor blokkban kell elhelyezni. e o e

var seq expr for

A for ciklusban egy vektor hosszban hatrozhatjuk meg, hogy az adott utas as(oka)t hnyszor ismtelje meg a a t a e az R-krnyezet . o for (vltoz in vektor) a o utasts1 a A vektor lehet vektor vagy lista is. A fggvny mintegy vgigfut a vektoron s minden elemnl vgrehajtja u e e e e e e az utasts1 parancsot. A ciklus befejezsekor a vltoz nev vltoz tovbbra is elrhet lesz, s rtke a a e a o u a o a e o e e e vektor utols elemvel egyezik meg. o e > for (i in 1:3) cat(i, '\n') 1 2 3 repeat A repeat utas as mindaddig ismtli az adott utas as rtelmezst, am az szksges. Ez a lehetsg egyben t e t e ee g u e oe veszlyes is mert, knnyen vezethet vgtelen ciklushoz. A szintaxis a kvetkez: e o e o o repeat utasts a Az utas asnak blokkot kell formlnia. Ahhoz, hogy kontrolllni tudjuk a folyamatot, a blokkon bell el kell t a a u helyezni egy kilpsi felttelt is. e e e > i <- 0 > repeat { + i <- i + 1 + cat(i, '\n') + if (i == 3) break} 1 2 3 while Hasonl az elzhz, azonban magban a fggvnyben lehetsg van a folyamat kontrolllsra. o o o o a u e oe aa a while ( feltteles utasts ) utasts e a a A ciklusban elhelyezett utas asok addig ismtldnek, am a feltteles utas asban meghatrozott felttel igaz, t e o g e t a e ha az hamis, akkor a ciklus befejezdik. Ha az utas as soha nem rtkeldik, akkor NULL rtket ad vissza, o t e e o e e egybknt pedig mindig az utoljra lefuttatott utas as eredmnyt. e e a t e e

VEZERLOK > i <- 1 > while (i < 4) { + cat(i, '\n') + i <- i + 1} 1 2 3

67

Feltteles utas asok e t


if Az if, illetve if/else utas as felttelesen rtelmez kt utas ast. Amennyiben a megadott felttel rtke igaz, t e e e t e e e akkor az els utas as rtelmezdik, egybknt a msodik. A szintaxis: o t e o e e a if ( feltteles utasts ) e a utasts I. a else utasts II. a Ha a feltteles utas as eredmnye nem logikai vagy numerikus, akkor hibazenetet kapunk. Az if/else utas as e t e u t lehetsget ad numerikus problmk (pl. a negat szm logaritmusa) elkerlsre. Minthogy az if/else egy oe e a v a ue e utas as, lehetsg van arra, hogy az eredmnye rtkads sorn taddjk egy objektumnak. A kvetkez kt t oe e e e a a a o e o o e plda ugyanazt az eredmnyt adja: e e > > + + > > n <- 2 if (n > 0) {k <- n} else {k <- 0} k <- if (n > 0) n else 0 k

[1] 2 Az else kittel nem ktelez. Amennyiben az if utas as nincsen blokkban, s van else kittel, akkor annak e o o t e e ugyanabban a sorban kell szerepelnie, mint az if-nek. Ha nem van, akkor a szintaktikailag teljes sor az uj sor gy hatsra rtelmezdik. Ha az if utas as blokkban van, s else kittelt is hasznlunk, akkor az else az if-et aa e o t e e a lezr kapcsos zrjellel (}) egy sorban kell, hogy kezddjk. Az if/else utas asokat egymsba is gyazhatjuk: ao ao o e t a a if ( feltteles utasts I.) e a utasts I. a else if ( feltteles utasts II.) e a utasts II. a else if ( feltteles utasts III.) e a utasts III. a else utasts IV. a Az else if utas asok szmnak nincsen korltja. t a a a ifelse Az ifelse fggvny hasznlata egyszers az if/else kifejezs-kombincit. M a korbbi if fggvnyt u e a u ti e a o g a u e alternat kifejezs nlkl is lehet hasznlni, az ifelse-t csak azzal egytt. Seg egvel ciklusba gyazs nlkl v e e u a u ts e a a e u lehet objektumok elemeit tesztelni, s rtkktl fgg rtkadsokat elvgeztetni. e e e u o u oe e a e ifelse(test, yes, no) A ciklusszervez fggvnyek argumentumainak le asa: o u e r test A felttelt meghatroz kifejezs. e a o e yes Ha felttel eredmnye TRUE. e e no Ha felttel eredmnye FALSE. e e Az if/else fggvny hasznlatval egyez eredmnyt ad formula: u e a a o e o

68 > n <- 2 > k <- ifelse(n > 0, n, 0) > k [1] 2

PROGRAMOZAS R-BEN

Ha egy elemnl tbbel rendelkez objektumon hasznljuk a fggvnyt, akkor megsprolhatunk egy ciklust: e o o a u e o > sor <- c(1,2,1,3,1,4) > k <- ifelse(sor < 2, 1, 2) > k [1] 1 2 1 2 1 2 switch M a korbbi feltteles fggvnyek legfeljebb kt alternat kztt tesznek klnbsget, a switch tbb alterg a e u e e va o o uo e o nat at is lehetv tesz. v o e switch(EXPR, ...) A switch fggvny argumentumainak le asa: u e r EXPR ... Pldk: e a > x <- rnorm(123, mean=0, sd=1) > switch("mean", + mean = cat('tlag: ', mean(x), '\n'), a + median = cat('medin: ',median(x, '\n')), a + trimmed = cat('trimmelt tlag: ',mean(x, trim = .1), '\n')) a a tlag: 0.0910466 E kifejezs rtkeli a numerikus vagy szveges rtkeket. e e e o e e Az alternat ak listja. v a

Sajt fuggvnyek ksz ese a e e t


A function fggvny seg egvel ltrehozhatunk sajt fggvnyeket. u e ts e e a u e function( arglist ) expr return(value) A function s return fggvnyek argumentumainak le asa: e u e r arglist Egy vagy tbb nevet sorolhatunk fel, amelyek a fggvny argumentumai lesznek. o u e Meg lehet adni egyszeren a nevet, vagy a nevet s a hozz kapcsold kifejeu e a o o zst egytt (name=expression). Arra is van lehetsg, hogy nem adunk meg egy e u oe argumentumot sem. Egy vagy tbb kifejezs, amit a fggvnynk vgre fog hajtani. o e u e u e A fggvny visszatrsi rtke, amely egy kifejezs vagy egy objektum. u e ee e e e

expr value

Az albbi egyszer pldban lthat, hogy elszr meg kell szerkesztennk, denilnunk a fggvnyt, annak a u e a a o o o u a u e argumentumaival, illetve a fggvny belsejben mkd utas asokkal egytt. Miutn megszerkesztettk a u e e u o o t u a u fggvnynket, be is kell tltennk, ami tulajdonkppen a function fggvny futtatst jelenti. Vegyk szre, u e u o u e u e aa u e hogy itt az rtkadshoz nem a <-, hanem a = jelet hasznljuk. Miutn betltttk az uj fggvnyt, az a szoksos e e a a a o o u u e a mdon megh o vhat. A fggvnynket egyszeren vgrehajtathatjuk, vagy (rtkads utjn) egy objektumnak o u e u u e e e a a adhatjuk t az rtkt. Fggvny denilsnak s hasznlatnak lpsei: a e e e u e aa a e a a e e 1. A fggvny denilsa s betltse: u e aa e o e > + + + elso.fuggvenyem <- function(x) { x + 1 }

IT SAJAT FUGGVENYEK KESZ ESE

69

13. tblzat. String-fggvnyek a a u e fggvny neve u e cat deparse formatC grep match, pmatch nchar parse paste strsplit sub, gsub substring toupper, tolower 2. A fggvny megh asa: u e v > elso.fuggvenyem(23) [1] 24 Ebben az egyszer pldban a fggvny ltal vgrehajtott mveletek (sszeads) eredmnye nem tl elegns, u e a u e a e u o a e u a rdemes lenne egyrtelmbb tenni az outputjt. e e u e a A kvetkez pldban egy olyan fggvnyt denilunk, mely egy numerikus vektorbl nhny fbb le o statiszo o e a u e a o e a o r tikt szm s azok eredmnyt egy knnyen rtelmezhet outputba ki. a a t, e e e o e o rja > leiro.statisztikak <- function(x) + { + leirok = paste('Elemszm:', '\t',length(x), '\n', a + 'Atlag:', '\t', '\t', round(mean(x),3), '\n', + 'Szrs:', '\t', '\t', round(sd(x),3), '\n', o a + 'Variancia:', '\t', round(var(x),3), '\n', + 'Minimum:', '\t', round(min(x),3), '\n', + 'Maximum:', '\t', round(max(x),3), '\n', sep='') + return(leirok) + } Ebben a fggvnyben tovbbi fggvnyeket hasznltunk. A paste string-fggvny (13. tblzat) seg egvel u e a u e a u e a a ts e az argumentumknt megadott elemeket karakterlncc alak s sszefzi. A paste fggvnyben ktfle spee a a tja e o u u e e e cilis karaktert kdol karakterlnc is lthat: a \t s a \n. Az elz a tab-ot, az utbbi az uj sor t kdolja a o o a a o e o o o o (14. tblzat). A fggvnynkben hasznlt le o statisztikk szm ast vgz fggvnyek s a round fggvny a a u e u a r a a t a e o u e e u e (15. tblzat) eredmnyei szintn a paste argumentumai. A fggvnynk tulajdonkppen sszefzi a szveges a a e e u e u e o u o elemeket, s a szveges elemm alak e o e tott szm a tott rtkeket a leirok objektumba be. Vegyk szre, hogy e e rja u e az rtkadsnl nem a szoksos <-, hanem a = jelet hasznltuk. Az utols sorban lv return(leirok) pae e a a a a o e o rancs a fggvny visszatrsi rtkt hatrozza meg. Ez azt jelenti, hogy ha megh u e ee e e e a vjuk a leiro.statisztikak fggvnynket, akkor annak eredmnye a leirok objektum tartalma lesz. u e u e > x <- rnorm(123, mean=0, sd=1) > res <- leiro.statisztikak(x) > cat(res) Elemszm: a tlag: A Szrs: o a Variancia: Minimum: Maximum: 123 -0.081 0.985 0.97 -2.157 2.247

A pldban generlunk egy vletlen szmokat tartalmaz vektort, ami a fggvny megh asakor annak argumene a a e a o u e v tuma lesz. Fggvnynk eredmnyt egy rtkadson keresztl be u e u e e e e a u rjuk a res objektumba. A res objektumot a cat fggvnnyel formzzuk, s ki u e a e ratjuk a terminlba. a

70

PROGRAMOZAS R-BEN

14. tblzat. a a kdols o a \' \" \n \r \t \b \a \f \v \\

Specilis karakterek a eredmnye e aposztrf o idzjel e o uj sor soremels e horizontlis tab a backspace hangjelzs e oldaltrs oe fggleges tab u o backslash

R-fggvny u e sqrt log log10 exp abs round ceiling floor sin, cos, tan asin, acos, atan sum(x) prod(x) max(x) min(x) which.max(x) which.min(x) range(x) length(x) mean(x) median(x) var(x) vagy cov(x) cor(x) var(x,y) vagy cov(x,y) cor(x,y)
x numerikus vektor

15. tblzat. Altalnos fggvnyek a a a u e rvid le asa o r ngyzetgyk e o termszetes logaritmus e 10 alap logaritmus u exponencilis a abszolt rtk u e e a legkzelebbi egsz szmra kerek o e a t felfel kerek e t lefel kerek e t szinusz, koszinusz, tangens arkusz szinusz, arkusz koszinusz, arkusz tangens x elemeinek osszege x elemeinek szorzata x legnagyobb rtke e e x legkisebb rtke e e x melyik eleme x legnagyobb rtke e e x melyik eleme x legkisebb rtke e e x terjedelme, megyegyezik a c(min(x), max(x)) vektorral x elemszma a x lemeinek tlaga a x elemeinek medinja a x elemeinek variancija (n-1 alap), ha x egy mtrix vagy a u a data.frame variancia-kovariancia mtrix az eredmny a e ha x mtrix vagy data.frame, akkor korrelcis mtrix (ha vektor, a a o a akkor 1) kovariancia x s y kztt, ha x s y mtrix vagy data.frame, akkor e o o e a azok oszlopai kztt o o lineris korrelci x s y kztt, vagy korrelcis mtrix, ha mta a o e o o a o a a rixok vagy data.frame-ok

Jelentsek ksz ese e e t


Gyakori igny, hogy a statisztikai eredmnyek (akr szveges, akr grakus formban) egy dokumentumban e e a o a a o a a o e u e sszefoglalva jelenjenek meg. A korbbiakban lthattuk, hogy az R-krnyezetben vgzett mveletek eredmnyei kimenthetk fjlokba, adatbzisokba, illetve a vglapra. Az exportlt rszek beilleszthetk szvegszerkeszt, o a a a o gy a e o o o A kiadvnyszerkeszt szoftverek dokumentumaiba. A L TEX trdelsi rendszerhez az R tbb fle kimenettel is rena o o e o e delkezik (pl.: pictex, xtable), a kt krnyezet egyttes alkalmazsa igen hatkony lehet. Az elterjedtebb irodai e o u a e szoftvercsomagok (pl. Open Oce, KOce, StarOce vagy MS Oce) szvegszerkeszt eszkzeivel szintn o o o e ksz e thetk jelentseket, az R-krnyezetbl szrmaz kimenetek felhasznlsval. u e o o a o aa a Ha tbb brt, illetve szveges kimenetet k anunk beilleszteni a kszl jelentsnkbe, s ezt manulisan o a a o v e uo eu e a szeretnnk megvals e o tani, akkor hosszadalmas, tbb hibalehetsget hordoz utat vlasztunk. Gondoljunk arra, o oe o a hogy ha tbb kpet is beillesztnk, akkor azok elnevezsben akkurtusan kell eljrnunk, de ha ezt mg meg o e u ee a a e is tettk, a szoftverekben elrhet fjlbl val beszrsi rutinokban mkdsbl fakadan knnyen ms kpet u e o a o o ua u o e o o o a e illesztnk be az adott helyre, mint amit szerettnk volna. Ha ezt meg is oldottuk, s (nagyon gyelmesen) minu u e den brt a helyre tudtunk tenni, szksg lehet az elemzsek, az brk elksz esnek mdos a a e u e e gy a a e t e o tott vagy ms a adatokon alapul megismtlsre. Ekkor pedig kezdhetjk ellrl az egszet, a keveredsek veszlyvel terhelve. o e ee u o o e e e e Szerencsre ltezik egy eszkz, ami az R-krnyezetben is elrhet s lehetv teszi, hogy olyan dokumentumokat e e o o e oe o e hozzunk ltre, amelyekben a programkdoktl kezdve, az eredmnyeken s brkon keresztl, az rtelmezsig e o o e e a a u e e minden egysg dinamikusan kezelhet. Ez a Sweave. e o

Sweave
A Sweave lehetsget ad arra, hogy a dokumentcis szvegrsz(eke)t s az R-kdo(ka)t egy noweb szintaxis oe a o o e e o u A forrsllomnyban szerkesszk, majd az R-rtelmezn lefuttatva L TEX27 llomnyt kapjunk vissza eredmnyl aa a u e o a a e u az albbi elemekkel: a dokumentcis szveg a o o R-input s/vagy e R-output (szveg vagy graka) o Ez a megolds lehetsget biztos arra, hogy jelentsnket ujragenerljuk, ha megvltoztak a forrsadataink, a oe t eu a a a illetve emellett az anal zisben hasznlt kdot, eljrst is dokumentlthatjuk ugyanazon jelentsben. Azon Ra o aa a e A felhasznlknak, akik a L TEX-ben is dolgoznak, tovbbi elny, hogy nem kell uj szintaxist s szoftverkezelst ao a o e e tanulniuk.

Noweb fjlok a
A noweb (Ramsey, 1998) olyan dokumentl-programozsi eszkz, ami lehetv teszi programozsi forrskd ao a o o e a a o s a r vonatkoz dokumentci kombinlst egyetlen fjlban. Klnbz szoftverek lehetv teszik a dokumene a o a o aa a a uo o o o e tci s/vagy a forrskd kivonst. A noweb fjl egyszer szveges llomny, ami tartalmazza a programkdot a oe a o aa a u o a a o s a dokumentcis szakaszokat (chunk ): e a o Dokumentcis szakasz Olyan sorral kezddik, aminek az els karaktere @, amit szkz vagy uj sor kvet. a o o o o o o A sor tovbbi rsze megjegyzs lesz, vagyis nem rtelmezdik. Altalban a dokumentcis szakasz jella e e e o a a o oo A nyelven szveg, pl. L TEX. rt o Kd szakasz Az els sora <<name>>= szveggel kezddik, a sor folytatsa szintn megjegyzs lesz s nem o o o o a e e e rtelmezdik. e o Az els szakasz alaprtelmezsben mindig dokumentci. o e e a o
27 http://www.inf.unideb.hu/matex/

71

72

IT JELENTESEK KESZ ESE

Sweave-llomnyok a a
A Sweave-forrsfjlok szablyos noweb fjlok nhny kiegsz o szintaktikai elemmel, amelyek lehetv teszik a a a a e a e t o e klnbz kiegsz o bell asi lehetsgek alkalmazst a vgs output formzsnak rdekben. Hagyomnyosan uo o o e t a t oe aa e o a a e e a a noweb-fjlok kiterjesztse .nw, amely a Sweave-fjloknl szintn lehetsges. A Sweave-fjlokat ltalban .rnw, a e a a e e a a a .Rnw, .snw s .Snw kiterjesztsekkel hasznljk, jelezve azt, hogy noweb st u Sweave-fjlok. A tovbbiakban e e a a lus a a .rnw kiterjesztst hasznlunk. e a

Plda e
A Egy egyszer Sweave fjlt mutat a 12. bra, amelyben a L TEX-fjlba kt kdrsz van begyazva. Ha bell u a a a e o e a a tottuk a munkaknyvtrunkat, akkor a kvetkez kdot kell futtatnunk az R-krnyezetben: o a o o o o

> Sweave('sweavepelda.rnw') Writing to file sweavepelda.tex Processing code chunks ... 1 : echo term verbatim 2 : term verbatim eps pdf You can now run LaTeX on sweavepelda.tex
A A Sweave a .rnw llomnybl ltrehozott egy L TEX-fjlt, amit a 13. brn lthatunk. Az els klnbsg a kt doa a o e a a a a o uo e e A kumentum kztt, hogy a Sweave.sty L TEX st betltst szolgl utas as (C:/R/rw2001/share/texmf/Sweave) o o lus o ee ao t automatikusan be odik a TEX llomnyunkba. Ez teszi lehetv, hogy az Sinput s Soutput krnyezeteket a r a a o e e o A L TEX rtelmezni tudja. A dokumentcis szveg vltozatlan formban tmsoldik a sweavepelda.rnw fjlbl a e a o o a a a a o a o sweavepelda.tex llomnyba. A kdrszeket azonban (annak fggvnyben, hogy azok inputok vagy outputok) a a o e u e e a Sinput, illetve Soutput krnyezetekbe illeszti be a Sweave. Termszetesen az outputok ugy jnnek ltre, hogy o e o e az inputokat rtelmezi az R. A Sinput s Soutput krnyezeteknek \begin{Schunk} s \end{Schunk} ltal e e o e a hatroltan kell a TEX llomnyban szerepelnik. a a a u A msodik kdszakasz egy olyan Sweave lehetsget mutat be, ami kiegsz es a noweb szintaxishoz kpest: a a o oe e t e kdrsz neve seg egvel a Sweave-vel utas asokat tudunk kzlni. Ezek seg egvel kontrolllhatjuk a vgleges o e ts e t o o ts e a e outputot.

A kdrszt ugy jelltk meg, hogy bra-szakaszknt rtelmezze (fig=TRUE), a Sweave ltrehoz egy o e o u a e e gy e EPS s egy PDF llomnyt, amelyek a kdrszben lv kdnak megfelel grakt trolja. Tovbb beszr e a a o e e o o o a a a a u A egy \includegraphics{sweavepelda-001} utas ast a L TEX-llomnyba. t a a Az echo=FALSE argumentum azt ll be, hogy az R-input ne kerljn bele a vgleges dokumentumba a tja u o e (nem lesz Sinput krnyezet). o

Sweave bell asok a t


A bell asi lehetsgek seg egvel meghatrozhatjuk, hogy az .rnw fjlban trolt kdrszek s azok outputa t oe ts e a a a o e e jai (szveg, bra), hogyan odjanak t a .tex llomnyba. Minden opci ugyanolyan formj argumentum=rtk, o a r a a a o au e e ahol az rtk lehet szm, szveg vagy logikai rtk. Egyszerre tbb argumentum is bell e e a o e e o a that (vesszvel elvo o a lasztva), mindegyik argumentumnak rtket kell adnunk (ezek nem tartalmazhatnak vesszt vagy egyenlsge e o oe jelet). A logikai argumentumok rtkadsnl hasznlhat a true, a false, illetve ezek kezdbeti (t, f), a e e aa a a o o u nagybets vltozatok is mkdnek. u a u o Az .Rnw fjlban az opcik a kvetkezkppen adhatk meg: a o o o e o 1. A kdrsz kezdetn a szgletes zrjelek (<<>>) kz helyezhetjk el a bell o e e o ao o e u a tand argumentumokat, az o megadott bell asok csak az adott kd chunkra vonatkoznak. gy a t o 2. A dokumentumban brhol elhelyezhet a kvetkez utas as: a o o o t \SweaveOpts{arg1=rtk1, arg2=rtk2, ..., argN=rtkN} e e e e e e , ami mdos az alapbell asokat az utas as utni dokumentum-szakaszra vonatkozan. Ennek megfeo tja a t t a o lelen, ha a dokumentum elejn helyezzk el ezt az utas ast, akkor az az sszes kdszakaszra vonatkozan o e u t o o o a a tja tll az alapbell asokat. a t

IT SWEAVE BEALL ASOK

73

\documentclass[a4paper]{paper} \usepackage{graphicx} \usepackage[latin2]{inputenc} \usepackage[magyar]{babel} \usepackage[T1]{fontenc} \title{Sweave-plda} e \begin{document} \maketitle Ebben a pldban a \LaTeX{} dokumentumunkba kt kdot illesztettem be. e a e o Az albbi kdrszben vletlen adatok generldnak s az \verb|adat| objektumnak a o e e a o e addnak t. o a <<>>= adatok <- rnorm(800,0,1) @ A msodik kdrsz ltrehoz egy hisztogrammot. a o e e \begin{figure}[h] \begin{center} <<fig=TRUE, echo=FALSE>>= hist(adatok, main="", col="red", ylab="gyakorisg") a @ \caption{Plda bra} e a \label{swxplhist} \end{center} \end{figure} Ide jhetne egy szveg, amiben sszefoglalhatnm az bra alapjn megfogalmazhat o o o a a a o kvetkeztetseket. o e \end{document} 12. bra. sweavepelda.rnw a

74

IT JELENTESEK KESZ ESE

\documentclass[a4paper]{paper} \usepackage{graphicx} \usepackage[latin2]{inputenc} \usepackage[magyar]{babel} \usepackage[T1]{fontenc} \title{Sweave-plda} e \usepackage{C:/R/rw2001/share/texmf/Sweave} \begin{document} \maketitle Ebben a pldban a \LaTeX{} dokumentumunkba kt kdot illesztettem be. e a e o Az albbi kdrszben vletlen adatok generldnak s az \verb|adat| objektumnak a o e e a o e addnak t. o a \begin{Schunk} \begin{Sinput} > adatok <- rnorm(800, 0, 1) \end{Sinput} \end{Schunk} A msodik kdrsz ltrehoz egy hisztogrammot. a o e e \begin{figure}[h] \begin{center} \includegraphics{sweavepelda-001} \caption{Plda bra} e a \label{swxplhist} \end{center} \end{figure} Ide jhetne egy szveg, amiben sszefoglalhatnm az bra alapjn megfogalmazhat o o o a a a o kvetkeztetseket. o e \end{document} 13. bra. sweavepelda.tex a

IT SWEAVE BEALL ASOK

75

Sweave-plda e

A Ebben a pldban a L TEX dokumentumunkba kt kdot illesztettem be. e a e o Az albbi kdrszben vletlen adatok generldnak s az adat objektumnak a o e e ao e addnak t. o a

> adatok <- rnorm(800, 0, 1) A msodik kdrsz ltrehoz egy hisztogrammot. a o e e

gyakorisg 0 50

100

150

0 adatok

1. bra. Plda bra a e a Ide jhetne egy szveg, amiben sszefoglalhatnm az bra alapjn megfogalo o o a a a mazhat kvetkeztetseket. o o e

14. bra. sweavepelda.pdf a

76

IT JELENTESEK KESZ ESE

A meghajttl fggen klnbz opcik hasznlhatk. Minden meghajt kpes kezelni legalbb a kvetkez oo u o uo o o o a o o e a o o opcikat (az rtkek az alaprtelmezett rtkek): o e e e e e engine=S: karakterlnc, ami le a rja, hogy melyik S motor elrhet a kd chunkok rtelmezsre. A lehetsges e o o e ee e rtkek pl.: S, R, S3 vagy S4. Mindegyik meghajt csak a kd chunkokat rtelmezi, a tbbi rszt gyelmen e e o o e o e k ul hagyja. v split=FALSE: logikai rtk. Ha TRUE, akkor az output tbb fjlba kerl, ha FALSE, akkor egy fjl lesz az e e o a u a eredmny. A rszletek meghajttl fggek. e e oo u o label: szveges c o mke, ami a fjlnevek ksz eshez hasznland, ha a split=TRUE rtkre van ll a e t e a o e e a tva. Ha a label rtkt label.engine formban adjuk meg, akkor a kiterjeszts el lesz tvol e e e a e a tva, mieltt tovbbi o a alkalmaznnk (pl.: a hello.S cimke hello-v lesz egyszers a a u tve). Az els (de csak az els) argumentum rtke llhat magban az argumentum neve nlkl, ekkor az label-knt o o e e a a e u e rtelmezdik: e o <<hello.S, split=FALSE>> , ami ugyanaz, mint a kvetkez: o o <<split=FALSE, label=hello.S>> , de a <<split=FALSE, hello.S>> forma hibt fog generlni. a a

Objektumok hasznlata a szvegben a o


Korltozottan lehetsg, de van arra is, hogy az R-objektumok rtkt a dokumentciban begyazva a oe e e e a o a hasznljuk. Ha az Sexpr{kifejezs} krnyezetben helyezzk el az adott objektum nevt, akkor a szvegben a e o u e o annak az rtke meg fog jelenni. A kifejezs lehet objektum vagy valamilyen kifejezs, mvelet. e e e e u Mieltt ezt hasznljuk, a kdszakaszban rvnyes forrsa kell, hogy legyen. A kifejezsben hasznlhatunk Ro a o e e a e a fggvnyeket, viszont a kapcsos zrjel nem alkalmazhat. Amennyiben ilyen kifejezs hasznlata szksges, u e ao o e a u e akkor a kdszakaszban kell elvgeztetni s az eredmnyt megh o e e e e vni a \Sexpr utas assal. t

A kdszakasz ujrahasznos asa o t


A nvvel rendelkez kdszakaszok ujrahasznos e o o thatk a dokumentumon bell. Alljon itt egy egyszer plda: o u u e <<a>>= x <- 10 @ <<b>>= x + y @ <<c>>= <<a>> y <- 20 <<b>> @ , ami egyenrtk a kvetkez kddal: e e u o o o <<c>>= x <- 10 y <- 20 x + y @ A kdszakaszra utal opertor (<<>>) csak nv argumentummal rendelkezik, ms Sweave-opci nem hasznlhat o o a e a o a o benne.

TANGLE VAGY WEAVE

77

Tangle vagy weave


A Sweave-rendszert kt S-fggvnnyel rhetjk el, ezek a Stangle() s a Sweave, mindkett rsze az alap e u e e u e o e R-telep esnek. A Stangle az .rnw llomnybl csak a kdszakaszokat olvassa ki s rtelmezi, majd egy vagy t a a o o e e tbb fjlba ki o a rja. A Sweave() futtatja a kdrszeket az S-motoron s az eredmnyekkel, illetve a dokumentcis o e e e a o szveggel sszefzi egy llomnyba. A Stangle() fggvny a Rtangle meghajtt, m a Sweave RweaveLatex-ot o o u a a u e o g hasznl. a

Az RweaveLatex paramterezse e e
Az RweaveLatex meghajt az albbiakban le bell asi lehetsgeket tmogatja a kdrszek felgyelethez: o a rt a t oe a o e u e echo Ha az rtke az alaprtelmezett TRUE, akkor az outputban meg fog jelennei az e e e R-kd is. Egybknt nem. o e e eval Ha az alaprtelmezett TRUE helyett FALSE rtket adunk meg, akkor az adott kde e e o szakaszt nem rtelmezi az R. e results Egy karakterlncknt adhatjuk meg az outputban szerepl karakterek megjelea e o n esnek t at. Az alaprtelmezs verbatim, ha tex-re ll t e pus e e a tjuk, akkor a TEX st lusnak megfelelen jelenik meg az output szvege. Ha hide rtket adunk meg, o o e e akkor nem generl outputot, viszont a kdszakaszt rtelmezi. a o e print Ha az alaprtelmezett FALSE rtket TRUE-ra ll e e e a tjuk, akkor a kdszakasz minden o kifejezse mg az rtelmezs eltt be lesz illesztve a print() fggvnybe, a e e e e o u e gy kifejezsek rtkei lthatk lesznek az outputban. e e e a o term Ha az alaprtelmezett TRUE rtk, akkor az rtkadsok rtke nem lesz megjelee e e u e e a e e n tve, m az objektumok igen. Ha viszont FALSE rtket adunk meg, akkor csak g e e e azok az rtkek lesznek ki e e rva az outputba, amelyek esetben a print vagy a cat e utas ast hasznltuk. t a split Ha az alaprtelmezett FALSE helyett TRUE rtket adunk meg, akkor minden kde e e o rsznek megfelelen kln fjlokba odnak az outputok. e o uo a r strip Ha az rtke az alaprtelmezett TRUE, akkor az ures sorokat az output elejrl s e e e eo e vgrl eltvol e eo a tja, ha FALSE, akkor nem foglalkozik velk. u prefix Ha az alaprtelmezett TRUE rtket hasznljuk, akkor a ltrehozott brkhoz s a e e e a e a a e szveges outputokhoz egy ltalnos kiterjesztst illeszt. o a a e prefix.string Alaprtelmezsben .Snw. e e include Logikai rtke arra utal, hogy az adott kdrsz ltal kdolt szveges s grakus e e o e a o o e output egy helyen legyen a vgleges dokumentumban, vagy sem. Ha FALSE rtket e e e adunk meg, akkor a szveges s a grakus eredmnyek kln outputknt lesznek o e e uo e a .tex llomnyba ki a a rva. Az alaprtelmezse TRUE. e e fig Logikai rtke arra utal, hogy a kdrsz brt kdol, vagy sem. Az alaprtelmezse e e o e a a o e e FALSE. eps Ha az rtke TRUE, akkor az brt elmenti .eps llomnyba, ha FALSE, akkor nem. e e a a a a Az alaprtelmezs TRUE. e e pdf Ha az rtke TRUE, akkor az brt elmenti .pdf llomnyba, ha FALSE, akkor nem. e e a a a a Az alaprtelmezs TRUE. e e width Az bra szlessgt hatrozza meg hvelykben, az alaprtelmezs 6. a e e e a u e e height Az bra magassgt hatrozza meg hvelykben, az alaprtelmezs 6. a a a a u e e

Fuggelk e

78

Telep es t
Windows
Windowsra a telep okszlet egyetlen binris llomny, ami a http://cran.r-project.org/ oldalrl let e a a a o tlthet. Telep o o thet a Windows 95, 98, ME, NT4.0, 2000 and XP opercis rendszerekre. A binris telep o o a o a t a llomny (pl. rw2001.exe) telep esi kpernyit mutatja a 15-22. bra. a t e o a Az alaprtelmezett telep esi hely a C:\Program Files\R\ knyvtr, amelyen bell ltrehoz a telep e t o a u e tett verzinak megfelel knyvtrstruktrt (23. abra). Egyszerre tbb verzi is futhat az adott opercis rendo o o a ua o o a o szeren. Az alap-telep okszlettel nhny csomag is telep esre kerl (base, datasets, graphics, grDevices, t e e a t u grid, methods, splines, stats, stats4, tcltk, tools, utils). Ezek a csomagok mint knyvtrak kerlnek o a u bejegyzsre az R fa-struktrjba, a library knyvtrba. (A stats csomag bels knyvtrszerkezett mutatja e uaa o a o o a e a 24. bra.) A csomag fjn bell szerepl chtml knytvr tartalmaz egy leford a aa u o o a tott .html fjlt, ami az adott a csomag sgja, egy fjlba rendezve, igen hasznos lehet a knyvtr funkciinak tanulmnyozsban. u o a o a o a aa

Csomagok telep ese t


A CRAN-rl illetve a Bioconductor oldalrl kzvetlenl telep o ao o u thetnk csomagokat: u A Windows RGui Packages menjbl kivlasztjuk a Install package(s)... alment, aminek ue o a u kvetkeztben megjelenik a 38. brn lthat lista, amivel megadhatjuk azt a CRAN tkroldalt, o e a a a o u o ahhonnan telep teni szeretnnk, ami utn az R-verzinkhoz elrhet csomagok listja jelenik meg egy e a o e o a ujabb urlapon (40. bra). A listbl kivlasztva a k ant csomagot, az telep odik. Ebben az esetben a a o a v t azok a csomagok telep odnek, amelyektl a kivlasztott knyvtr mkdse fgg. Egyszerre tbb t o a o a u o e u o csomagot is ki lehet vlasztani. a A CRAN-rl letlthetk .zip kiterjesztssel klnbz csomagok. Ezek telep ese a kvetkez mdon o o o e uo o o t o o o vals o that meg: o A Windows RGui Packages menjbl kivlasztjuk az Install package(s) from local zip files. . . ue o a alment. A megjelen fjlkezel seg egvel kivlasztjuk a csomagot tartalmaz, letlttt, zippelt lu o a o ts e a o o o a lomnyt. a

Linux
A binris llomnyok elrhetk a CRAN-on nhny disztribcihoz, amelyek egyszeren telep a a a e o e a u o u thetk az o adott platformon. A forrskd szintn letlthet s a kvetkez mdon telep a o e o oe o o o thet: o ./configure make make install

Csomagok telep ese t


Vagy binris telep ot tltnk le a telep a t o u tett R verzinkhoz, vagy forrsbl telep unk. Ez utbbit egy tero a o t o minlban root-knt hajthatjuk vgre az R CMD INSTALL csomag utas assal, ahol a csomag a letlttt s tea e e t o o e lep tend csomagunk helye s neve. Elfordul, hogy bizonyos csomagok telep ese felttelezi ms csomagok o e o t e a telep tettsgt. e e

79

80

TELEP ES IT

15. bra. Windows telep esi kperny 1. a t e o

16. bra. Windows telep esi kperny 2. a t e o

LINUX

81

17. bra. Windows telep esi kperny 3. a t e o

18. bra. Windows telep esi kperny 4. a t e o

82

TELEP ES IT

19. bra. Windows telep esi kperny 5. a t e o

20. bra. Windows telep esi kperny 6. a t e o

LINUX

83

21. bra. Windows telep esi kperny 7. a t e o

22. bra. Windows telep esi kperny 8. a t e o

84

TELEP ES IT

23. bra. Windows telep esi fa a t

24. bra. A stats csomag fastruktrja a ua

Szovegszerkesztk o
Tinn-R
A Tinn-R egyszer szvegszerkeszt R-szkript szerkesztst, s az R-interpreterrel val felhasznlbart u o o ee e o ao a egyttmkdst knny meg. Elnyei: u u o e o ti o Egyszerre tbb szkript fjllal is lehet dolgozni o a Az R-szintaxisnak megfelel szvegkiemels o o e Menbl kezelhet R-mveletek u o o u Egyttmkdik R-felletekkel: u u o u Rgui R Konzol SciViews R Konzol (99. lap) Az R mellett lehetsget nyjt val egyttmkdsre az S-Plus-szal is oe u o u u o e Egyb nyelveknek megfelel szvegkiemelsre is kpes, pl. az adatbzisokkal val munka sorn hasze o o e e gy a o a nlatos SQL-kdok szerkesztsre is igen hasznos eszkz a o ee o A Tinn-R letltse s telep ese utn bizonyos bell asokat el kell vgeznnk ahhoz, hogy a telep o e e t a a t e u tett Rrendszerrel egyttmkdhessen: u u o 1. Az Options menbl a Main almen alatt tallhat Application alment vlasztva a 25. brn lthat u o u a o u a a a a o urlap jelenik meg 2. Kt bell ast rdemes megvltoztatni az urlapon: e a t e a A Starting comment elnevezs szvegdobozba az R-nyelvnek megfelel # jelet kell be eu o o rni Az Rgui felirat gombra kattintva, a megjelen fjlkezel seg egvel kivlasztjuk azt a parancsru o a o ts e a e telmez felletet, amit a ksbbiekben hasznlnnk o u eo a a

Emacs
Az Emacs szvegszerkesztrl, illetve hasznlatrl szmos ismertet rhet el az interneten28 , ezrt itt erre o oo a ao a oe o e nem trnk ki, csupn azt szeretnm bemutatni, hogy az R-krnyezettel hogyan lehet sszekapcsolni. eu a e o o

Telep es t
A telep eshez le kell tltennk a szoftver telep oll anyt29 . A tmr t o u ta om a o o tett llomnyt ki kell csomagola a nunk egy knyvtrba, j, ha az elrsi utvonalban nincsen szkz, mondjuk legyen C:\emacs. A kicsomagols o a o ee o o a utn ajnlott, de nem felttlenl szksges a bin alknyvtrban lv addpm.exe futtatsa. Ez elvgez nhny a a e u u e o a e o a e e a bell ast, tbbek kztt a Programok kz betesz egy a C:\emacs\bin\runemacs.exe fjlra mutat linket. a t o o o o e a o Tancsos, s a ksbbi ESS telep eshez szksges is egy .emacs vagy _emacs fjl telep ese is. Ebben az Emacs a e eo t u e a t klnbz bell asait a Lisp 30 nyelv alkalmazsval testreszabhatjuk. Ha valaki nem jrtas ebben a nyelvben, u o o o a t aa a
28 http://www.cs.elte.hu/linfo/Szoveg/Emacs/ 29 ftp://ftp.gnu.org/gnu/emacs/windows/emacs-21.3-fullbin-i386.tar.gz 30 http://cons.org

85

86

SZOVEGSZERKESZTOK

25. bra. Tinn-R bell asi urlap a a t akkor le is lehet tlteni klnbz feladatoknak megfelelen optimalizlt bell asi llomnyokat31 . Az Emacs o uo o o o a a t a a a bell asi llomnyt elszr a HOME knyvtrban keresi, ha ott nem tallja, akkor a C:/ gykrknyvtrban a t a a o o o a a o e o a prblkozik. Ha valamely knyvtrban tall .emacs s _emacs llomnyt is, akkor az elzt fogja hasznlni, az o a o a a e a a o o a utbbit gyelmen k ul hagyja. Szerintem a legegyszerbb, ha a gykrknyvtrba msoljuk a fjlt. o v u o e o a a a

ESS
Az Emacs Speaks Statistics (ESS ) egy ltalnos interfsz, amelyen keresztl az emacs kapcsolatot tud tea a e u remteni statisztikai szoftverekkel. Jelenleg lehetsg van az S, az R, a SAS, a BUGS, a Stata s az XLisp-Stat oe e statisztikai alkalmazsokkal, krnyezetekkel val egyttmkdsre. Az ESS szabadon letlthet az internetrl32 a o o u u o e o o o s szmos kimer o dokumentci33 rhet el a hasznlatval kapcsolatban, itt most csak az installlsra trnk e a t a o e o a a aa e e ki. A telep es lpsei: t e e A letlttt tmr o o o o tett llomnyt (pl. ess-5.2.10.zip) csomagoljuk ki az Emacs knyvtrba. (Az elz a a o a o o pldnl maradva az C:\emacs knyvtrba.) A plda szerint C:\emacs\ess-5.2.10 lesz az ESS telep esi e a a o a e t knyvtra. Termszetesen a verziszm vltozhat. o a e o a a A Microsoft Windows krnyezeti vltozi kztt a PATH-ban szerepelnie kell a hasznni k ant R-konzol elo a o o o a v e rsi utjnak. Ezt a Windows 9x opercis rendszerek esetn az c:\autoexec.bat fjlban tudjuk bell e a a o e a a tani, a kvetkez sor beillesztsvel: path=%PATH%;C:\progra~1\R\rw2001\bin. Termszetesen az rw....\bin o o ee e rszben a kipontozott helyen azt a verziszmot kell megadnunk, amit hasznlni k anunk. e o a a v Ha Windows NT/2000/XP krnyezetben dolgozunk, akkor a bell ast a kvetkez lpsekben tudjuk mego a t o o e e oldani: a Start menbl a Bell asok kzl kivlasztjuk a Vezrlpultot. A megjelen parancsikonok kzl u o a t o u a e o o o u ki kell vlasztanunk a Rendszer feliratt. A megjelen Rendszertulajdonsgok elnevezs urlapon kivlaszta u u a e u a juk a Specilis cimkvel rendelkez flet (26. bra). Itt a Krnyezeti vltozk gombra kattintva megjelenik a e o u a o a o a Krnyezeti vltozk c u urlap (27. bra), amin ki kell vlasztanunk a Rendszervltozk felirat (als) o a o m a a a o u o listbl a Path sort. A Szerkeszts gombra kattintva eltn Rendszervltozk szerkesztse ablakban (28. a o e ou o a o e a bra) a Vltoz rtke mezben keressk meg az R-krnyezetre vonatkoz bejegyzst. Ha nem tallunk, a oe e o u o o e a akkor a sor vgre, az utols elemtl pontosvesszvel elvlasztva e e o o o a rjuk be a C:\progra~1\R\rw2001\bin utat. Fontos, hogy a szkzket lehetleg mellzzk, ezrt ha a C:\Program Files knyvtrban van az R o o o o o u e o a telep es, akkor ehelyett a knyvtrnv helyett hasznljuk a C:\progra~1 elnevezst. Ha be t o a e a e rtuk az utat, akkor az OK gombbal jvhagyjuk, majd az akt a vl (27. s 28. brn lthat) urlapon ugyancsak o a vv a o e a a a o ezt tesszk. u
31 http://www.dotles.com 32 http://ess.r-project.org/downloads/ess/ 33 http://ess.r-project.org/

KATE

87

26. bra. Krnyezeti vltoz bell asa I. a o a o a t A .emacs vagy _emacs llomnyunkba beillesztjk a (load "C:/emacs/ess-5.2.10/lisp/ess-site") a a u sort. Ezzel az Emacs-Ess-R integrci kszen ll a munkra. Ha most elind a o e a a tjuk az Emacs-unkat, s lenyomjuk az e ALT-x gombkombincit, akkor megjelenik az als kperny sorban az M-x karaktersor s a kurzor villog. Ha a o o e o e most be rjuk a kis vagy nagy R-bett, a sor tartalma a kvetkezre vltozik: u o o a ESS [S(R): Rterm] starting data directory? c:/emacs/bin/ Ha ezt jvhagyjuk ENTER-rel, akkor a 29. abrn lv kpernyn lthat felleten kezddhet meg a munka. o a a e o e o a o u o

Kate
Linuxon egyszeren hasznlhat szvegszerkeszt a Kate, ami lehetv teszi az egyszerre tbb llomnnyal u a o o o o e o a a val munkt. Az R-nyelvnek megfelel szintaxis kiemelsre kpes. Minden egyb bell as nlkl hasznlhatjuk o a o e e e a t e u a a Kate als ablakban lthat felletet, mint R-terminlt. Ha a rendszernkn telep o a a o u a u o tve van az R-krnyezet s o e a Kate is, akkor a Kate elind asa utn megjelen fellet terminl ablakba elegend be t a o u a a o rnunk az R utas ast s t e megnyomni az ENTER-t, aminek kvetkeztben mris van a szvegszerkesztn bell egy R-krnyezetnk (30. o e a o o u o u a bra).

88

SZOVEGSZERKESZTOK

27. bra. Krnyezeti vltoz bell asa II. a o a o a t

28. bra. Krnyezeti vltoz bell asa III. a o a o a t

KATE

89

29. bra. R az Emacs-ben a

30. bra. Kate a

Grakus feluletek
Az R-rtelmezvel alaprtelmezett kommunikcit parancsoron keresztl folytathatunk. Habr ez az intere o e a o u a fsz nagyon rugalmas, sokaknak (ma mr) teljesen idegen. Egyes csoportok tbb grakus felhasznli felletet e a o ao u (GUI)34 is ltrehoztak, ezek egy rsze megvsrolhat, ms rsze ingyenesen letlthet. Az albbiakban rviden e e aa o a e o o a o ismertetek nhny ingyenyesen elrhet GUI-t. e a e o A grakus felleteken bell az ablakok kt formban jelenhetnek meg: tbbdokumentomos (MDI), illetve egyu u e a o dokumentumos (SDI) ablakrendszerekrl beszlhetnk. Az elz esetben az ablakok egy szlablakon bell o e u o o e uo u helyezkednek el s az egyes lenyablakok menrendszere a szlablakon rhet el, az elrhet menrende a u uo e o gy e o u szer aszerint vltozik, hogy melyik gyermekablak akt a v.

Windows RGui
A Microsoft Windowsra ksz e tett R-krnyezet telep ese utn az alaprtelmezett R-konzol a Windows RGui. o t a e Az ind oikonnal val szoftverind as utn ennek a GUI-nak az MDI-st u fellete jelenik meg. A krnyezetben t o t a lus u o kezelhet ablakok a konzol, az R-editor, a grakai ablak, illetve a Data Editor. A 2.1.1. verzi menrendszernek o o u e rvid bemutatsa olvashat az albbiakban. o a o a

Konzol
A Windows-os RGui konzol-eszkztra o a

Open script Load image Save image Copy Paste Copy and paste Stop current computation Print menurendszer File Source R code. . . New script Open script. . . Display le(s). . .
34 http://www.r-project.org/GUI

Egy korbban megszerkesztett kdot nyit meg s egyben rtelmezi is. a o e e (Ugyanezt az eredmnyt a source() utas assal rhetjk el.) e t e u A kdok szerkesztsre szolgl R-editort nyitja meg, uj kd szerkesztsre. o ee ao o ee Az R-editorban megnyit egy korbban szerkesztett kd-fjlt. a o a Megtekintsre megnyitja a kivlasztott ASCII-fjlt. e a a

90

WINDOWS RGUI Load Workspace. . . Save Workspace. . . Load History. . . Save History. . . Change dir. . . Print. . . Save to File. . . Exit Edit Copy Paste Paste commands only Copy and Paste Select all Clear console Data editor. . . GUI preferences. . .

91

Egy korbbi munkaterlet mentett kpt tlthetjk be, ami tartalmazza a u e e o u az osszes objektumot. Utas asa: load(). t A munkaterlet-ben trolt objektumokat ki u a rja egy .RData kiterjeszts eu a llomnyba. Utas asa: save.image(). a t Egy korbbi munkaterlet utas asait tlti be. Utas asa a loadhistory(). a u t o t A munkaterlet utas asait menti el egy fjlba, aminek az ajnlott kiterjeszu t a a tse: .Rhistory. Utas asa: savehistory(). e t A munkaknytvr meghatrozst vgezhetjk el seg egvel (33. bra). o a a aa e u ts e a Ennek megfelel utas as a setwd(). o t A konzol tartalmt nyomtatja ki. a A konzol tartalmt egy ASCII fjlba menti ki. a a Kilp az RGui-bl. e o

A konzolban kijellt szveget a vglapra msolja. (CTRL+C) o o a o a A vglap tartalmt a konzolba illeszti. (CTRL+V) a o a A konzol vglapra helyezett rszeibl csak az utas asokat illeszti be a a o e o t prompthoz. A kijellt szveget egy lpsben a vglapra msolja s onnan beilleszti a o o e e a o a e konzol promtjba. a A konzol teljes tartalmt kijelli. (a CTRL+A nem mkdik) a o u o A konzol tartalmt trli. a o A munkaterlet-ben trolt dataframe vagy mtrix nevt megadva (34. bra) u a a e a megnyithatjuk azt az adatszerkeszt urlapon (35. bra). Utas asa: fix(). o a t Az RGui megjelenst megvltoztathatjuk, az erre szolgl urlapot (31. ee a ao a bra) h vja meg e menpont. u

Misc Stop current computation Buered output List objects Remove all objects List search path Az ppen fut folyamatot lell e o a tja.

A munkaterlet-ben trolt objektumok nevt jelen meg a konzolban. Utau a e ti s asa: ls(). t A munkaterlet-ben trolt sszes objektumot trli. Utas asa: u a o o t rm(list=ls(all=TRUE)). Megjelen a keressi utakat a konzolban. Ezek a mr betlttt knyvtti e a o o o a rakat reprezentljk, vagyis azokat a helyeket, ahol a kiadott utas asnak a a t megfelel fggvnyt kereshet az R-rtelmez. Utas asa: search(). o u e e o t

Packages Load package. . . A megjelen urlap seg egvel (37. bra) a telep o ts e a tett csomagok (knyvtrak) kzl kivlaszthatunk egyet, s o a o u a e be is tlthetjk. o u A megjelen urlap (38. bra) seg egvel bell o a ts e a thatunk azt a CRAN tkroldalt, amit csomagok telep eshez u o t e vagy friss eshez k anunk hasznlni. t e v a

Set CRAN mirror. . .

92 Select repositories. . .

GRAFIKUS FELULETEK A megjelen urlap (39. bra) seg egvel bell o a ts e a thatjuk a munkafolyamat sorn hasznlni k ant internetes tra a v a helyeket. Ha korbban nem ll a a tottunk be a 38. brn lthat ura a a o lapon CRAN tkroldalt, akkor elszr ezt kell megu o o o tennnk a megjelen felleten. A megjelen urlap (40. u o u o a bra) seg egvel az aktulis trhelyen elrhet csomats e a a e o gokat telep thetjk. u A mr telep a tett csomagok friss thetk az aktulis tro a a helyrl. Utas asa: update.packages(). o t Helyi .zip fjlbl telep csomagot. a o t

Install package(s). . .

Update packages. . . Install package(s) from local zip les. . . Windows Cascade Tile Arrange Icons 1 R Console Help Console FAQ on R FAQ on R for Windows Manuals (in PDF)

Az ablakokat lpcszetesen rendezi. e o Az ablakokat mozaikszeren rendezi. u A minimializlt ablakokat egyms mell rendezi. a a e

A konzolon alkalmazhat billenty-kombincik le ast mutatja meg. o u a o r a Az R-rel kapcsolatos gyakori krdsek s vlaszok. e e e a A Windows-on fut R-el kapcsolatos gyakori krdsek s vlaszok. o e e e a Kziknyvek az R hasznlatval kapcsolatban. e o a a An Introduction on R R Reference Manual R Data Import/Export R Language Denition Writing R Extensions R Installation and Administration Fggvny keresse a teljes nv alapjn (42. bra). Utas asa: help(). u e e e a a t HTML sg megjelen ese. Utas asa: help.start(). u o t t Szveg keresse a c o e mekben, nevekben, le asokban (43. bra). Utas asa: r a t help.search(). A 44. brn lthat urlap beviteli mezjbe gpelt szveget kereshetjk a a a a o oe e o u levelezsi listk s egyb dokumentcik szvegeiben. e a e e a o o Apropos keresse a fggvnyek nevben (41. bra). Utas asa: apropos(). e u e e a t Az R-projekt honlapjt nyitja meg. (http://www.r-project.org/) a A CRAN honlapjt nyitja meg. (http://cran.r-project.org/) a Nvjegy. e

R functions (text). . . Html help Search help. . . search.r-project.org. . . Apropos. . . R Project home page CRAN home page About Popup menu Copy Paste Paste commands only Copy and Paste Clear window

CTRL+C CTRL+V

CTRL+X

A konzolban kijellt szveget a vglapra msolja. o o a o a A vglap tartalmt a konzolba illeszti. a o a A konzol vglapra helyezett rszeibl csak az utas asokat a o e o t illeszti be a prompthoz. A kijellt szveget egy lpsben a vglapra msolja s ono o e e a o a e nan beilleszti a konzol promtjba. a Trli a konzol tartalmt. o a

CTRL+L

WINDOWS RGUI Select all Buered output Stay on top A konzol teljes tartalmt tartalmt kijelli. a a o CTRL+W

93

R editor
Az R-editor eszkztra o a

Open script Save script Run line or selection Return focus to Console Print menurendszer File New script Open script. . . Save Save as. . . Print. . . Close script Exit Edit Undo Cut Copy Paste Delete Select all Clear console Run line or selection Run all Find. . . Replace. . . GUI preferences. . . Packages CTRL+Z CTRL+X CTRL+C CTRL+V CTRL+A CTRL+L CTRL+R Visszavons. a Kivgja s a vglapra helyezi a kijellt szveget. a e a o o o A vglapra helyezi a kijellt szveget. a o o o A vglapra helyezett tartalmat beilleszti az R editorba. a o Trli a kijellt szveget. o o o Az R-editor teljes tartalmt kijelli. a o Az R-editor teljes tartalmt trli. a o Ha nincs kijellve kdrsz, akkor az aktulis sort, ha ki van jellve o o e a o szveg, akkor azt illeszti a konzolba, ami rtelmezi azt. o e Az R editor teljes tartalmt bemsolja a konzolba, ami azt lefuta a tatja. Szveg keresse az R-editorban. o e Szveg cserje az R-editorban. o e Az RGui megjelenst megvltoztathatjuk, az erre szolgl urlaee a ao pot (31. bra) h a vja meg a menpont. u CTRL+N CTRL+O CTRL+S A kdok szerkesztsre szolgl R editort nyitja meg, uj kd szero ee ao o kesztsre. ee Az R-editorban megnyit egy korbban szerkesztett kd-fjlt. a o a Az R-editor tartalmt menti ASCII fjlknt. a a e Az R-editor tartalmt menti msknt. a a e Az R-editor tartalmt kinyomtatja. a Bezrja az R-editort. a Kilp az RGui-bl. e o

CTRL+F CTRL+H

94 Load package. . .

GRAFIKUS FELULETEK A megjelen urlap seg egvel (37. bra) a telep o ts e a tett csomagok (knyvtrak) kzl kivlaszthatunk egyet s o a o u a e be is tlthetjk. o u A megjelen urlap (38. bra) seg egvel bell o a ts e a thatunk egy CRAN-tkroldalt, amit csomagok telep esu o t e hez vagy friss eshez k anunk hasznlni. t e v a A megjelen urlap (39. bra) seg egvel bell o a ts e a thatjuk a munkafolyamat sorn hasznlni k ant internetes tra a v a helyeket. Ha korbban nem ll a a tottunk be a 38. brn lthat ura a a o lapon CRAN-tkroldalt, akkor elszr ezt kell megtenu o o o nnk a megjelen felleten. A megjelen urlap (40. bra) u o u o a seg egvel az aktulis trhelyen elrhet csomagokat ts e a a e o telep thetnk. u A mr telep a tett csomagok friss thetk az aktulis tro a a helyrl. Utas asa az update.packages(). o t Helyi .zip fjlbl telep csomagot. a o t

Set CRAN mirror. . .

Select repositories. . .

Install package(s). . .

Update packages. . . Install package(s) from local zip les. . . Windows Cascade Tile Arrange Icons 1 R Console 2 Untitled - R Editor Help Console FAQ on R FAQ on R for Windows Manuals (in PDF)

Az ablakokat lpcszetesen rendezi. e o Az ablakokat mozaikszeren rendezi. u A minimializlt ablakokat egyms mell rendezi. a a e

A konzolon alkalmazhat billenty-kombincik le ast mutatja meg. o u a o r a Az R-rel kapcsolatos gyakori krdsek s vlaszok. e e e a A Windows-on fut R-el kapcsolatos gyakori krdsek s vlaszok. o e e e a Kziknyvek az R hasznlatval kapcsolatban. e o a a An Introduction on R R Reference Manual R Data Import/Export R Language Denition Writing R Extensions R Installation and Administration Fggvny keresse a teljes nv alapjn (42. bra). Utas asa: help(). u e e e a a t HTML sg megjelen ese. Utas asa: help.start(). u o t t Szveg keresse a c o e mekben, nevekben, le asokban (43. bra). Utas asa: r a t help.search(). A 44. brn lthat urlap beviteli mezjbe gpelt szveget kereshetjk a a a a o oe e o u levelezsi listk s egyb dokumentcik szvegeiben. e a e e a o o Apropos keresse a fggvnyek nevben (41. bra). Utas asa: apropos(). e u e e a t Az R-projekt honlapjt nyitja meg. (http://www.r-project.org/) a A CRAN honlapjt nyitja meg. (http://cran.r-project.org/) a Nvjegy. e

R functions (text). . . Html help Search help. . . search.r-project.org. . . Apropos. . . R Project home page CRAN home page About

WINDOWS RGUI Popup menu Run line or selection Ctrl+R Ha nincs kijellve kdrsz, akkor az aktulis sort, ha ki van o o e a jellve szveg, akkor azt illeszti a konzolba, ami rtelmezi o o e azt. Visszavons. a Kivgja s a vglapra helyezi a kijellt szveget. a e a o o o A vglapra helyezi a kijellt szveget. a o o o A vglapra helyezett tartalmat beilleszti az R-editorba a o Trli a kijellt szveget. o o o Az R-editor teljes tartalmt kijelli. a o

95

Undo Cut Copy Paste Delete Select all

Ctrl+Z Ctrl+X Ctrl+C Ctrl+V Ctrl+A

Grakai ablak
A grakai ablak eszkztra o a

Copy to the clipboard as a metale Print Return focus to console menurendszer File Save as Metale. . . Ments metafjlknt. e a e Postscript. . . Ments postscriptknt. e e PDF. . . Ments PDF-knt. e e PNG. . . Ments PNG-knt. e e BMP. . . Ments BMP-knt. e e Jpeg 50% quality. . . Ments 50%-os minsg JPEG-knt. e oe u e 75% quality. . . Ments 75%-os minsg JPEG-knt. e oe u e 100% quality. . . Ments 100%-os minsg JPEG-knt. e oe u e Copy to the clipboard as a Bitmap CTRL+C Msols bitmapknt a vglapra. a a e a o as a Metale CTRL+W Msols metafjlknt a vglapra. a a a e a o Print. . . CTRL+P A graka nyomtatsa. a close Device A grakai ablak bezrsa. aa History Recording Add INS Replace Previous PgUp Next PgDown Save to variable. . . Get from variable. . . Ha a -jellel megjelltk, akkor az R-krnyezet automatikusan rgz a o u o o ti grakus ablak tartalmt a trtnet-be. a o e A grakai trtnet-hez hozzadjuk a grakt. o e a a A grakai trtnet-ben az elz kpet tlti be a grakai ablakba. o e o o e o A grakai trtnet-ben a kvetkez kpet tlti be a grakai ablakba. o e o o e o

96 Clear history Resize R mode Fit to window Fixed size Windows Cascade Tile Arrange Icons 1 R Console 2 2 R Graphics: Device 2 Az ablakokat lpcszetesen rendezi. e o Az ablakokat mozaikszeren rendezi. u A minimializlt ablakokat egyms mell rendezi. a a e

GRAFIKUS FELULETEK

A grakai ablak trtnetnek trlse. o e e o e

(ACTIVE)

Popup menu Arrange Icons Copy as metale Copy as bitmap Save as metale. . . Save as postscript. . . Stay on top Print. . . A minimializlt ablakokat egyms mell rendezi. a a e Msols metafjlknt a vglapra. a a a e a o Msols bitmapknt a vglapra. a a e a o Ments metafjlknt. e a e Ments postscriptknt. e e

A graka nyomtatsa. a

Adatszerkeszt o
menurendszer File Close Windows Close Cascade Tile Arrange Icons 1 R Console 2 Data Editor Edit Copy Paste Delete Cell widths. . . Help Data editor Az adatszerkeszt hasznlatval kapcsolatos informcikat jelen meg. o a a a o t Ctrl+C Ctrl+V DEL A kijellt cellk tartalmt a vglapra helyezi. o a a a o A vglapon lv adatokat, a kijellt cellkba illeszti. a o e o o a A kijellt cella tartalmt trli. o a o A cellk szlessgt ll a e e e a thatjuk be (36. bra). a Az adatszerkeszt bezrsa. o aa Az ablakokat lpcszetesen rendezi. e o Az ablakokat mozaikszeren rendezi. u A minimializlt ablakokat egyms mell rendezi. a a e Az adatszerkeszt bezrsa. o aa

R COMMANDER

97

31. bra. Windows-os RGui bell asait mdos o fellet a a t o t u

32. bra. A Windows RGui-bl val kilpskor jelenik meg a munkakrnyezet mentsre krdez prbeszdablak a o o e e o ee e o a e Popup menu Help Copy selected cell Pate to selected cell Autosize column Stay on top Close Az adatszerkeszt hasznlatval kapcsolatos informcikat jelen meg. o a a a o t A kijellt cella tartalmt a vglapra msolja. o a a o a A vglap tartalmt a kijellt cellba msolja. a o a o a a Az oszlopok szlessgnek automatikus mretezse. e e e e e

Adatszerkeszt bezrsa. o aa

R Commander
Azok rszre, akik a grakus fellet statisztikai szoftverekhez szoktak, tbben is fejlesztenek GUI-kat (Grape e u u o hical User Interface). Az R commander ezek kzl egy ingyenes megolds, ami rszben hasonl az S-Plus felhaszo u a e t nli fellethez. Tulajdonkppen a Rcmdr is egy csomag, ami letlthet s/vagy telep ao u e e o oe thet a CRAN-rl. Ahhoz, o o hogy hibtlanul fusson a Rcmdr, telep unk kell mg ms csaomagokat is, ezek a kvetkezk: Hmisc, quadprog, a ten e a o o

98

GRAFIKUS FELULETEK

33. bra. A munkaknyvtr bell ast seg o urlap a o a a t a t

34. bra. Adatszerkesztbe beolvasand adatllomny megadst seg o urlap a o o a a aa t

35. bra. Adatszerkeszt urlap a o

36. bra. A cellk szlessgnek bell ast seg o urlap a a e e e a t a t

SCIVIEWS-R GUI

99

37. bra. Csomagbetltst seg o urlap a o e t oz, leaps, chron, fBasis, its, tseries, quantreg, DAAG, abind, car, effects, lmtest, multcomp, mvtnorm, relimp, rgl, sandwich, strucchange, zoo. A library(Rcmdr) paranccsal tlhetjk be az R commandert s a o u e hozz szksges csomagokat. a u e A 45. brn lv felleten lthat kt szveges terlet. A fels kdszerkeszt terleten bell tudjuk megszera a e o u a o e o u o o o u u keszteni a kdunkat, amibl a kijellt kdrszeket a Submit gomb megnyomsval kldjk el az rtelmeznek. o o o o e aa u u e o Sajnos hinyzik belle az R-nyelv szintaxis-kiemelse. A lefuttatott kdok s azok eredmnyei az als eredmnya o e o e e o e szerkesztben jelennek meg. A GUI fels szeglyn egy menrendszer tallhat, amibl tbb statisztikai, grakai o o e e u a o o o s kiseg o eljrshoz rhetnk el egyszer mdon prbeszdablakokat (46. bra). e t a a e u u o a e a

SciViews-R GUI
A SciViews-R olyan alkalmazsgyjtemny, amely grakus felhasznli felletet (GUI) biztos az R-krnyezethez. a u e ao u t o A gyjtemnyben a SciViews R Console, a SciViews R Report s a Tinn-R alkalmazsok tallhatk. Jelenleg u e e a a o csak Windowson hasznlhat. a o

Telep es t
Az ingyenesen letlthet35 telep ollomny futtatsa sorn egy varzsl vezeti a felhasznlt a folyamaton o o ta a a a a o ao keresztl. Az aktulisan legfrisebb verzi telep esekor gyelemmel kell lenni arra, hogy milyen R-verzikkal tud u a o t o egyttmkdni a SciViews-R. Az itt bemutatott pldkban a 0.8-8 verzit hasznltam, ami az R-krnyezet u u o e a o a o 2.1.X verziival tud egyttmkdni. Tovbb az R-krnyezettel val egyttmkdshez az R-telep esnek a o u u o a a o o u u o e t C:\Program Files\R\rw2011 knyvtrban kell lennie. A SciViews-R alaprtelmezett telep esi knyvtra peo a e t o a dig a C:\Program Files\SciViews, amit jobb hagyni. A SciViews-R telep esi folyamat befejezse utn a gy t e a telep esi knyvtrban, a bin alknyvtron bell tallhat a RConsole.exe, a RReport.exe s a Tinn-R.exe t o a o a u a o e alkalmazs. Ha elind a tjuk a RConsole.exe futtathat llomnyt, akkor megjelenik egy SDI-st u RGui s o a a lus e a 47. brn lthat prbeszdablak. Arra krdez r, hogy telep a a a o a e e a teni k anjuk-e a SciViews csomagot. Ennek v telep ese nlkl nem fog mkdni a SciViews-R. Ha az Igen gombra kattintunk, akkor megjelenik a 48. brn t e u u o a a lthat lista, amibl kivlaszthatjuk azt a forrst, ahonnan a telep a o o a a tend csomagot be szeretnnk szerezni. Az o e
35 http://www.sciviews.org/SciViews-R/

100

GRAFIKUS FELULETEK

38. bra. CRAN tkroldal bell ast seg o urlap a u o a t a t

SCIVIEWS-R GUI

101

39. bra. Select repositories. . . a

40. bra. A CRAN-rl val csomagtelep est seg o urlap a o o t t

102

GRAFIKUS FELULETEK

41. bra. Apropos keresst seg o urlap a e t

42. bra. Fggvny keresst seg o urlap a u e ee t

43. bra. Szveg keresst seg o urlap a o ee t

44. bra. search.r-project.org. . . a

SCIVIEWS-R GUI

103

45. bra. Az R Commander indul kpernyje a o e o OK gomb lenyomsa utn az adott forrsbl telep a csomagot a rendszer. Termszetesen a csomagtelep est a a a o ti e t az R-krnyezetbl is elvgezhetjk, a szoksos mdokon. o o e u a o A megfelel mkdshez szksges, hogy telep uk a R2HTML-csomagot is, ha az aktulis R-krnyezetnkben az o u o e u e ts a o u ehhez a csomaghoz szksges egyb knyvtrak (acepack, chron) nincsenek mg meg, akkor azokat is telep u e e o a e tennk kell. u Tovbbi telep esre ajnlott csomagok: Rcmdr, tcltk2, wxPython, RSPython, Hmisc, valamint ezek mkdshez a t a u o ee szksges tovbbi csomagok. u e a

SciViews R Console
A SciViews R Console elind asa utn rvid idre elszr a 49. brn lthat konzol jelenik meg, ami a t a o o o o a a a o Windows RGui SDI-st u konzolja. Amint ezen a konzolon lthat, az R betlti az sszes szksges knyvtrat, lus a o o o u e o a eltnik az elbbi fellet s megjelenik az SciViews R Console (50. bra). A SciViews R Console elind u o u e a that o ugy is, ha az Windows RGui-t SDI-mdra ll o a tjuk s egyszeren a terminlban tltjk be az svGUI csomagot e u a o u (library(svGUI)). Ha ezt MDI mdban prbljuk meg, akkor nem jelenik meg eredmnyknt a SciViews R o o a e e Console. Az 50. brn lthat SciViews R konzolon elrhet elemek: a a a o e o Menrendszer, mely nagyrszt megegyezik a Windows RGui konzol-menjvel. u e ue Eszkztr, ami szintn megegyezik a Windows RGui konzol-eszkztrval. o a e o aa Terminl, ami nem klnbzik az egyb krnyezetekben megszokottaktl. Popup-menje megegyezik a a uo o e o o u Windows RGui-nl ltottal. a a Kdszerkeszt. Ez az elem igazn nagy seg eget jelent rvidebb szkriptek szerkesztsben. Egyetlen o o a ts o ee htrnya, hogy egyszerre csak egy szkriptllomnyt tudunk kezelni vele. a a a a

104

GRAFIKUS FELULETEK

46. bra. Szveges llomnyok beolvasst seg o ablak a o a a aa t

47. bra. SciViews-csomag telep ese I. a t Dokknak nevezzk a konzol jobb fels rszn lthat terletet, amiben hasznos segdletek rhetk el, ezzel u o e e a o u e e o megknny o tve a munkt. a Kdszerkeszt o o A kdszerkeszt ismeri az R-nyelv szintaxist, illetve az egyes telep o o a tett fggvnyek argumentumlistjt. Ebu e aa bl kvetkezik, hogy amikor be o o rjuk egy fggvny nevt, s nyitunk egy zrjelet, akkor a fggvny neve mellett u e e e ao u e megjelenik a fggvny s a hozz tartoz argumentumnevek. Alaprtelmezsben a kdszerkeszt a SciViews u e e a o e e o o R konzolba van gyazva, viszont ha jobban szeretnk kln ablakokban dolgozni, akkor abbl ki is emelhet. a u uo o o Ennek elnye, hogy az egyes ablakokban nagyobb felletet lthatunk egyszerre, htrnya, hogy az egyes ablakok o u a a a fedhetik egymst. Az eszkztrbl elrhet mveletek kzl a kvetkezk mkdnek a jelenlegi verziban (0.8.8): a o a o e o u o u o o u o o New R Script CTRL+SHIFT+N Open R Script. . . CTRL+SHIFT+O Save Script. . . CTRL+SHIFT+S Execute (F5) Uj szkriptet hoz ltre, egyben, ha k anjuk, az aktulist el is e v a menti. Megnyit egy mr korbban ltrehozott szkriptet. a a e Menti az aktulis szkriptet. a A kijellt kdrszt vagy az akt sort elkldi az Ro o e v u parancsrtelmezre, aminek kvetkeztben a terminlba odik e o o e a r a lefuttatott kd s annak eredmnye(i). o e e

A kdszerkeszt popup menje: o o u Cut Copy Paste Find. . . Replace. . . Show Whitespace Make Uppercase

A kijellt szvegrszt kivgja s a vglapra helyezi. o o e a e a o A kijellt szvegrszt a vglapra helyezi. o o e a o A vglaprl a kurzor helytl kezdden beilleszti. a o o eo o o A szkripten bell lehet keresni karakter(sor)t. u Adott karakter(sor)t felcserlhetnk egy msikkal. e u a

Nagybetss alak a kijellt szakaszban lv betket. u e tja o e o u

SCIVIEWS-R GUI

105

48. bra. SciViews-csomag telep ese II. a t

49. bra. R konzol a

Make Lowercase Undo Redo Properties. . .

Kisbetss alak a kijellt szakaszban lv betket. u e tja o e o u Mvelet visszavonsa. u a Visszavons visszavonsa. a a A szkriptszerkeszt tulajdonsgait ll o a a thatjuk be a megjelen urlap seg eo ts gvel (51. bra). e a

Dokk A dokk(ok)ban sokfle gyors segdletet helyeztek el. Egyzerre t dokkot nyithatunk meg, s mindegyikben e e o e klnbz eszkztrakat tehetnk kzvetlenl elrhetv. A dokkok (a szkripszerkeszthz hasonlan) hasznluo o o o a u o u e o e o o o a hatk a konzolba gyazva vagy kln ablakokban. Egyes szkztrakbl kivlaszthatunk elemeket (pl.: fggvo a uo o a o a u e nyek), amelyek be odnak vagy a szkriptszerkesztbe vagy a terminlba. Hogy melyik rszbe illesztdnek be az r o a e o adott objektumok, attl fgg, hogy a kurzor hol ll, a szkriptszerkesztn vagy a terminlon. Az egyes eszkzto u a o a o a rakat a dokk fels szeglyn tallhat listbl vlaszthatjuk ki, nv szerint: o e e a o a o a e

106

GRAFIKUS FELULETEK

50. abra. SciViews R konzol

51. bra. SciViews szkriptszerkeszt bell o fellet a o a t u

SCIVIEWS-R GUI Libraries(about) Default R Commander menu

107 Nvjegy (50. bra). e a SciViews dokumentcik rhetk el a megny o felletrl. a o e o l u o Az R-kommander menjbl elrhet grakus felleteket h ue o e o u vhatunk meg ezen menpontok seg egvel, anlkl, hogy az R-kommander konzolt is u ts e e u a megnyitnnk. a Gyakrabban hasznlt R-fggvnyek tma szerint csoportos a u e e tott gyjtemu e nye jelenik meg, ha ezt a listaelemet vlasztjuk ki. Ha valamely fggvny a u e nevre kattintunk, akkor az akt egysgbe beilleszti a fggvny nevt, ile v e u e e letve egyes fggvnyeknl argumentumokat is. u e e Egy sz albl grakusan vlaszthatunk sz nsk a o a neket, ezek sz odknt nk e rodnak be az akt terletre. v u Az R nyelvvel s krnyezettel kapcsolatos keressi fellet, valamint hasznos e o e u internetes kapcsolatok, illetve pdf-dokumentumok gyjtemnye. u e A munkafolyamatban ltrejtt, illetve a betlttt csomagok rszt kpez e o o o e e e o objektumok listjbl vlaszhatunk. aa o a A munkafolyamatban ltrehozott fjlok (pl.: jegyzetek) kztt lehet tallzni. e a o o o Fjlkezelt nyit meg. a o Kzs jegyzetfzetet nyit meg, aminek a tartalma egy RTF-fjlba lesz ki o o u a rva. A felhasznl ltal jegyzet hozhat ltre, ami RTF-llomnyba odik ki. aoa o e a a r A munkafolyamatban sorn jegyzet hozhat ltre, ami RTF-llomnyba oa o e a a r dik ki.

R reference card

Colors Web Links Documentation Objects explorer Session explorer Files explorer Scratchpad (common) User scratchpad Session scratchpad

SciViews R grakai ablak


Ha a SciViews R-ben brt generlunk, akkor az a megszokott grakai ablaktl nmileg eltr ablakban a a a o e eo jelenik meg (52. bra). A legfbb klnbsg az, hogy a ksbbiekben lthat SciViews R Report-nak tadhatjuk a a o uo e eo a o a ltrehozott brt. Erre szolgl az Edit menn belli Report (png) s Report multiple formats menpontok, illetve e a a a u u e u az ezeknek megfelel eszkztrban lthat utols kt ikon is. Tovbbi lnyeges klnbsg, hogy a grakai ablakbl o o a a o o e a e uo e o nyithatunk ujabb grakai ablakot, illetve az egyes grakai ablakok aktivitst az ablakokbl irny aa o a thatjuk. Uj grakus ablakot a File men New Graph CTRL+N opcijval nyithatunk. Az adott grakai ablakot pedig az u oa Edit men Activate CTRL+A menpontjval aktivizlhatjuk, aminek termszetesen az a kvetkezmnye, hogy u u a a e o e az addig akt grakai ablak inakt lesz. Ugyanezt rthetjk el az eszkztr negyedik s tdik gombjnak v v e u o a e oo a lenyomsval is. aa

52. bra. SciViews R grakai ablak a

108

GRAFIKUS FELULETEK

SciViews R Report
A SciViews R Report egy HTML-szerkeszt, amibe kzvetlenl tudunk beilleszteni a SciViews R grakai o o u ablakbl, illetve a SciViews R-konzolbl kpeket, tblzatokat (53. bra). Az R-krnyezetbl szrmaz brkhoz, o o e a a a o o a oa a szmszer eredmnyekhez magyarzatokat fzhetnk, teljes jelentsek ksz a u e a u u gy e e thetk. o

53. bra. SciViews R jelentsszerkeszt a e o

SciViews R Bundle fuggvnyek e


Az albbi fggvnyek a SciViews R Bundle rszei. Parancssorbl h a u e e o vhatjuk meg ket. o export Seg egvel egyes R-objektumokat tudunk exportlni, klnbz kimeneti formkban. ts e a uo o o a export(x, type = "raw", file, append = FALSE, objname = deparse(substitute(x)), ...) Az x az exportland objektum, type argumentumnak pedig megadhatjuk a raw, az ascii, a html, a latex a o vagy a sascode valamelyikt. e

SCIVIEWS-R GUI

109

54. bra. view(iris) a copy A copy tulajdonkppen az export fggvnynek specilis esete, amikor is a file argumentumnak "clipboard" e u e a rtket adunk meg. e e copy(x, type = "raw", objname = deparse(substitute(x)), ...) Az argumentumok az export-nl lthatan adhatk meg. a a o o view A view fggvny lehetsget teremt arra, hogy az adott R-objektum(ok)-bl knnyen, gyorsan ksz u e oe o o e thessnk u elzetes feltr jelleg brkat, sszegz tblzatokat. o ao ua a o o a a view(x, type = "summary", objname = deparse(substitute(x)), ...) Az x az adott R-objektum, a type pedig lehet "summary", "print", "twovars", "missing", "methods" vagy "sascode". Az, hogy milyen t pusoknak megfelel elemzsek jelennek meg a view -ban, a forrsknt szolgl o e a e ao R-objektumtl fgg. A view(iris) utas as eredmnyt mutatja az 54. bra. Az R view ablak megjelensnek o u t e e a ee st at megvltoztathatjuk (<default>, Pastel, R2HTML, Report, SciViews), tartalmt elmenthetjk, illetve lus a a u a tadhatjuk a SciViews R Report-nak. clippaste A copy utas assal a vglapra helyezett objektumot egy msik objektumba illeszti be. t a o a clippaste(name = "newobj", type = "ascii", objclass = "data.frame", pos = 1, ...)

110 report

GRAFIKUS FELULETEK

A report fggvnyt jelentsgenerlsra hasznlhatjuk. Pldul a report(iris) generl egy tblzatot az u e e aa a e a a a a iris adatokbl, amit a SciViews R Report-ban jelen meg. o t

ODBC-kapcsolat ltrehozsa e a
A kvetkezkben (kezd felhasznlk rszre) nhny ODBC-kapcsolat ltrehozst mutatom be Microsoft o o o ao e e e a e aa Windows krnyezetben. A mveletek egy rsze a klnbz adatforrsokhoz megegyezik: o u e uo o o a A Start menbl kivlasztjuk a Bell asok menn belli Vezrlpult alment. u o a a t u u e o u A megjelen fjlkezelbl kivlasztjuk a Felgyeleti eszkzk parancsikont o a o o a u o o A megjelen ind oikonok kzl kivlasztjuk az ODBC adatforrsok elnevezst o t o u a a eu Az 55. brn lthat prbeszd-ablakon a Felhasznli DSN flecskvel elltott felleten a Hozzads. . . a a a o a e ao u e a u a a gombra kattintva megjelenik az Uj adatforrs ltrehozsa elnevezs urlap, amelyen az egyes meghajtknak a e a e u o megfelelen folytatjuk a kapcsolat felp est. o e t e Az adott adatforrsnak megfelel illesztporogramot kivlasztjuk az urlap listjbl (56. bra) a o o a aa o a

Microsoft Excel
Az Excel esetben az adott munkafzethez az albbi illesztprogramok kzl vlaszthatunk : e u a o o u a Driver do Microsoft Excel (*.xls) Microsoft Excel Driver (*.xls) Microsoft Excel-Treiber (*.xls) A fentiek kzl valamelyiket kivlasztva s a Befejezs gombra kattintva megjelenik az 57. brn lthat urlap. o u a e e a a a o Ezen els lpsben nevezzk el a ltrehozand kapcsolatot (a pldban: ODBCexcel). Ezutn tancsos kivo e e u e o e a a a a lasztani a Verzi legrdl menbl az adott Excel munkafzet verzijt. Kvetkez lpsknt a Munkafzet o o oo u o u oa o o e e e u vlasztsa. . . gomb megnyomsa kvetkeztben megjelen fjlkezel seg egvel kivlasztjuk azt az Excel muna a a o e o a o ts e a kafzetet, amelyhez a kapcsolatot p uk. Vgl nincs ms dolgunk, mint az OK gombra kattintani, az 55. u e tj e u a gy a a a brn lthat Felhasznli adatforrs listjban megjelenik az uj ODBC-kapcsolat neve. o ao a aa

Microsoft Access
Az Access esetben az adott munkafzethez az albbi illesztporogramok kzl vlaszthatunk : e u a o o u a Driver do Microsoft Access (*.mdb) Microsoft Access Driver (*.mdb) Microsoft Access-Treiber (*.mdb) Az 58. brn lthat urlapon az Excelhez hasonlan el kell neveznnk a kapcsolatot (a pldban: ODBCaccess). a a a o o u e a A Kivlaszts. . . gomb megnyomsa utn megjelen fjlkezelvel megkeressk a Microsoft Access (.mdb) adata a a a o a o u bzist, amihez kapcsolatot szeretnnk kip a e e teni. Az OK gombra kattintva a az 55. brn lthat Felhasznli a a a o ao adatforrs listjban mris megjelenik az uj ODBC-kapcsolat neve. a aa a 111

112

ODBC-KAPCSOLAT LETREHOZASA

55. bra. ODBC meghajt kivlasztsa a o a a

56. bra. ODBC illesztprogram kivlasztsa a o a a

MICROSOFT ACCESS

113

57. bra. Az illeszt bell asa Excel munkafzethez a o a t u

58. bra. Az illeszt bell asa Access adatbzishoz a o a t a

114

ODBC-KAPCSOLAT LETREHOZASA

59. bra. Az illeszt bell asa MySQL adatbzishoz I. a o a t a

60. bra. Az illeszt bell asa MySQL adatbzishoz II. a o a t a

MySQL
Ahhoz, hogy ODBC-kapcsolatot tudjunk ltrehozni egy MySQL-adatbzishoz, eltte telep e a o teni kell a MySQL Connector/ODBC 36 meghajtt. Az 56. bra illesztprogram listjbl kivlasztjuk a MySQL ODBC 3.5137 o a o aa o a Driver -t s a Befejezs gombra kattintva az 59. brn lthat urlap jelenik meg. Az urlapon legalbb kt mezt e e a a a o a e o ki kell tltennk: a Data Source Name lesz az adatforrs neve (ODBCMySQL), a Database Name pedig az az o u a adatbzis (minta), amihez az interfszt akarjuk kip a e e teni. Tovbbi mezk is kitltendk, ha szksges (a User a o o o u e s a Password ), de ez ltalban nem kell. A kapcsolat bell asainak ellenrzsre rdemes a Test Data Source e a a a t o ee e gombra kattintanunk. Ha minden rendben van, akkor a 60. brhoz hasonl uzenetet kapunk. A korbbi kt a a o a e kapcsolatt pushoz hasonlan, az 59. bra OK gombjra kattintva az 55. brn lthat Felhasznli adatforrs o a a a a a o ao a listjban megjelenik az uj ODBC kapcsolat neve. aa

PostgreSQL
A PostgreSQL szerver telep est nem kell kiegsz unk kln ODBC-meghajt installlsval. Az 56. t e e ten uo o aa a a bra ltal jelzett urlaprl kivlasztjuk a PostgreSQL listaelemet. A Befejezs gombra kattintva a 61. brn a o a e a a lthat urlap jelenik meg. Ezen a felleten mindenkppen ki kell tlteni a kvetkez mezket: Data Source, a o u e o o o o Database, Server, User Name s Password. Az els elem lesz a Felhasznli adatforrs listjba bejegyzett e o ao a aa
36 http://www.mysql.com/products/connector/odbc/ 37 A

verziszm termszetsen a telep o a e tett verzitl fgg. o o u

POSTGRESQL

115

61. bra. Az illeszt bell asa PostgreSQL adatbzishoz a o a t a nv (ODBCpgSQL). A msodik pedig az adatbzis neve (minta), amivel a kapcsolatot szeretnnk ltrehozni. A e a a e e harmadik elem a szerver neve, ami ha nem hlzati, akkor valsz uleg localhost lesz. Az adott adatbzishoz ao o n a jogosultsggal rendelkez felhasznlnevet is meg kell adni, illetve annak jelszavt is. Ha mindent jl adtunk a o ao a o meg, akkor a Save gombra kattintva kattintva az 55. brn lthat Felhasznli adatforrs listjban megjelenik a a a o ao a aa az uj ODBC kapcsolat neve.

Szoftverintegrci a o
Nhny egyszer pldn keresztl mutatom be annak lehetsgeit, hogy egyb szoftverekkel, programozsi e a u e a u oe e a nyelvekkel hogyan lehet sszekapcsolni az R-krnyezet kpessgeit. o o e e

R (D)COM Server
Microsoft Windows opercis rendszerre elrhet egy COM szerver (R (D)COM Server 38 ), ami lehetv a o e o o e teszi, hogy kliens-szoftverek kapcsolatot teremthessenek az R-krnyezettel. o

Microsoft Excel
Ha az R (D)COM Server telep ese sorn az Excel Add-In jellngyzett bejelljk, akkor a Microsoft t a oo e e o u Excel menrendszerben az Ablak s a Sg menpontok kztt megjelenik egy RExcel menpont. Az RExcel u e e u o u o o u

62. bra. R (D)COM Server telep o kperny a t e o almenpontjai kztt tallhat az R Start opci, amivel az ExcelR kapcsolatot megnyitjuk. Ennek kvetkezu o o a o o o tben az Excelen bell hasznlhatunk R-fggvnyeket, -objektumokat. Hrom klnbz mdon dolgozhatunk e u a u e a uo o o o az R-rel az Excelen bell: jegyzetfzet-md, makr-md s munkafzet-md. u u o o o e u o A jegyzetfzet-mdban az R-kdokat kzvetlenl hasznlhatjuk az Excel munkafzeten bell, illetve adatobu o o o u a u u jektumokat tudunk a kt krnyezet kztt tadni. Az RExcel menbl elrhet parancsokat hasznlhatjuk: R e o o o a u o e o a Start, Close R, Run Code, Get, Put, Copy Code, Debug R, Options, RExcel Help, Demo worksheets, R Help.
38 http://cran.r-project.org/contrib/extra/dcom

116

R (D)COM SERVER

117

A makr-mdban VBA-nyelven o o rhatunk makrkat, a kvetkez eljrsok s fggvnyek felhasznlsval: o o o aa e u e aa a RInterface.StartRServer(), RInterface.StopRServer(), RInterface.RRun(commandstring), RInterface.PutArray(varname,range), RInterface.GetArray(varname,range). A munkafzet-mdban kzvetlenl h u o o u vhatunk meg R-fggvnyeket az Excel-cellkban. Ehhez a kvetkez u e a o o fggvnyeket hasznlhatjuk: u e a RVarSet(var,expression,...), RPut(var,range,...), RStrPut(var,range,...), REval(range,...), REvalC(range,component,...), RApply(function,args), RApplyC(function,component,args), RApplyA(function,args,...), RApplyAC(function,component,args,...), RExec(range,...), RCall(function,args), RCallA(function,args,...), MakeArgs(argrange,transpose=FALSE).

Microsoft Visual Basic


A Microsoft Visual Basic felhasznlsval fejleszthetnk olyan alkalmazsokat, amelyek az R-krnyezet adottaa a u a o sgait is magukban foglaljk. Egy plda: a a e Private Sub Command1_Click() Dim sconn As StatConnector Dim gfxdev As ISGFX Set sconn = New StatConnector sconn.Init "R" Set gfxdev = Gfx1.GetGFX sconn.AddGraphicsDevice "dev1", gfxdev sconn.EvaluateNoReturn "plot(sin(1:10))" sconn.EvaluateNoReturn "a<-0:100" sconn.EvaluateNoReturn "b<-sin(a)" sconn.EvaluateNoReturn "x<-sin(1:10)" ' sconn.EvaluateNoReturn "plot(x)" ' sconn.EvaluateNoReturn "demo(""graphics"")" sconn.Close End Sub Private Sub Form_Resize() Gfx1.Width = Width - 800 Gfx1.Height = Height - 400 Command1.Left = Width - 750 End Sub

Python
Az R-krnyezet hasznlhat Python-nyelv alkalmazsval is, ezltal a Python-szoftverek kihasznlhatjk az o a o aa a a a R-nyelv statisztikai, grakai kpessgeit. Ahhoz, hogy az R (D)COM-ot elrhessk a Pythonnal, telep unk e e e u ten kell a win32com interfszt39 . Ezek utn mr megh e a a vhatjuk az R-fggvnyeket a Python-rtelmezn is, pldul u e e o e a a kvetkez mdon: o o o
39 http://www.python.org/windows/win32com/

118 from win32com.client import Dispatch sc=Dispatch("StatConnectorSrv.StatConnector") sc.Init("R") m=sc.Evaluate("b<-matrix(rnorm(20),5,4)") print m

SZOFTVERINTEGRACIO

RPy
Az RPy-csomag telep esvel40 ltrehozunk egy interfszt a Python s az R-krnyezet kztt. Ez az interfsz t e e e e o o o e lehetv teszi, hogy platformfggetlen mdon o e u o rhassunk olyan programokat, amelyek mind Python, mind pedig R-kdokat tartalmaznak. A telep ocsomag kivlasztsnl nagyon gyeljnk, hogy mind a rendszernkn o t a aa a u u o telep tett Python-nak, mind az R-nek megfelel verzit szerezznk be. Egy nagyon egyszer plda lthat az o o u u e a o albbiakban: a from rpy import * r.sum(r.rnorm(300)) Az r. eltaggal jelezzk azt, hogy az R-krnyezet fggvnyt h o u o u e e vjuk meg.

40 http://rpy.sourceforge.net/

Irodalomjegyzk e

119

Tblzatok jegyzke a a e
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Fontosabb typeof visszatrsi rtkek . . ee e e A t pus, md s trolsi md kombincik o e a a o a o T pus-konverzik . . . . . . . . . . . . . . o Vletlen sorozatok . . . . . . . . . . . . . e Aritmetikai opertorok . . . . . . . . . . . a Mtrix-fggvnyek . . . . . . . . . . . . . a u e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 20 20 24 38 40

Foreign csomag fggvnyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 u e A read.table fggvnycsoport klnbsgei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 u e uo e A formatC rtkforml kdjai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 e e ao o Grakai meghajtk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o Osszehasonl o opertorok t a Logikai opertorok . . . . a String-fggvnyek . . . . . u e Specilis karakterek . . . a Altalnos fggvnyek . . . a u e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

. 65 . 66 . 69 . 70 . 70

120

Trgymutat a o
.RData, 10 .Rhistory, 10 <-, 9 abind, 99 abs, 70 acos, 70 adatbzis, 46 a add, 57 adj, 59 all.screens, 57 ann, 59 apply, 65 apropos, 15, 92, 94 array, 26 as.matrix, 47 asin, 70 ask, 59 assign, 9 atan, 70 attach, 34 attr, 19 attributes, 19 axes, 57 bg, 59 bitmap(), 53 bmp(), 53 break, 65 c, 20, 21 car, 99 ceiling, 70 cex, 59 cex.axis, 59 cex.main, 59 cex.sub, 59 character, 25 chron, 99 cin, 59 class, 20 clippaste, 109 col, 59 col.axis, 59 col.lab, 59 col.main, 59 col.sub, 59 copy, 109 cor, 70 cos, 70 cov, 70 cra, 59 crt, 59 csi, 59 csv, 42 cxy, 59 D, 35 DAAG, 99 data.entry, 36 data.frame, 28, 31, 33, 47 data.restore, 43 dataentry, 36 DBMS, 46 de, 36 demo, 16 dev.cur(), 53 dev.list(), 52 dev.next(), 53 dev.o(), 53 dev.prev(), 53 dev.set, 53 dget, 45 dim, 19, 26, 28 dimnames, 20, 28 din, 59 djmrgl, 63 dos, 42 dput, 49 dump, 49 eects, 99 Emacs, 10 erase, 57 err, 59 eval, 34 example, 15 exp, 70 export, 108 expression, 34 factor, 25 family, 59 fBasis, 99 fg, 59 g, 59 gs, 57 n, 59 x, 26, 36, 91 oor, 70 font, 59 font.axis, 59 font.lab, 59 font.main, 59 121

122 font.sub, 59 for, 65 formatC, 50 ftable, 27 gamma, 59 getwd, 41 gl, 23 GNU, 6 gregmisc, 42 heights, 55 help, 11, 92, 94 help.search, 14, 92, 94 help.start, 12, 92, 94 history, 50 Hmisc, 97 HTML, 50 identify, 58 indexels, 31 e iplots, 61 is.data.frame, 34 is.list, 34 is.matrix, 34 its, 99 jpeg(), 53 Kate, 10 KLIMT, 61 lab, 60 lapply, 65 las, 60 LaTeX, 50 leaps, 99 lend, 60 length, 22, 35, 70 lheight, 60 list, 30, 33 ljoin, 60 lmitre, 60 lmtest, 99 load, 91 loadhistory, 50, 91 log, 57, 70 log10, 70 logical, 25 lookup.xport, 43 looping, 65 ls, 10, 19, 49, 91 lty, 60 lwd, 60 magyar as, 45 t main, 57 man, 11 mapply, 65 mar, 60 mat, 55 matrix, 27, 31 max, 70 MDI, 90 mean, 11, 70 median, 70 mex, 60 mfcol, 60 mfg, 60 mfrow, 60 mgp, 60 Microsoft Access, 111 Microsoft Excel, 41, 111 min, 70 mkh, 60 mode, 19 multcomp, 99 mvtnorm, 99 MySQL, 114 names, 33 ncol, 50 new, 57 next, 65 numeric, 25 objects, 10, 19 ODBC, 46, 114 oma, 60 omd, 60 omi, 60 oz, 99 paste, 69 pch, 61 pdf(), 53 Perl, 42 pictex(), 53 pin, 61 plt, 61 png(), 53 PostgreSQL, 114 postscript(), 53 prba, 6 o prod, 70 ps, 61 pty, 61 quadprog, 97 quantreg, 99 quartz(), 53 range, 70 RDBMS, 46 read.csv, 43 read.csv2, 43 read.dbf, 43 read.delim, 43 read.delim2, 43 read.dta, 43 read.epiinfo, 43 read.mtp, 43 read.octave, 43 read.S, 43

TARGYMUTATO

TARGYMUTATO read.spss, 43 read.ssd, 43 read.systat, 43 read.table, 43 read.xls, 42 read.xport, 43 readLines, 42 relimp, 99 rep, 22 repeat, 65 report, 110 respect, 55 Rggobi, 63 rgl, 63, 99 rJava, 61 rm, 10, 91 round, 70 S, 6 sandwich, 99 save, 48 save.image, 49, 91 savehistory, 50, 91 scan, 21 screen, 57 SDI, 90 search, 91 seq, 21 sequence, 23 setwd, 41, 91 sin, 70 sink, 49 smo, 61 source, 10, 49, 90 specilis karakterek, 69 a sqrt, 70 srt, 61 storage.mode, 19 str, 35 strucchange, 99 sub, 57 sum, 70 summary, 35 svGUI, 103 Sys.getlocale, 46 Sys.setlocale, 46 t, 47 tan, 70 tapply, 65 tck, 61 tcl, 61 tmag, 61 try.all.packages, 14 ts, 30 tseries, 99 tsp, 20 type, 57, 61 typeof, 19 unlink, 50 update.packages, 92, 94 usr, 61 var, 70 vector, 25, 31 view, 109 which.max, 70 which.min, 70 while, 65 widths, 55 win.metale(), 53 win.print(), 53 windows(), 53 write, 47 write.dbf, 43 write.dta, 43 write.foreign, 43 write.table, 48 X11(), 53 xaxp, 61 xaxs, 61 xaxt, 61 Xemacs, 10 xg(), 53 xgobi, 61 xlab, 57 xlog, 61 xls, 41 xls2csv, 42 xpd, 61 xtable, 50 yaxp, 61 yaxs, 61 yaxt, 61 ylab, 57 ylog, 61 zoo, 99

123