Professional Documents
Culture Documents
Bevezet
es az R-nyelv
es k
ornyezet haszn
alat
aba
Solymosi Norbert
2
Ez
uton szeretnek k
osz
onetet mondani az R Development Core Team-nek az R-rendszer fejleszteseert, illetve a
hasznos dokument
aci
okert es peld
akert. Az R-rendszert alkalmaz
ok k
oz
ossegenek a hasznos levelezesi arvhvumert es egyeb dokument
aci
okert. Szinten nagy segtseget ny
ujtottak (a segedlet temakoreinek kivalasztasaban)
kollegaim: Harnos Andrea es Reiczigel Jen
o, valamint Penzes Zsolt es Barta Zolt
an. A szoveg nyelvi ellenorzeseben segtett Dala S
ara.
Tartalomjegyz
ek
El
osz
o
Bevezet
es
Az R m
ukodesenek alapelvei . . . . . . . . . . . .
Szintaktikai alapok . . . . . . . . . . . . . . . . . .
Utastasok . . . . . . . . . . . . . . . . . . . . . . .
F
uggvenyek . . . . . . . . . . . . . . . . . . . . . .
Az adatok tart
oss
aga es az objektumok eltavoltasa
Szovegszerkeszt
ok . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
. 6
. 8
. 8
. 9
. 10
. 10
Seg
edletek
help . . .
apropos .
example .
demo . . .
Segedletek
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
. 11
. 15
. 15
. 16
. 16
Objektumok
Attrib
utumok . . . . . . .
Objektumok kezelese . . .
Adatok begepelese . . . .
Adatgeneralas . . . . . . .
Adattarolo objektumok .
Kifejezes . . . . . . . . . .
Objektumok szerkesztese .
Objektum-m
uveletek . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
. 19
. 20
. 20
. 21
. 25
. 34
. 35
. 38
.
.
.
.
a
. . . . . .
. . . . . .
. . . . . .
. . . . . .
CRAN-on
.
.
.
.
.
Adatok olvas
asa, kezel
ese
es r
asa
41
Munkakonyvt
ar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Adatok olvas
asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Adatok kirat
asa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Grafika
A grafikai eszk
oz be
allt
asai . . . .
Az alapteleptes grafikai f
uggvenyei
Interaktv vizualiz
aci
o . . . . . . .
Trellis . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
52
. 52
. 57
. 61
. 63
Programoz
as R-ben
65
Vezerlok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Sajat f
uggvenyek kesztese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Jelent
esek k
eszt
ese
Sweave . . . . . . . . . . . . . . . . .
Pelda . . . . . . . . . . . . . . . . .
Sweave beallt
asok . . . . . . . . . .
Objektumok haszn
alata a sz
ovegben
A kodszakasz u
jrahasznost
asa . . .
Tangle vagy weave . . . . . . . . . .
Az RweaveLatex parameterezese . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
71
72
72
76
76
77
77
TARTALOMJEGYZEK
Fu
ek
ggel
78
Telept
es
79
Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Szo
ok
85
vegszerkeszt
Tinn-R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Kate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Grafikus felu
90
letek
Windows RGui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
R Commander . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
SciViews-R GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
ODBC-kapcsolat l
etrehoz
asa
Microsoft Excel . . . . . . . .
Microsoft Access . . . . . . .
MySQL . . . . . . . . . . . .
PostgreSQL . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
111
111
111
114
114
Szoftverintegr
aci
o
116
R (D)COM Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
RPy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
El
osz
o
Ezt a rovid haszn
alati u
tmutat
ot azert kezdtem el rni, hogy magyarul is elerheto legyen egy az R nyelv
alkalmazasaba bevezet
o segedlet. Termeszetesen a hasonlo jelleg
u munkak, vagyis gyorsan fejlodo nylt forraskod
u rendszerek felhaszn
al
as
at segt
o sz
ovegek sohasem lehetnek teljesek. Igy minden esetben a teljesseg igenye
nelk
ul kezdhet csak bele a szerkeszt
o a munk
aba, ami viszont egy alapos segedletet elekepzelve folyamatos
hianyerzetet okoz. Igen sok angol nyelv
u anyag all rendelkezesre, de mindnek masok a celjai es s
ulypontjai.
Raadasul e s
ulypontoknak megfelel
oen mas es mas didaktikai feleptest kovetnek. Arrol nem is beszelve,
hogy hanyszor egym
asnak ellentmond
oan. . .
Az en celom az volt, hogy egy puszt
an technikai bevezet
ot adjak kozre, a specialis alkalmazasok (pl. statisztika)
elhagyasaval. Ahogy m
ar megjegyeztem, mindenkeppen toredekes lesz az eloallo kezirat, tobben bizonyara eppen azt nem fogj
ak megtal
alni benne, amit kerestek, masok pedig esetenkent mas megfogalmazast tartananak
helyesnek. Eppen
ezert szeretnem, ha ezt az R-bevezetot jelen allapotaban kiindulasnak, bovtendo alapnak
tekintenek, mely folyamatosan fejl
odhet, u
jabb reszekkel egesz
ulhet ki. Ebben a folyamatban szvesen vennek
minden megjegyzest, kritik
at es sz
ovegjavaslatot.
Addig is remelem, hogy munk
am haszn
ara v
alik majd nehanyaknak.
Allatorvos-tudom
anyi Kar
Szent Istv
an Egyetem
1078 Budapest, Istv
an u. 2.
E-mail: Solymosi.Norbert@aotk.szie.hu
Honlap: http://www.univet.hu/users/nsolymosi/
Bevezet
es
Az R egy olyan programoz
asi nyelv es k
ornyezet, amely k
ulonosen alkalmas statisztikai szamtasok es grafikai
megjelentesi feladatok megval
ost
as
ara. Az R-nyelv a John Chambers altal elindtott S-nyelv GNU verziojakent
is tekintheto. (Az S nyelvet az 1970-es evekben a Bell Laboratories-ben fejlesztettek interaktv adatelemzes es
vizualizacio celjab
ol.) Az R szabad szoftver, ami a LESSER GNU1 GENERAL PUBLIC LICENSE2 kozreadasi
feltetelek alapjan terjeszthet
o. Az S-nyelvvel valo rokonsag miatt az S-nyelven, illetve az S-Plus3 kornyezetben
megrt kodok a legt
obb esetben haszn
alhat
ok az R-kornyezetben is, esetenkent azonban modostasokra szorulnak.
Az R magva egy parancsertelmez
o (interpreter) jelleg
u nyelv, szintaxisa fel
uletesen hasonlt a C nyelvere, de
tulajdonkeppen egy funkcion
alis programoz
asi nyelv a Scheme4 nyelvhez hasonlo kepessegekkel. Az R-nyelv
t
obbek kozott lehet
ove teszi ciklusok alkalmazasat, illetve a modularis programozast f
ugvenyeken kereszt
ul.
A felhasznalok altal haszn
alt f
uggvenyek t
obbsege R-ben van megrva, amelyek kisebb belso primitv eljarasokat gy
ujtemenyere ep
ulnek. M
as nyelvekben (C, C++ vagy FORTRAN) megrt eljarasokat is hasznalhatunk a
nagyobb hatekonys
ag erdekeben, illetve kiegeszto primitveket keszthet
unk.
Az R-rendszer nagysz
am
u statisztikai elj
ar
ast tartalmaz. Ezek kozott talaljuk a linearis es generalizalt linearis
modelleket, a nem-line
aris regresszi
os modelleket, idosoranalziseket, klasszikus parameteres es nem-parameteres
teszteket, klaszterezesi es simt
asi m
odszereket. A statisztikai lehetosegek mellett sok f
uggveny erheto el a rugalmas grafikai k
ornyezetben; e k
ornyezet segtsegevel az adatok reprezentacioja igen sokfelekeppen valosthato
meg.
Az alaprendszerrel teleptett elj
ar
asok mellett igen nagy szam
u csomag erheto el mind a CRAN5 -rol, mind a
6
Bioconductor -rol, mind pedig egyeb internetes tarolokbol. Az R rohamos terjedese folytan egyre tobben hoznak letre egyegy speci
alis adatelemzesi ter
uletnek megfelelo eljarasgy
ujtemenyeket, csomagokat, amelyeket az
R-kozosseg rendelkezesere bocs
ajtanak.
Az R-nyelv fejleszteset Robert Gentleman es Ross Ihaka (Statistics Department of the University of Auckland)
kezdte el. 1997. k
ozepe
ota az R Development Core Team modosthatja az R forraskod CVS archvumat.
A kornyezet elnevezes arra utal, hogy ink
abb alaposan megtervezett es egyseges rendszerrol van szo, mint
folyamatosan novekv
o nagyon speci
alis es merev eszkozrol (mint amilyenek a gyakrabban hasznalt adatelemzo
szoftverek).
Az R nagyfok
u hordozhat
os
aggal rendelkezik, hiszen mind Windows, mind Linux, mind pedig MacOS operacios
rendszerekhez elerhet
ok bin
aris telept
ok. Emellett a forraskod is letoltheto, gy az abbol torteno teleptes meg
nagyobb rugalmas
agot biztost.
Az egyszer
u interaktv programoz
as mellett lehetoseg nylik komplexebb megoldasok fejlesztesere, illetve lehetseges integralt megold
asok fejlesztese,
osszekapcsolas mas alkalmazasokkal (pl. Microsoft Excel), illetve kombinalas
mas nyelvekkel (pl. LATEX, Python, Visual Basic, Deplhi, stb.). Ez utobbi lehetoseg segtsegevel sajat alkalmazasok fejleszthetok gyakori statisztikai vagy vizualizacios feladatok egyszer
u megoldasara.
Az R m
uko
es
enek alapelvei
d
Ahogy az elobbiekben l
attuk, az R-nyelv egy interpretalt szkript nyelv, a programkodokat nem fordtjuk
binaris allomanny
a a futtat
ashoz, hanem az R-parancsertelmezo ertelmezi azokat. Az R-nyelv szintaxisa szerint
megszerkesztett k
odjainkat termin
alon kereszt
ul juttatjuk el az interpreterhez. Az 13. abrakon lathato egy
Linux-os, egy DOS-os es egy Microsoft Windows-os terminal. Tulajdonkeppen az 1. es a 2. egyforman m
ukodik,
vagyis a bert kodokat ENTER-rel j
ov
ahagyva ertelmezi. A 3. abran lathato Windows-os RGui terminal az
OD
ENEK
ES
AZ R MUK
ALAPELVEI
2.
abra. DOS-os terminal
BEVEZETES
3.
abra. Windows-os RGui
A kodok ertelmezhet
ok parancssori, illetve szkript modban. Az elobbinel a promptban (>) bert kodot u
j
sor kezdesevel k
uldhetj
uk el az ertelmez
oh
oz. Az utobbi eseteben a megszerkesztett, altalaban tobb sorbol allo
fajlban mentett szkriptet hvjuk meg ak
ar az R-terminalon (source()), akar mas eszkozzel (pl. R CMD BATCH).
Ahogy a UNIX es Windows termi
alokban
altalanos, itt is a f
uggoleges nyilak segtsegevel tudunk kozlekedni
az utast
asok t
orteneteben. A m
ar kor
abban lefuttatott utastast a felfele mutato nyllal hvhatjuk u
jra es vagy
u
jraertelmeztetj
uk u
gy, ahogy van, vagy pedig javtjuk es az u
j utastast futtatjuk le.
A parancsertelmez
o
altal vegrehajtott utast
asok eredmenyei visszaterhetnek a terminalba, fajlba, adatbazisba,
valamint a grafikus eszk
oz(
ok)re (4.
abra).
Szintaktikai alapok
Az R-rendszer kis- es nagybet
u erzekeny, gy peldaul az R es az r k
ulonbozo szimbolumoknak szamtanak,
es k
ulonbozo objektumokat jelenthetnek. Altal
aban minden alfabetikus szimbolum hasznalhato a valtozok neveben, ezek mellett a . es az _ is neh
any megkotessel. A nevek vagy .-tal vagy bet
uvel kezdodhetnek, ha .-tal
kezdodik egy nev a m
asodik karakter nem lehet szam. Az ekezetes bet
uk hasznalata valtozo siker
u, attol f
uggoen, hogy milyen oper
aci
os rendszeren ,illetve milyen nyelvi bealltasokkal m
ukodik a rendszer
unk. Amennyiben
hordozhato kodot szeretnenk rni, akkor lehetoseg szerint az objektumnevekben erdemes mellozni az ekezetes
bet
uket.
A megjegyzeseket #-el jel
olj
uk, az ezt k
ovet
o karakterek a sor vegeig megjegyzeskent ertelmezodnek.
Utast
asok
Az alaputast
asok kifejezesek vagy ertekad
asok lehetnek. Ha egy kifejezest ertekad
as nelk
ul adunk meg mint
utastast, akkor az R kiertekeli es megjelenti az erteket, ami egyben el is vesz.
> 1 + 2
[1] 3
FUGGV
ENYEK
4. abra. Parancsertelmezo
A terminalban megjelent
o l
atv
anyb
ol az els
o sor > 1+2 a kifejezes, amit ertelmeztetni, futtatni szerett
unk volna,
a [1] 3 sor pedig a kifejezes ertekelese ut
ani eredmeny. A szogletes zarojelek kozott levo 1 azert all ott, mert
az eredmeny
unk egy vektor es annak a sor elejen allo elemenek indexet jelzi.
Egy ertekad
as eseten ugyancsak kiertekeli a kifejezest, de az erteket automatikus megjelentes nelk
ul eltarolja
egy objektumban. Az ertekad
as
altal
anos szintaxisa v
altoz
o <- kifejez
es. Az ertekadas jelekent itt a <hasznalatos, de lehet haszn
alni a = es a -> jelet is. Korabban csak az altalunk hasznalhato jel m
ukodott minden
esetben.
> a <- 1 + 2
> a
[1] 3
Itt mar ket utast
ast haszn
altunk, az els
o sor elvegzi az osszeadast es az ertekadast, a masodik sor pedig kiratja
az a objektumban t
arolt erteket. Fontos megjegyezni, hogy amennyiben egy valtozonak u
j erteket adunk, akkor
annak a korabbi erteke t
orl
odik es fel
ulr
odik az u
jjal.
> a <- 5
> a
[1] 5
Ha tobb utastast adunk meg, az R azokat egymas utan ertelmezi. Az egyes utastasokat vagy pontosvesszovel
vagy sortoressel v
alaszthatjuk el. Amennyiben az ertelmezo egy szintaktikailag teljes utastast talal, akkor azt
ertelmezi es az eredmenyt visszaadja. A pontosvesszo mindig az utastas veget jelzi.Ha a bevitt utastas szintaktikailag nem teljes, es egy u
j sort kezd
unk, az ertelmezes nem fut le. Amennyiben interaktv u
zemmodban
dolgozunk, ilyenkor a prompt az alapertelmezett >-rol +-ra valtozik.
Az utastasokat csoportosthatjuk is, kapcsos zarojelek {} koze rendezve. Az utastas-csoportokat esetenkent
blokk nak hvjak. Egy mag
aban
all
o utast
ast akkor ertelmez az R-kornyezet, ha annak szintaxisa teljes, es u
j
sort kezd
unk. A blokkot mindaddig nem ertelmezi, amg azt le nem zarjuk, es u
j sort nem kezd
unk.
> {
+
+
+
+ }
a <- 1
b <- a + 2
b
[1] 3
A kovetkezokben az utast
ason mind a mag
aban allo, mind a blokkba rendezett utastasokat ertj
uk.
Fu
enyek
ggv
Az R-ben letrehozott es kezelt egysegeket objektumoknak nevezz
uk. Ezek lehetnek valtozok, tombok, karakterlancok, f
uggvenyek vagy ezek komplex strukt
urai. Az R-rendszeren bel
ul az objektumokon oper
atorokkal es
BEVEZETES
10
f
uggvenyekkel vegezhet
unk k
ul
onb
oz
o m
uveleteket. A f
uggvenyek a fuggveny.neve(arg1,arg2,argN) szintaxis
szerint ep
ulnek fel. A fuggveny.neve hat
aroza meg a f
uggveny nevet, amivel azonostja a rendszer a meghvando eljaras(oka)t. A z
ar
ojelek k
oze foglalt agrN a f
uggveny argumentumait jelenti. Egyes f
uggvenyek eseten
nem minden argumentumnak kell megadnunk erteket, mivel a f
uggveny rendelkezik alapertelmezett ertekekkel.
Az adatok tart
oss
aga
es az objektumok elt
avolt
asa
Egy R-munkafolyamat (session) sor
an a letrehozott objektumok nev szerint vannak tarolva. Az objects()
vagy a ls() utast
as kirja a konzolra az aktualisan az R-ben tarolt objektumok nevet. Az aktualisan tarolt
objektumokat egy
uttesen munkater
uletnek (workspace) nevezz
uk. A mar feleslegesse valt objektumokat az rm()
f
uggvennyel tavolthatjuk el, u
gy, hogy a f
uggveny parameterekent az objektum(ok) nevet adjuk meg.
A letrehozott objektumokat t
arolhatjuk egy kovetkezo munkafolyamat szamara. Minden R-munkafolyamat vegen, a kilepeskor az RGui felaj
anlja a munkater
ulet menteset. Amennyiben mentj
uk az objektumainkat, azok egy
.RData, a munkafolyamatban haszn
alt
osszes utastas pedig egy .Rhistory kiterjesztes
u fajlba rodik ki. Amikor u
jraindtjuk az R-t, a mentett munkater
ulet betoltodik (az elemzesek folytathatosaga vegett). Emellett az
utastasok tortenete is bet
olt
odik. Ez igen zavaro is lehet, mivel gyakori, hogy k
ulonbozo elemzesi munkafolyamatokban is ugyanolyan egyszer
u neveket haszn
alunk, ami automatikus betoltodes eseten adatok felcserelodesehez
vezethet. Ennek kivedese erdekeben egyreszt minden elemzest k
ulon konyvtarban tanacsos vegezni, masreszt
erdemes az objektumneveket specializ
alni.
Sz
ovegszerkeszt
ok
Amennyiben hosszabb szkripteket szeretnenk keszteni, a terminalban valo programkodras nehezkes es igen
attekinthetetlen. Ezert, ha ilyen feladatba fogunk, erdemes valamilyen szovegszerkesztovel megrni a kodjainkat.
Windows
Az RGui a 2.0.1-es verzi
ot
ol kezdve tartalmaz egy szkript-szerkeszto eszkozt, ami igen egyszer
u szovegszerkeszto, keves funkci
oval. El
onye viszont, hogy a benne szerkesztett kodbol egyes sorokat vagy kijelolt szakaszokat
kozvetlen
ul lehet
atadni az R-termin
alnak ertelmezesre.
A Microsoft Windows k
ornyezetben a kellekek kozott elerheto Jegyzett
omb teljes mertekben megfelel a kod
szerkesztesehez. Ha ebben szerkesztj
uk a szkript
unket, akkor vagy u
gy tudjuk az R-ertelmezohoz eljuttatni,
hogy a source() f
uggvenyt haszn
aljuk, vagy a szerkesztobol a vagolapra helyezett kodreszletet beillesztj
uk az
R-terminalba. Hatr
anya meg, hogy egyszerre csak egy allomany tudunk benne szerkeszteni.
Igen hasznos eszk
oz a Tinn-R7 szerkeszt
o, amivel egyszerre tobb fajlt kezelhet
unk es ezek projektbe szervezhetok.
Emellett kepes kommunik
alni a be
alltott R-terminallal. Ennek segtsegevel a szerkesztobol kozvetlen
ul k
uldhet
unk kodokat vagy egesz szkript-f
ajlokat az R-hez. (A mellekletben rovid leras talalhato a Tinn-R bealltasaval
kapcsolatban.)
Linux
Linuxon igen j
o eszk
oz a Kate 8 szerkeszt
o, ami rendelkezik egy terminalablakkal is, gy egy alkalmazason
bel
ul lehet szerkeszteni es futtatni is a k
odokat.
Platformfu
asok
ggetlen alkalmaz
Platformf
uggetlen, sokfele feladatra haszn
alhato eszkoz az Emacs 9 vagy az Xemacs 10 , mely mint szerkeszto
11
is nagyon jol haszn
alhat
o, de ha az ESS (Emacs Speaks Statistics) csomagot is teleptj
uk, akkor emellett,
mint az R-ertelmez
ovel val
o k
ozvetlen egy
uttm
ukodesre is kepes.
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/
Seg
edletek
Az R nagy el
onye, hogy igen j
ol dokumentalt. A m
ukodes minden pontja kontrollalhato, a nyitott forraskodnak koszonhet
oen. Termeszetesen a forr
askod tanulmanyozasanal egyszer
ubb informacionyeresi lehetosegek
is rendelkezesre allnak az R haszn
alat
aval kapcsolatban felmer
ulo kerdesek megvalaszolasara. Ezeket a lehetosegeket gy
ujtottem
ossze az al
abbiakban.
help
Az R-ben a beeptett s
ug
orendszer a UNIX man segedletehez hasonlt. Ha egy adott f
uggvennyel kapcsolatban
reszletesebb inform
aci
okat szeretnenk megismerni, hasznalhatjuk a help parancsot. Ha peldaul erdekelnek a mean
f
uggveny parameterezesenek reszletei, gy j
arhatunk el:
> help(mean)
Ugyanezt erhetj
uk el az egyszer
ustett szintaxissal:
> ?mean
mean
package:base
R Documentation
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.
11
SEGEDLETEK
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)
Az output szerkezete
A fent lathat
o output szerkezete
altal
anos, nehany szoban a kovetkezo:
Az elso sor elso eleme a keresett objektum neve, a masodik pedig annak a csomagnak a neve, ami tartalmazza
azt. A kovetkezo sorban lesz a dokument
aci
o idevonakozo szakaszanak cme, ezt kovetik a lero reszek:
Description: r
ovid ler
as
Usage: ha f
uggvenyr
ol van sz
o, akkor a f
uggveny szintaxisa az osszes argumentumaval, ha operatorrol, akkor
operator tipikus alkalmaz
as
anak szintaxisa
Arguments: az argumentumok jelentesenek lerasa es hasznalatuk szintaxisara vonatkozo megjegyzesek
Details: reszletesebb ler
as
Value: amennyiben van ilyen, akkor a f
uggveny vagy operator hasznalata nyoman keletkezo objetum lerasa
References: a fejleszt
ok
altal fontosnak tartott kozlemeny(ek) bibliografiai adatai
Author(s): a f
uggveny, vagy az azt tartalmazo csomag kesztoinek neve
See Also: az R-dokument
aci
oban a tem
aval kapcsolatban javasolhato egyeb szakaszok
Examples: a megertest segt
o neh
any peld
at mutat be
Ha specialis karaktereket tartalmaz
o kifejezest keres
unk, a karaktereket szimpla vagy dupla idezojelek koze kell
foglalnunk:
> help("[[")
Ugyanezt az eljar
ast haszn
aljunk egyes szavak eseten, amelyek szintaktikai jelentessel brnak (mint pl.: az if,
a for vagy a function). A legt
obb R-teleptesben elerheto egy HTML s
ugo rendszer is, amit a kovetkezo
paranccsal tudunk meghvni:
> help.start()
A parancs eredmenyekent az alapertemezett web browser
unkben megjelenik a 5. abran lathato lap, ami a
teleptett verzioval es csomagokkal kapcsolatos informaciok gyors elereset segti. A kepernyon lathato linkek
segtsegevel tudunk v
andorolni a sz
amunkra fontos ter
uletek kozott. Az An Introduction to R, Writing R Extensions, The R Language Definition, R Data Import/Export, R Installation and Administration dokumentumok
itt elerheto HTML verzi
oja mellett nyomtathato pdf formatumban is elerhetok az altalanos teleptes utan,
megpedig Windows k
ornyezetben a C:\Program Files\R\rw2001\doc\manual konyvtarban. A Search Engine
HELP
13
5. abra. HTML s
ugo
SEGEDLETEK
14
Library
C:/PROGRA~1/R/rw2011/library
Vegre megkaptuk a s
ug
orendszer azon elemeit, amelyek tartalmaznak a megadott keresesi feltetelhez hasonlo
karakterlancot. L
athat
o, hogy az eredmenykent megjeleno listaban a sorok az R-objektum nevevel kezdodnek,
szorosan ezutan k
ovetkezik az azt tartalmaz
o konyvtar neve, majd pedig a R dokumentacion bel
uli elnevezese. Ezek koz
ul m
ar ki tudjuk v
alasztani azt az elemet, amit kerest
unk (Students t-Test) es a help(t.test)
segtsegevel ki tudjuk ratni a dokument
aci
oj
at.
APROPOS
15
apropos
Az apropos f
uggvennyel a bet
olt
ott k
onyvtarak objektumainak neveiben kereshet
unk karakteret vagy azok
lancolatat. A f
uggveny a teleptett, de nem betoltott konyvtarakban nem keres.
> 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"
"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"
"testPlatformEquivalence"
example
Az example() f
uggveny szinten segthet egyes f
uggvenyek hasznalatanak elsajattasaban. Kiprobalhatjuk
vele azokat a peld
akat, amelyeket a szerz
ok beeptettek az egyes csomagokba. Ez igazan hasznos lehet egyes
f
uggvenyek parameterezesenek tanulm
anyoz
asaban.
> 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
SEGEDLETEK
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
demo
Egyes csomagokhoz szkripteket mellekelnek az eljarasok bemutatasara. Ezek a demo f
uggveny segtsegevel
lefuttathatok es
attekintest ny
ujtanak a k
onyvtar alkalmazasanak lehetosegeirol. A demo() utastassal, argumentum nelk
ul kilist
azhatjuk az alapcsomagokhoz tartozo bemutatokat.
> demo()
Demos in package 'base':
is.things
recursion
scoping
nlm
smooth
Seg
edletek a CRAN-on
Gyakran feltett k
erd
esek (GYIK)
A gyakran feltett kerdesek12 es azok archivalt valaszai sok esetben ny
ujthatnak celzott segtseget.
Keres
es
Az eddigiekbol l
athat
o, hogy amennyiben valamely f
uggvennyel vagy egyeb objektummal kapcsolatban szeretnenk informaci
ohoz jutni, a fenti lehet
oseggekkel csupan a gep
unkre teleptett csomagok dokumentaciojaban
tudunk keresgelni. Azonban a legt
obb esetben a csomagoknak csak egy resze van teleptve gep
unkre, vagyis az
R eljarasainak csak t
oredeker
ol szerezhet
unk informaciokat. A CRAN szeleskor
u keresesi lehetoseget knal (6.
abra), aminek segtsegevel minden f
uggvenyr
ol, egyeb objektumrol begy
ujthetok a kvant informaciok.
12 http://cran.r-project.org/
SEGEDLETEK
A CRAN-ON
17
6.
abra. Keresesi fel
ulet a CRAN-on
SEGEDLETEK
18
R News
Az R News evente h
arom alkalommal jelenik meg es az R-rel kapcsolatos u
jdonsagokrol szamol be.
Levelez
esi list
ak
Szamos levelezesi lista erhet
o el. Ezek igen nagy aktivitassal m
ukodnek. Az altalanos cel
u levelezesi listak: R-announce, R-packages, R-help es R-devel listak. Egyes specialis erdeklodes ter
uletnek megfeleloen
letrehozott listak: R-sig-DB, R-SIG-Debian, R-sig-Epi, R-sig-finance, R-sig-Geo, R-sig-gR, R-SIG-GUI,
R-SIG-Mac, R-sig-QA.
Objektumok
Az R-en bel
ul mind az adatstrukt
ur
ak, mind pedig a f
uggvenyek objektumkent jelennek meg. Az R-munkafolyamatban jelenlev
o objektumokat kilist
azhatjuk a ls vagy az objects f
uggvenyekkel. Az egyes objektumok
tpus
ara, illetve m
odj
ara vonatkoz
o inform
aci
okat kiolvashatjuk f
uggvenyek segtsegevel. A typeof(x) f
uggveny
segtsegevel az x objektum tpus
at olvashatjuk ki. Nehany gyakrabban elofordulo ertek az 1. tablazatban olvashato. Az x objektum S-nyelvel kompatibilis m
od jat a mode(x) f
uggvennyel olvashajuk ki. A storage.mode(x)
f
uggveny pedig az x objektum t
arol
asi m
odj
at adja vissza. Ez utobbi akkor fontos, ha valamilyen egyeb nyelven
rt f
uggvenyt hvunk meg (C, FORTRAN, stb.) es a m
uveletek elvegzese elott fontos ellenorizni, hogy a formatum megfelel-e az adott elj
ar
as argumentum-elvarasainak. Az egyes vektorok tpusara es modjara jellemzo
ertekeket a 2. tabl
azat tartalmazza.
Attrib
utumok
A NULL kivetelevel minden objektumhoz hozzarendelhetok attrib
utumok. Az attrib
utumok egy lista elemeikent vannak elt
arolva. A lista elemeit az attributes f
uggvennyel olvashatjuk, illetve az <-attributes-al
rhatjuk. Egyedi komponenseket az attr f
uggvennyel olvashatunk, illetve az <-attr-al rhatunk. Egyes attrib
utumok sajatos eleresi funkci
oval rendelkeznek (pl. a faktoroknal a levels), amennyiben ilyen elerheto, erdemes
ezeket hasznalni az adott feladatra. A m
atrixok es a tombok egyszer
u vektorok dim es dimnames attrib
utumokkal
kiegesztve.
names
A names attrib
utum az adott objektum egyes elemeire utalo cmke, amellyel egyben hivatkozni is lehet az
dim
A dim attrib
utumot a t
omb
ok letrehoz
as
ara vezettek be. A tombok tulajdonkeppen vektorok, amelyek osz
lopban taroljak a vektor adatait, a t
omb kiterjedeseit pedig a dim attrib
utumban egesz szamokbol allo vektorkent adjuk meg. Az R ellen
orzi, hogy a dimenziokban megadott kiterjedesi hosszak megfelelnek-e a vektor
hosszanak. A dimenzi
ok merete lehet ak
ar nulla is. A vektor nem egyezik meg az egydimenzios tombbel, mivel
az utobbi rendelkezik dim attrib
utummal, mg az elobbi nem.
1. t
abl
azat.
ertek
NULL
symbol
closure
logical
integer
double
complex
character
list
raw
20
OBJEKTUMOK
2. t
abl
azat. A tpus, m
od es t
arol
asi m
od kombinaciok
typeof
mode
storage.mode
logical
logical
logical
integer
numeric
integer
double
numeric
double
complex
complex
complex
character character character
forr
as
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. t
ablazat. Tpus-konverziok
konverzio
eredmeny
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 tombok egyes dimenzi
oi elnevezhet
ok a dimnames attrib
utumban tarolt nevekkel. A neveket egy szoveges
vektorokbol allo list
aban adhatjuk meg.
class
Az R beeptett oszt
aly-rendszere a class attribut
umon kereszt
ul kezelheto. A class attrib
utum szoveges
vektor, azokat az oszt
alyokat tartalmazza, amelyekbol az adott objektum szarmazik.
tsp
A tsp az idosorobjektumok attrib
utuma, azok parametereit tarolja (start, end es frequency).
Objektumok kezel
ese
Objektumok l
etrehoz
asa
Ahogy mar a kor
abbiakban l
attuk, letrehoztunk objektumokat ertekadassal. Ekkor azonban az objektum
m
odja, tpusa altal
anoskent lesz meghat
arozva. Az objektumot u
gy is letrehozhatjuk, hogy m
odj
at, tpus
at,
meretet, stb. elore meghat
arozzuk. Ez a lehet
oseg igen hasznos lehet az objektumokkal valo manipulaciok soran.
Peldaul letrehozhatunk u
uggvennyel
res objektumokat es modosthajuk elemeiket, ami hatekonyabb, mint a c() f
egyszerre feltolteni a vektort. Az elemek m
odostasaban az indexeket is hasznalhatjuk.
Az adattarolo objektumokat (l
asd al
abb) felt
olthetj
uk adatokkal, adatfajlok beolvasasaval, adatok generalasaval,
illetve adatsorok billenty
uzetr
ol val
o bevitelevel. Az adatfajlok olvasasarol es rasarol a kovekezo fejezetben lesz
szo. Az alabbiakban (az egyes objektumtpusok ismertetese elott) az adatgeneralasrol rok, mivel az adattarolo
objektumok ismertetese el
ott ez celszer
unek l
atszik.
Adatok beg
epel
ese
A szamtasainkban vagy a grafikai megjelentesekben hasznalando adatainkat, ha nem t
ul nagy mennyisegrol
van szo, akkor gyorsan begepelhetj
uk, t
obbfelekeppen is:
AS
ADATGENERAL
21
c
A c f
uggveny ertekeket vagy objektumokat f
uz ossze vektorr
a vagy list
av
a. Alapertelmezesben a megadott
ertekeket vektorr
a f
uzi
ossze.
c(..., recursive=FALSE)
A c f
uggveny argumentumainak ler
asa:
...
recursive
Az o
uzend
o ertekek vagy objektumok, amelyeket vesszovel valasztunk el.
sszef
Ha az erteke TRUE es az objektumok kozott van lista is, akkor a lista minden
elemet egy vektor elemeive alaktja es a vegleges objektum vektor lesz. Ha FALSE
es az
osszef
uzend
o objektumok egyik eleme lista, akkor az eredmenykent letrejovo
objektum is lista lesz.
A c f
uggveny segtsegevel letrehozhatunk egy egszer
u vektort:
> 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 letrehozhatunk:
> a <- c()
> a
NULL
scan
A scan f
uggveny reszletesebb ler
as
at az adatf
ajlok olvasasa es rasa resznel lehet megtalalni, itt egy egyszer
ubb
alkalmazasat lathatjuk. Segtsegevel a k
ovetkezo modon hozhatunk letre hasonlo vektort:
> 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 ertekeket sz
ok
ozzel elv
alasztva gepelj
uk be egymas utan.
Adatgener
al
as
Szab
alyos sorozatok
A kovetkezo f
uggvenyek haszn
alhat
ok:
seq
Szabalyos sorozatok gener
al
as
ara haszn
alhatjuk.
from:to
a:b
seq(from, to)
seq(from, to, by=)
seq(from, to, length=)
seq(along=)
seq(from)
22
OBJEKTUMOK
A seq f
uggveny argumentumainak ler
asa:
A sorozat indul
o erteke.
A sorozat z
ar
oerteke.
A sorozat n
ovekedesenek/csokkenesenek lepteke.
A letrehozand
o sorozat hossza, elemszama.
Az itt megadott objektum hosszanak megfelelo hossz
usag
u sorozatot hoz letre.
Egyenl
o hossz
us
ag
u faktorok.
Szabalyos, egesz sz
amokb
ol
all
o sorozatot general a kovetkezo utastas, amiben a 1-tol 10-ig terjedo vektor lesz:
from
to
by
length
along
a,b
9 10
A masodik sorozatn
al azt l
athatjuk, hogy el
obb general 1-tol 10-ig egy sorozatot es utana, az eredmenyvektor
mindegyik tagjab
ol kivon egyet.
> a <- 1:(10 - 1)
> a
[1]
egy vektor (b
armilyen formaban), vagy pairlist vagy POSIXct vagy POSIXlt
vagy date objektum
Nem negatv egesz szam(ok)bol allo vektor, ami megadja, hogy az x-et, illetve
elemeit h
anyszor ismetelje meg a f
uggveny. Ha a vektor hossza 1, akkor az abban
megadott sz
amszor ismetli meg az x-et. Ha a hossz
usaga egyezik a x hossz
usagaval,
akkor az egyez
o index
u elemeinek ertekenek megfelelo szamban ismetli x adott
elemet.
AS
ADATGENERAL
length.out
each
...
23
Azt adhatjuk meg vele, hogy az eredmenyvektor milyen hossz
u legyen.
Az x minden elemet megismetli az itt megadott egesz szamnak megfeleloen.
tov
abbi argumentumok
Nehany pelda:
> a <- c(1,2,3)
> b <- rep(a, 3)
> b
[1] 1 2 3 1 2 3 1 2 3
A b vektort u
gy hozza letre, hogy az a vektort haromszor megismetli.
> b <- rep(a, c(3,2,1))
> b
[1] 1 1 1 2 2 3
Itt lathato az, hogy ha a times argumentumban megadott ertek hossza nem 1 es megegyezik az a vektor
hosszaval, akkor az egym
asnak megfelel
o index
u szorzoval ismetli meg a forrasvektor elemeit. Eset
unkben az elso
elemet haromszor, a m
asodik elemet ketszer, a harmadik elemet pedig egyszer illeszti be az eredmenyvektorba.
sequence
A sequence f
uggveny segtsegevel az argumentumban megadott ertekekkel vegzodo sorozatokat generalhatunk.
Tulajdonkeppen u
gy, mintha a seq(from, to) f
uggvenyben a from mindig 1 lenne es csak a to erteket adnank
meg. Azzal egy
utt, hogy itt egszerre t
obb to erteket megadhatunk.
> 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 ket pelda ugyanazt az eredmenyt adja, a masodik valamivel egyszer
ubben. Mindket esetben ugyanaz a
vektor a f
uggveny argumentuma, csak m
as formaban adjuk meg.
gl
A gl f
uggveny faktorokat hoz letre a megadott szinteknek megfeleloen.
gl(n, k, length = n*k, labels = 1:n, ordered = FALSE)
A gl f
uggveny argumentumainak ler
asa:
n
k
length
labels
ordered
Egesz sz
am, ami megadja a szintek szamat.
Egesz sz
am, ami az ismetlesek szamat hatarozza meg.
Az eredmeny hosszat megado egesz szam.
A faktor szintjeinek elnevezesere szolgalo vektor.
Logikai ertek, ami azt hatarozza meg, hogy az eredmenyt rendezze-e vagy sem a
f
uggveny.
24
OBJEKTUMOK
[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
Male
Male
Male
V
eletlen sorozatok
A statisztikaban igen hasznos elj
ar
asok azok, amelyek segtsegevel veletlen adatok allthatok elo. Az Rnyelvben nagyszam
u s
ur
usegf
uggveny
all rendelkezesre erre a feladatra. E f
uggvenyek altalanos formaja ...func(n, p1, p2,
ahol a func a val
oszn
usegi f
uggvenyt jelzi, n a generalando elemszamot es p1,... a valoszn
useg f
uggveny parameterei (4. tabl
azat). A f
uggvenyek neveben szereplo ... helyere d (s
ur
usegf
uggveny), p (eloszl
asf
uggveny),
q (kvantilis f
uggveny) vagy r (veletlensz
am-gener
al
as) bet
u ker
ulhet.
4. t
ablazat. Veletlen sorozatok
szab
aly
f
uggveny
beta
...beta
binomi
alis
...binom
Cauchy
...cauchy
2
...chisq
exponenci
alis
...exp
Fisher-Snedecor (F) ...f
gamma
...gamma
Gaussian (normalis) ...norm
geometrikus
...geom
hypergeometrikus
...hyper
logisztikus
...logis
lognorm
alis
...lnorm
negative binomialis
...nbinom
Pearson (c2)
...chisq
Poisson
...pois
Student(t)
...t
uniform
...unif
Weibull
...weibull
Wilcoxons statistics ...wilcox, ...signrank
OBJEKTUMOK
ADATTAROL
O
25
Adatt
arol
o objektumok
Vektor
A vektorokat alkothatj
ak numerikus, karakter, komplex vagy logikai adattpusok. Ugyanazon vektoron bel
ul
t
obbfele tpus nem haszn
alhat
o. Kor
abban mar lattuk, hogy vektorokat letrehozhatunk tobbfele modon is az
adatgeneralo f
uggvenyek vagy a c f
uggveny segtsegevel. A vector f
uggvennyel is letrehozhatunk vektorokat.
vector(mode = "logical", length = 0)
A vector f
uggveny argumentumainak ler
asa:
mode
length
E kulcssz
o, arra utal, hogy milyen tpus
u adatok tarolasara szolgal a kesztendo
vektor.
Nem negatv egesz szam, amivel bealltjuk, hogy hany elemet tartalmazzon a vektor.
Faktor
A faktorokat alkothatj
ak numerikus vagy karakter adattpusok. Ugyanazon faktoron bel
ul t
obbfele tpus nem
hasznalhato. A factor f
uggveny nem puszt
an egy kategorialis valtozobol allo vektort hoz letre, hanem a valtozo
szintjeit is kigy
ujti.
factor(x, levels = sort(unique.default(x), na.last = TRUE),
labels = levels, exclude = NA, ordered = is.ordered(x))
A factor f
uggveny argumentumainak ler
asa:
x
levels
26
OBJEKTUMOK
eke vagy a levels vektor hossz
Ert
usagaval megyegyezo hossz
usag
u cmkeket tartalmaz
o vektor, vagy 1 hossz
usag
u karaktervektor.
Vektor, ami azokat az ertekeket tartalmazza, amelyeket el szeretnenk tavoltani a
letrehozand
o faktorbol. Ennek a vektornak ugyanolyan tpus
unak kell lennie, mint
az x vektornak.
Logikai ertek. Annak meghatarozasara, hogy a levels rendezve legyenek.
labels
exclude
ordered
<NA> 1
<NA> 1
<NA>
A levels f
uggvennyel kiolvashatjuk a faktor szintjeit:
> levels(r)
[1] "1" "2" "3"
A labels utastassal kigy
ujthet
ok a faktor lehetseges szintjei:
> labels(r)
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9"
Ezen ertekek megegyeznek a seq(along=a) f
uggveny eredmenyevel:
> seq(along=a)
[1] 1 2 3 4 5 6 7 8 9
T
omb
A tomboket alkothatj
ak numerikus, karakter, komplex vagy logikai adattpusok. Ugyanazon tombon bel
ul
t
obbfele tpus nem haszn
alhat
o. Az array f
uggveny a forrasadatokbol (data) letrehoz egy tombot, ami a dim
argumentum altal meghat
arozott dimenzi
oj
u.
array(data = NA, dim = length(data), dimnames = NULL)
OBJEKTUMOK
ADATTAROL
O
27
Az array f
uggveny argumentumainak ler
asa:
A t
omb felt
oltesere szolgalo vektor. Ha nem adunk meg adatokat, akkor u
res tomb
ot hoz letre
Egy vagy t
obb elemet tartalmazo egesz szam vektor, aminek elemei a az egyes
dimenzi
ok maxim
alis indexet adjak meg.
A dimenzi
ok nevet adhatjuk meg ezzel a lista tpus
u argumentummal. Ha van neve
az egyes dimenzi
oknak, akkor azon kereszt
ul is lehet rajuk hivatkozni.
data
dim
dimnames
Amennyiben a forr
asadat kevesebb elemb
ol
all, mint amennyit a dimenziok meghataroznak, a f
uggveny a hianyzo
elemeket feltolti a forr
asadatokb
ol.
> a <- rep(c(1, 2, 3), 3)
> r <- array(data = a, dim = c(2, 4))
> r
[1,]
[2,]
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
M
atrix
A matrixokat alkothatj
ak numerikus, karakter, komplex vagy logikai adattpusok. Ugyanazon matrixon bel
ul t
obbfele tpus nem haszn
alhat
o. A matrix f
uggvennyel lehet letrehozni matrixot, ami tulajdonkeppen egy
ketdimenzios vektor.
matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)
A matrix f
uggveny argumentumainak ler
asa:
data
nrow
28
OBJEKTUMOK
ncol
byrow
dimnames
Az oszlopok sz
am
at adhatjuk meg segtsegevel. Rovidtve nc.
Ha az erteke az alapertelmezett FALSE, akkor oszlopfolytonosan, egyebkent pedig
sorfolytonosan t
olti fel a matrixot adatokkal.
Egy list
aban a dimenziok nevet adhatjuk meg, hasonloan a tombhoz, itt viszont
csak ket dimenzi
o van.
[,1] [,2]
1
4
2
5
3
6
Lathato, hogy a m
atrix kepzesekor az adatforrast oszlopfolytonosan tolti be a matrix f
uggveny. Ha a byrow
argumentumot az alapertelmezett FALSE helyett TRUE-ra alltjuk, akkor matrixunk sorfolytonosan fog feltoltodni.
> m <- matrix(a, nr = 3, byrow = T)
> m
[1,]
[2,]
[3,]
[,1] [,2]
1
2
3
4
5
6
Az oszlopok es sorok neveit a dimnames argumentum segtsegevel hatarozhatjuk meg, amit a tombnel latottak
szerint listakent kell megadni.
Matrixot az array f
uggvennyel is letrehozhatunk. Tovabbi matrix-kepzesi lehetoseg, hogy egy vektorbol hozunk
letre matrixot a dim f
uggveny segtsegevel:
> 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 alkothatj
ak numerikus, karakter, komplex vagy logikai adattpusok. Ugyanazon data.framelhato
t
en bel
ul haszna
obbfele tpus. A data.frame olyan adattabla, aminek alkoto oszolopai vektorkent foghatok
fel. Fajlbol beolvasott adatt
abl
ak eredmenyei altalaban ilyen objektumkent jelennek meg, de letrehozhatjuk a
data.frame f
uggvennyel is.
data.frame(..., row.names = NULL, check.rows = FALSE,
check.names = TRUE)
A data.frame f
uggveny argumentumainak lerasa:
...
Vagy csak az ertekeket adjuk meg, ilyenkor ha azok rendelkeznek nevvel, akkor a
t
abl
azat mez
onevei oroklik ezeket. Vagy nevvel adjuk meg az ertekeket, ilyenkor
OBJEKTUMOK
ADATTAROL
O
row.names
check.rows
check.names
29
Segtsegevel a sorok neveit adhatjuk meg. Ha egyetlen ertekkent adjuk meg, akkor
ezzel azt hat
arozzuk meg, hogy melyik oszlop tartalmazza azokat az ertekeket,
amelyeket a sorok elnevezesere szanunk. Az adott oszlopot megadhatjuk a sorsz
am
aval, illetve a nevevel is. Ha vektorkent adjuk meg az erteket, akkor annak
hossza meg kell hogy egyezzek a sorok szamaval. Az alapertelmezett ertek NULL.
Ha az erteke TRUE, akkor ellenorzi, hogy a sorok hosszanak es elnevezeseinek egyez
oseget.
Az alapertelmezett TRUE ertek mellett ellenorzi a mezoneveket: megfelelnek-e a
v
altoz
ok elvenezesi szabalyainak, illetve, hogy nincsenek-e duplumok.
Az adattabla letrehoz
asakor u
unk arra, hogy az alkoto vektorok egyforma hossz
usag
uak legyenek. Amennyigyelj
ben az egyik vektor r
ovidebb a m
asikn
al, es a hosszabb vektor hossza oszthato a rovidebb vektor hosszaval,
akkor a f
uggveny a r
ovidebb vektor ismetlesevel kipotolja a k
ulonbseget.
>
>
>
>
>
>
x
n
M
y
r
r
<<<<<-
1
2
3
4
x
1
2
3
4
n
10
10
10
10
1:4
10
c(10, 35)
2:4
data.frame(x, n)
x
1
2
3
4
M
10
35
10
35
oszlop1 oszlop2
1
10
2
10
3
10
4
10
oszlop1 oszlop2
1
10
2
10
3
10
4
10
30
OBJEKTUMOK
A matrixhoz hasonl
oan a data.frame is rendelkezik dim argumentummal.
> dim(r)
[1] 4 2
Lista
A listakat alkothatj
ak numerikus, karakter, komplex, logikai adattpusok, illetve f
uggveny es kifejezes Ugyanlhato
. A listat a data.frame-hoz hasonloan hozhatjuk letre a list
azon listan bel
ul t
obbfele tpus haszna
f
uggvennyel. Altal
aban azt mondhatjuk, hogy semmilyen megkotes nincsen az alkotoelemekkel kapcsolatban.
Nem szamt, hogy az egyes ept
oelemek (vektorok, listak, matrixok stb.) milyen meret
uek. Azt viszont erdemes
megjegyezni, hogy az alkot
oelemek nevet nem epti be automatikusan a list f
uggveny a listaba.
list(...)
A list f
uggveny argumentumainak ler
asa:
...
Objektumok, b
armilyen.
Id
osor
A idosorokat alkothatj
ak numerikus, karakter, komplex vagy logikai adattpusok. Ugyanazon idosoron bel
ul
lhato
t
haszna
obbfele tpus. A ts f
uggveny segtsegevel vektorbol vagy matrixbol hozhatunk letre egy id
osor
objektumot. A f
uggveny be
allt
asi lehet
osegei a kovetkezok:
ts(data = NA, start = 1, end = numeric(0), frequency = 1,
deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )
OBJEKTUMOK
ADATTAROL
O
31
data
start
end
frequency
deltat
ts.eps
class
names
Nehany pelda a ts f
uggveny parameterezesere:
> ts(1:10, start = 1974)
Time Series:
Start = 1974
End = 1983
Frequency = 1
[1] 1 2 3
9 10
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
Hivatkoz
as az objektumok elemeire
Indexel
es
Az indexelesi rendszer nagyon rugalmas es hatekony eszkoz az egyes adattarolo objektumok elemeinek kiolvasasara, akar numerikus, ak
ar logikai adattpusokrol van szo. Az idexeket az objektum utan rt sz
ogletes
zarojellel adjuk meg.
s nem 0-ro
l hanem 1-ro
l indul!!!
Az indexele
> x <- 1:3
> x
[1] 1 2 3
Ha az x vektor harmadik elemet szeretnenk kiolvasni, egyszer
uen megtehetj
uk az x[3] utastassal.
> x[3]
[1] 3
Ha matrixbol vagy data.frame-b
ol szeretnenk kiolvasni ertekeket, azt ket index alkalmazasaval tehetj
unk meg.
Az x matrixbol egy elemet az x[i,j] utast
assal olvashatunk ki, ahol i a matrix sorat, j pedig a sorat jelolo
index. Egy egesz sor olvas
as
ahoz az x[i,], egy egesz oszlopehoz pedig az x[,j] parancsot hasznalhatjuk.
32
OBJEKTUMOK
[1,]
[2,]
[3,]
> x[2, 2]
[1] 5
> x[2, ]
[1] 2 5 8
> x[, 2]
[1] 4 5 6
A matrixhoz hasonl
oan a t
omb
oknel is hasznalhato az idexekkel valo olvasas, a dimenziok szerint bovtve az
indexek szamat. Pl. egy h
aromdimenzi
os t
omb eseten egy elemre az x[i,j,k] hivatkozhatunk.
Az indexek segtsegevel nem csak kiolvashatunk ertekeket a tombokbol, hanem lekerdezeseket is vegezhet
unk
az objektumokbol, illetve azok elemeit is m
odosthatjuk.
> x[-1, ]
[1,]
[2,]
[1,]
[2,]
[3,]
[,1] [,2]
4
7
5
8
6
9
[1,]
[2,]
[,1] [,2]
5
8
6
9
OBJEKTUMOK
ADATTAROL
O
[1,]
[2,]
[3,]
33
A data.frame-eken hasonl
oan hajthatjuk vegre a lekerdezeseket. A listak eseteben az indexek tobbreteg
uek
lehetnek, alljon itt neh
any pelda:
>
>
>
>
>
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 gy
oker-elemeire dupla sz
ogletes z
ar
ojelek koze zart indexszel hivatkozhatunk. Az elso gyoker-elem egy
matrix, annak az els
o oszlop
at a k
ovetkez
o m
odon hivatkozhatjuk:
> lista[[1]][, 1]
[1] 1 2 3
A lista harmadik gy
oker-eleme egy m
asik lista A lista masodik vektoranak harmadik elemere a kovetkezo modon
hivatkozhatunk:
> lista[[3]][[2]][3]
[1] 2
Ahogy lathato, a listaelemeken bel
ul a vektoroknal es matrixoknal latott hivatkozast hasznaljuk.
N
evvel val
o hivatkoz
as
A nevek attrib
utumok, amelyek t
obb fajt
aja is lehet (nevek, oszlopnevek, sornevek, dimenzionevek). Tobbek
kozott arra is alkalmasak, hogy objektumok elemeire hivatkozhassunk. Ahhoz, hogy nevek segtsegevel hivatkozzunk elemekre, tudnunk kell, hogy milyen nevek vannak az objektumban. Az objektumban elofordulo neveket
t
obb modon is kiolvashatjuk, ennek egyik m
odja a names() f
uggveny alkalmazasa.
> names(lista)
NULL
Lathato, hogy a kor
abban letrehozott list
ank nem tartalmaz neveket. A nevadast megtehetj
uk az objektum
letrehozasakor, de ut
olag is. Az el
obb haszn
alt names() f
uggveny segtsegevel erteket is adhatunk az objektumunknak. A nevad
ashoz az objektum meretevel megegyezo hossz
usag
u vektort kell hasznalnunk, a fenti peldaban
hasznalt lista 3 elem
u, teh
at egy 3 elemb
ol allo vektorban kell megadnunk a listaelemek neveit.
> names(lista) <- c("r", "t", "z")
Ha most kiolvassuk a lista elemeinek nevet, a kovetkezo eredmenyt kapjuk:
34
OBJEKTUMOK
> names(lista)
[1] "r" "t" "z"
Most, hogy a listaelemeknek van m
ar neve, tudunk nev szerint hivatkozni rajuk. Az objektum nevet es az elem
nevet egy $ jel v
alasztja el:
> lista$r
[1,]
[2,]
[3,]
szolgal az attach f
uggveny. Az el
oz
o pelda az attach f
uggveny hasznalataval:
> attach(lista)
> r
[1,]
[2,]
[3,]
Objektumok konvert
al
asa
Az R nagysz
am
u
atalakt
asi lehet
osseggel rendelkezik a k
ulonbozo objektumtpusok kozott. Az atalaktasok elott celszer
u t
ajekoz
odni: milyen tpus
u objektummal allunk szemben. Erre hasznalhato az is.valami()
f
uggyveny, aminel a valami az objektum-tpust jelenti (pl. is.list, is.matrix, is.data.frame, stb.). A tpusok kozotti konverzi
ot az as.valami f
uggvennyel valosthatjuk meg. Az egyes adattpusok kozotti atalaktasok
eredmenyei a ?? t
abl
azatban l
athat
ok.
> faktor <- factor(c(1, 10))
> faktor
[1] 1 10
Levels: 1 10
> as.numeric(faktor)
[1] 1 2
Ha egy faktort u
gy akarunk numerikuss
a konvertalni, hogy megmaradjanak a szintjei, eloszor karakterre kell
alaktanunk es azut
an numerikuss
a:
> as.numeric(as.character(faktor))
[1]
1 10
Kifejez
es
A kifejezes (expression) az objektumok kozott alapveto jelentoseg
u az R-kornyezetben. Egy kifejezes tulajdonkeppen egy karaktersorozat, amit az R ertelmez. Minden ertelmezheto utastas kifejezes. Amikor egy
utastast kozvetlen
ul az R-termin
alba runk be, az ertelmezodik, amennyiben a szabalyoknak megfelelo. Sokszor
hasznos lehet egy kifejezes el
o
allt
asa anelk
ul, hogy ertelmeztetnenk. Az expression f
uggveny ezt teszi lehetove.
A letrehozott kifejezest az eval() f
uggvennyel tudjuk vegrehajtani.
expression(...)
OBJEKTUMOK SZERKESZTESE
>
>
>
>
>
35
x <- 3
y <- 2.5
z <- 1
kifejezes1 <- expression(x/(y + exp(z)))
kifejezes1
expression(x/(y + exp(z)))
> eval(kifejezes1)
[1] 0.5749019
A kifejezeseket t
obbek k
oz
ott haszn
alhatjuk arra is, hogy f
uggvenyeket jelents
unk meg abrainkon. Nehany
f
uggveny hasznalhat
o a kifejezeseken, mint argumentum. Igy peldaul a D() a parci
alis deriv
altat eredmenyez:
> 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 szerkeszt
ese
Objektumok diagnosztik
aja
Az adattarolasra szolg
al
o objektumok tulajdonsagainak megismerese, kiratasa gyakran hasznos lehet. Nehany, erre szolgal
o f
uggveny bemutat
asa k
ovetkezik.
length
A length f
uggveny segtsegevel az objektum hosszat, elemszamat olvashatjuk ki. A f
uggveny az egyes objek
tumoknal eltero elemeket olvas. Vektorok, t
ombok es matrixok eseteben az objektumot alkoto ertekek darabszamat, listak eseten a list
at alkot
o gy
oker-elemek szamat adja meg. A data.frame-nel pedig az oszlopok szamat
jelenti.
summary
A summary f
uggveny az egyes objektumok
osszesto lero adatait adja vissza.
summary(object, ...)
> summary(valtozo.lista)
Length
[1,] 5
[2,] 3
[3,] 2
Class
-none-none-none-
Mode
character
numeric
numeric
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 elozo f
uggvenyhez (summary) kepest kirja az objektum tpusat is es az egyes vektorok elso elemeit is.
36
OBJEKTUMOK
edit
Az edit f
uggveny egy sz
ovegszerkeszt
ot vagy a data.entry-t hvja meg az adott R-objektum szerkesztesere.
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 f
uggveny argumentumainak ler
asa:
name
file
title
editor
...
A szerkeszteni kv
ant es nevestett R-objektum neve. Ha nincs megadva, akkor a
file
altal meghat
arozott objektum lesz megnyitva szerkesztesre.
Egy f
ajlnev, amelybe a szerkesztett valtozat ki lesz rva.
A szerkeszt
oben cmkent mejeleno felirat.
Meghat
arozhatju, hogy mely szovegszerkesztot hvja meg az R. Windowson az
alapertelmezes a notepad. Megadhato mas szerkeszto is, de termeszetesen csak
akkor fog hiba nelk
ul n
ukodni, ha teleptett
uk a rendszeren (pl. Tinn-R).
Tov
abbi argumentumokat adhatunk meg mas eljarasokba, vagy azokhoz.
fix
A fix f
uggveny az edit f
uggvenyt hvja meg az adott objektum szerkesztesere, azonban (az edit-tel ellentetben)
a valtozasokat el is menti az objektumban.
fix(x, ...)
x
...
A szerkesztend
o R-objektum.
Az edit-nel haszn
alhato tovabbi argumentumok.
Data Editor
Az elozo adatbeviteli lehet
osegek mellett, meg az is lehetseges, hogy a data.entry, a dataentry, illetve a
de f
uggvenyek segtsegevel grafikus fel
uleten kereszt
ul tolts
unk fel adattarolo objektumokat adatokkal.
data.entry(..., Modes = NULL, Names = NULL)
dataentry(data, modes)
de(..., Modes = list(), Names = NULL)
A data.entry, a dataentry es de f
uggvenyek argumentumainak lerasa:
...
Modes
Names
data
modes
V
altoz
ok list
aja. Jelenleg numerikusnak, vagy karakternek kell lennie, vagy ezekbol
all
o list
anak.
A v
altoz
oknak megfelelo m
odok.
A v
altoz
okhoz hasznalt nevek.
Numerikus es/vagy karakter vektorokbol allo lista.
A data hossz
anak megfelelo lista, ami megadja a valtozok m
odj
at.
A kesobbi f
uggvenyek bemutat
as
ahoz letrehozunk nehany adattarolo objektumot.
>
>
>
>
i <- c('y','x','c','v','b')
j <- c(1,2,3)
k <- c(1.2,2.3)
valtozo.lista <- list(i,j,k)
OBJEKTUMOK SZERKESZTESE
37
$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
Habar a terminalban megjelenik a j vektor u
j eleme, a 4, a valtozo.lista objektum nem valtozott meg. Ezt
a kovetkezo diagnosztikai elj
ar
assal lehet ellenorizni:
> 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
38
OBJEKTUMOK
5. t
abl
azat. Aritmetikai operatorok
oper
ator jelentes
kifejezes eredmeny
+
osszeadas
2+3
5
kivonas
5-2
3
szorzas
5*2
10
/
osztas
10/2
5
hatvany
23
8
Objektum-m
uveletek
Aritmetikai m
uveletek
Ha a vektorokon vegezz
uk a klasszikus aritmetikai m
uveleteket (5. tablazat), fontos, hogy figyelj
unk nehany
specialitasra:
> x <- 1:4
> x + 3
[1] 4 5 6 7
Az x vektor minden elemehez hozz
aadott 3-at az utastas.
>
>
>
>
x <- 1:4
y <- rep(1, 4)
z <- x + y
z
[1] 2 3 4 5
Ket egyenlo hossz
us
ag
u vektort adtunk
ossze.
>
>
>
>
x <- 1:4
y <- 1:2
z <- x + y
z
[1] 2 4 4 6
Ket k
ulonbozo hossz
us
ag
u vektor eseten akkor hajthato vegre valamilyen aritmetikai m
uvelet, ha a rovidebb
vektor elemeinek sz
am
aval oszthat
o a hosszabb vektor elemeinek a szama (mint elozo peldankban). Ebben az
esetben az R a r
ovidebb vektort addig ismetli, amg annak a hossza el nem eri a hosszabb vektor hosszat.
Amennyiben az oszthat
os
ag feltetele nem teljes
ul, a feladatot ugyan vegrehajtja, de figyelmeztetest kapunk:
> 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 haszn
alt fu
enyek
ggv
subset
Segtsegevel vektorokb
ol vagy data.frame-okb
ol valogathatunk le reszeket, altalunk meghatarozott szempontok
szerint.
subset(x, ...)
## Default S3 method:
subset(x, subset, ...)
## S3 method for class 'data.frame':
subset(x, subset, select, drop = FALSE, ...)
OBJEKTUM-MUVELETEK
39
A subset f
uggveny argumentumainak ler
asa:
x
subset
select
drop
...
Peldak:
Az alabbi peldaban az l
athat
o, hogy ket szempont szerint vegz
unk sz
urest: a Temp oszlop tartalma nagyobb,
mint 80, valamint a Month oszlop erteke 9. Az eredmenytablazatban csak azok a sorok jelennek meg, amelyekre
ez a ket feltetel igaz. A kiindul
asi hat oszlop helyett az eredmenytablaban csak ket oszlop lesz (Ozone, Wind).
> lekerdezes <- subset(airquality, Temp > 80 & Month==9, select = c(Ozone, Wind))
> dim(lekerdezes)
[1] 9 2
A dimenziok lekerdezese ut
an l
athatjuk, hogy csak 9 rekord felelt meg a felteteleknek.
split
es unsplit
A f
uggveny egy faktorban megadott ertekek szerint az adott vektort vagy data.frame-ot szetvalogatja, illetve
osszeilleszt ilyen m
odon letrej
ott list
akat.
split(x, f)
split(x, f) <- value
unsplit(value, f)
A split es unsplitf
uggvenyek argumentumainak lerasa:
x
f
value
A feldaraboland
o vektor vagy data.frame.
A csoportokat meghatarozo faktor, de lehet faktorokbol allo lista is.
Vektorokb
ol vagy data.frame-okbol allo lista, ami kompatibilis az x-el. Ha a hossz
us
agok nem egyez
oek, akkor a recycling lep m
ukodesbe.
sort.list
Segtsegevel novekv
o vagy cs
okken
o sorrendbe lehet rendezni adatokat, illetve sorbarendezhet
unk tablazatokat
is, u
gy, hogy a sorok egyben maradnak.
sort.list(x, partial = NULL, na.last = TRUE, decreasing = FALSE,
method = c("shell", "quick", "radix"))
A sort.list f
uggveny argumentumainak ler
asa:
Vektor.
Reszleges rendezeshez hasznalt elemek indexeinek vektora.
Logikai ertek, ami ha TRUE, akkor csokkeno, ha FALSE, akkor novekvo sorba rendezi
az adatokat.
na.last
A hi
anyz
o ertekek NA kezeleset meghatarozo argumentum. Ha TRUE, akkor a hianyz
40
OBJEKTUMOK
6. t
ablazat. Matrix-f
uggvenyek
%*%
crossprod
diag
dim, ncol, nrow
dimnames
eigen
kappa
qr
solve
svd
t
upper.tri, lower.tri
> lekerdezes
124
125
126
127
128
129
134
143
146
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
143
129
146
134
128
126
125
127
124
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
Adatok olvas
asa, kezel
ese
es r
asa
Munkak
onyvt
ar
Ha adatallom
anyokkal dolgozunk, sokszor fajlokbol olvasunk, illetve azokba runk ki adatokat. Ilyenkor meg
kell adnunk a haszn
alt f
ajlok eleresi u
tvonal
at. Ha az eleresi u
tvonalban tobb alkonyvtar is elofordul, akkor
az u
t hossz
u lehet, es adott esetben t
obbszor is meg kell adni, vagyis nehezkes. Az R lehetoseget ad arra,
hogy meghatarozzuk a munkak
onyvt
arat, amiben dolgozunk. Igy elegendo a munkak
onyvt
aron bel
uli fajlnevek
megadasa, a teljes u
tvonal nelk
ul. A munkak
onyvt
ar megadasara a setwd f
uggvenyt hasznaljuk.
> setwd("d:/munka"')
Ahogy a peldabol is l
atszik az u
t megad
as
an
al (akar Windows, akar Linux kornyezetben dolgozunk) a konyvtarak
j haszn
elvalasztasara a / jelet musza
alni. Ez Linuxon nem jelent u
jdonsagot, viszont DOS, illetve Windows
eseten az eleresi utak megad
as
an
al az elv
alasztokent a \ jelet hasznaljak.
jlele
re
si u
tvonalat,
Amikor az R-ben akarunk megadni fa
lhatjuk!
akkor csak a / jelet haszna
Elofordulhat, hogy egyszerre t
obb k
onyvt
arban levo allomanyokkal is dolgozunk, ebben az esetben hasznos, ha
tudjuk, hogy eppen mi az aktu
alis munkak
onyvt
ar. Az aktualis munkak
onyvt
ar kiolvasasat a getwd f
uggvennyel
vegezhetj
uk el.
> getwd()
[1] "d:/munka"
Adatok olvas
asa
Microsoft Excel
allom
anyok olvas
asa
Annak ellenere, hogy a Microsoft Excel adattarolasi formatum szeles korben elterjedt az R alapcsomag
jelenleg nem tartalmaz elj
ar
ast az ilyen f
ajlok olvasasara. Ezen allomanyok olvasasa tobbfelekeppen is megvalosthato.
ODBC segts
eg
evel
Az RODBC k
onyvt
ar segtsegevel t
obb modon is olvashatjuk Excel munkaf
uzet
unket. Az elso lepes egy
kapcsolat kialakt
asa, ezek lehet
oseget mutatj
ak a kovetkezo, egyenertek
u kodok:
>
>
>
>
library(RODBC)
kapcsolat <- odbcConnect('ODBCexcel')
kapcsolat <- odbcDriverConnect("DRIVER=Microsoft Excel Driver (*.xls);DBQ=d:/excel.xls")
kapcsolat <- odbcConnectExcel("d:/excel.xls")
Mindharom megold
ashoz sz
ukseges, hogy a Microsoft Excel Driver -t telepts
unk a szamtogep
unkon. Az elso
peldaban bemutatott megold
ashoz sz
ukseges, hogy mielott lefuttatjuk, letrehozzunk egy ODBC-kapcsolatot (a
peldaban ODBCexcel elnevezes
ut). A m
asodik es a harmadik megoldas nem igenyel ilyen elozetes bealltast. A
letrehozott kapcsolatr
ol le lehet kerdezni, hogy milyen tablazatokat tartalmaz.
> 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
IRASA
ADATOK OLVASASA,
KEZELESE
ES
42
A foreign k
onyvt
ar adat
allom
any-kezel
o fu
enyei
ggv
A foreign k
onyvt
ar f
uggvenyei lehet
oseget adnak arra, hogy nehany statisztikai szoftver csomagok adatformatumait olvashassuk, illetve rhassuk.
Adatok olvas
asa ASCII
allom
anyokb
ol
readLines
Szoveges allomanyokb
ol soronkent olvashatunk ki adatokat a readLines f
uggveny segtsegevel.
readLines(con = stdin(), n = -1, ok = TRUE)
A con argumentumban egy f
ajlt adunk meg. Az n segtsegevel adhatjuk meg, hogy hany sort olvasson be a
megadott fajlbol a f
uggveny. Ha n erteke az alapertelmezett -1, akkor a teljes szoveges allomanyt beolvassa. A
harmadik ok argumentumot amennyiben n 0-nal kisebb mindenkeppen az alapertelmezett TRUE-ra kell alltani,
k
ulonben hibat gener
al a f
uggveny.
13 http://www.perl.com/download.csp
14 http://www.45.free.net/vitus/ice/catdoc/#download
ADATOK OLVASASA
f
uggveny
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
43
7. t
abl
azat. Foreign csomag f
uggvenyek
r
ovid ler
as
S3 bin
aris
allom
anyt olvas
SAS XPORT form
atum
u konyvtarbol olvas ki informaciokat
DBF
allom
anyt olvas
Stata bin
aris
allomanyt olvas
Epi Info adat
allomanyt olvas
Minitab Portable Worksheet-et olvas
Octave sz
oveges adatallomanyt olvas
S3 bin
aris
allom
anyt olvas
SPSS adat
allom
anyt olvas
a read.xport segtsegevel egy tablat olvas ki SAS Permanent Dataset-bol
egy t
abl
at olvas ki a Systat File-bol
SAS XPORT form
atum
u konyvtarat olvas
DBF
allom
anyt r
Stata bin
aris formatum
u allomanyt r
t
abl
azatot r ki m
as statisztikai eszkoz szamara olvashato formaban
Karakterhat
arolt
allom
anyok
Karakterhatarolt
allom
anynak nevezem azokat az ASCII allomanyokat, amelyek adatokat karakter hatarolt ertekek15 form
aj
aban t
arolnak (csv ). A karakterhatarolt allomanyok R-be valo beolvasasat leginkabb a
read.table f
uggvennyel, illetve sz
armazekaival valosthatjuk meg. Ezek parameterezese lathato az alabbiakban.
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 f
uggveny lenyegeben abban k
ul
onbozik a read.table-tol, hogy az alapertelmezett mezoelvalaszto a
vessz
o (,). A read.csv2 f
uggvenynel a mez
oelvalaszto a pontosvessz
o (;), a tizedeseket elvalaszto jel pedig nem
pont (.) hanem vessz
o (,). A read.delim f
uggvenynel a mezoelvalaszto a \t vagyis tabulator, a tizedeseket
elvalaszto jel pedig pont (.). A read.delim2 f
uggvenynel a mezoelvalaszto ugyancsak \t, viszont a tizedeseket
elvalaszto jel nem pont (.) hanem vessz
o (,). Az egyes f
uggvenyek kozotti argumentumbealltasi eltereseket a 8.
tablazat mutatja.
8. t
abl
azat. A read.table f
uggvenycsoport k
ulonbsegei
f
uggveny
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 f
uggveny argumentumainak lerasa:
file
A beolvasand
o f
ajl neve. Ha nem alltottuk be a munkakonyvtarkent azt a konyvt
arat, ami tartalmazza az adott fajlt, akkor a teljes utat meg kell adnunk.
15 http://gisfigyelo.geocentrum.hu/kisokos/kisokos
csv.html
IRASA
ADATOK OLVASASA,
KEZELESE
ES
44
header
sep
quote
dec
row.names
col.names
as.is
na.strings
colClasses
nrows
skip
check.names
fill
strip.white
blank.lines.skip
comment.char
Ha az alapertelmezett FALSE ertekre van alltva, akkor a tablazat elso sorat nem
fejleckent, hanem elso adatsorkent olvassa be. TRUE eseten viszont a tablazatunk
els
o sor
at fejleckent olvassa be.
Az egyes mez
oket elvalaszto karaktert hatarozhatjuk meg. Az alapertelmezett ""
(white space) hat
arolo mezokent ertelmezi az egy vagy tobb sz
ok
ozt, a tabo(ka)t,
vagy az u
j sorokat.
A sz
oveges mez
ok jelzesere szolgalo karaktert gy adhatjuk meg. Az alapertelmezett
ertek a \"' jelsor. Ez a bealltas azt jelenti, hogy akar ", akar ' jelek fogjak kozre a
sz
ovegeket a t
abl
aban, a f
uggveny a beolvasott tablazatban szovegkent, de a jelek
nelk
ul fogja t
arolni azokat.
A lebeg
opontos ertekeket tartalmazo mezok beolvasanal tizedesjelkent ertelmezend
o jelet hat
arozza meg. Az alapertelmezes a pont (.).
A sorok neveit hat
arozhatjuk meg vele. Megadhatjuk tobbfelekeppen is. Az egyik
lehet
oseg, hogy egy vektorban adjuk meg a sorneveket, ebben az esetben figyelni
kell arra, hogy a vektor hossza megegyezzek a sorok szamaval. A sorneveket u
gy
is meghat
arozhatjuk, hogy megadjuk a tablazatnak azt az oszlopat, amelyik tartalmazza a neveket. Az adott oszlopot meghatarozhatjuk egy szammal (ami az
oszlop sorsz
ama), vagy az oszlop nevevel. Ha nem alltjuk be a sorneveket, akkor
egyszer
uen automatikusan sorszamozva lesznek.
Az oszlopnevek megadasara szolgal. Az oszlopok szamanak megfelelo hossz
usag
u
vektor form
aj
aban adhato meg. Ha header argumentumot FALSE-ra alltottuk,
akkor alapertelmezesben az oszlopok nevei a V es az oszlop sorszamabol jonnek
letre.
A read.table f
uggveny alapertelmezesben a szoveges mezoket faktorra alaktja.
Ez az argumentum lehetoseget ny
ujt az atalaktas kontrollalasara. Az alapertelmezese FALSE. Ha TRUE-ra alltjuk, akkor a szoveges mezok szovegeskent lesznek
beolvasva es nem alaktodnak at faktorra.
Vektorkent megadhato listaja azon ertekeknek, melyek eseten a f
uggveny hianyzo
erteket kell, hogy besz
urjon a hely
ukre a vegleges tablazatba. Alapertelmezett
erteke "NA".
Lehet
oseget ny
ujt arra, hogy az egyes mezok adattpusat megvaltoztassuk a beolvas
as sor
an. Egy vektorban sorolhatjuk fel (az oszlopok sorrendjeben) az atalaktas
eredmenyekent v
art tpusokat. Ha valamelyik mezon nem akarunk atalaktast vegezni, akkor annak NA erteket adunk meg.Az alapertelmezett ertek NA
A beolvasand
o sorok maximalis szamat hatarozhatjuk meg vele. Ha erteke negatv,
akkor az egesz t
ablat beolvassa a f
uggveny. Alaperteke -1.
Az
allom
any elejen beolvasas nelk
ul atugrando sorok szama. Alapertelmezese 0.
R
ogztett sz
eless
eg
u mez
ok
Olyan ASCII fajlokb
ol is olvashatunk adatokat, amelyekben nem karakterek hataroljak el az egyes mezoket. A
mezok szelessege ilyenkor r
ogztett karaktersz
am
u. Ilyen feladat eseten a read.fwf f
uggveny ny
ujt segtseget.
read.fwf(file, widths, header = FALSE, sep = "\t", as.is = FALSE,
skip = 0, row.names, col.names, n = -1, buffersize = 2000,
...)
A read.fwf f
uggveny read.table f
uggvenyt
ol elter
o argumentumainak lerasa:
ADATOK OLVASASA
widths
sep
n
buffersize
...
45
Az egyes mez
ok meretet hatarozhatjuk meg segtsegevel. Amennyiben egy rekord
egy sorban helyezkedik el, akkor egy vektorban kell megadnunk, a mezok hossz
usag
at meghat
aroz
o karakterhosszban. Ha a rekordjaink tobbsorosak, akkor listakent
kell megadnunk ezt az argumentumot.
Itt nem a forr
asf
ajl beli mezoelvalaszto karaktert jelenti, sot nem is szabad, hogy
az itt megadott jel szerepeljen a forrasallomanyban. Tulajdonkeppen belso haszn
alatra szolg
al
o, szeparalo karakter.
Megyegyezik a read.table f
uggveny nrows argumentumaval.
Az egyszerre beolvasando sorok szamanak bealltasara szolgal.
Tov
abbi read.line argumentumokat hasznalhatunk, kozt
uk a na.strings es
colClasses f
uggvenyeket is.
scan
A read.table es a read.fwf f
uggvenyek tulajdonkeppen a scan f
uggvenyre ep
ulnek, azonban ez utobbi kozvetlen
ul is hasznalhat
o. Mg a kor
abbi f
uggvenyek visszateresi objektuma data.frame, addig a scan vektort vagy
list
at ad vissza.
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 f
uggveny read.fwf es read.table f
uggvenyektol eltero argumentumainak lerasa:
file
what
nmax
n
nlines
flush
quiet
multi.line
Hasonl
oan az el
oz
okhoz, a beolvasando allomanyt adjuk meg vele. Ha azonban az
erteke az alapertelmezett "", akkor a billenty
uzetrol olvassa be a begepelt adatokat a meghat
arozott objektumba. A billenty
uzetrol valo adatbevitel befejezeset
vagy egy u
j sor kezdesevel, vagy egy EOF jel segtsegevel erhetj
uk el. Ez utobbit
Windowson Ctrl-D, Linuxon Ctrl-Z billenty
ukombinacioval adhatjuk meg.
A beolvasand
o adatok tpusat hatarozza meg. Ha listaban adjuk meg, akkor u
gy
ertelmezi a f
uggveny, hogy a fajl sorai rekordok, es a listaban meghatarozott adattpusok sorrendben a mezok-nek felelnek meg. A tamogatott tpusok: logical,
integer, numeric, complex, character, raw es list. A list olyan elemeket kell,
hogy tartalmazzon, amelyek az elozo hat tpusnak, vagy NULL-nak felelnek meg.
A beolvasand
o adatok elemsz
am
anak maximuma. Ha a what lista, akkor a maxim
alisan beolvasando rekordok szama. Amennyiben nem pozitv ertekkent adjuk
meg, a teljes adat
allomanyt beolvassa.
A beolvasand
o adatok elemsz
am
anak maximuma. Alapertelmezesben nincsen korl
atozva.
Ha pozitv sz
am, akkor a maximaliasan beolvasando sorok szamat hatarozza meg.
Ha az erteke TRUE, akkor a f
uggveny az utolso mezo olvasasa utan a sor vegere
ugrik. Ez lehet
ove teszi, hogy a az utolso mezo utan megjegyzeseket helyezhess
unk
el, es gy kiz
arjuk azt, hogy egy sorban tobb mint egy rekord legyen.
Ha az erteke az alapertelmezett FALSE, akkor a f
uggveny minden elem beolvasasa
ut
an kir egy sort a terminalba, jelezve azt, hogy hany elemet olvasott mar be.
A f
uggveny csak akkor veszi figyelembe, ha a what lista. Ebben az esetben, ha
FALSE-ra
alltjuk, akkor minden rekord egy sorba lesz beillesztve.
dget
A dput f
uggvennyel kirt objektum visszaolvas
asara hasznalhato f
uggveny (a dget(file) szintaxis szerint), ahol
a file az objektumot tartalmaz
o
allom
any.
Magyart
as
Elofordulhat, hogy munk
ank sor
an olyan ASCII-allomanyokat olvasunk be, amelyekben magyar ekezetes
bet
uket tartalmaz
o karakterl
anok, szavak fordulnak elo. Ilyenkor, ha a karakterek kodolasi bealltasa nem megfelelo, elofordulhat, hogy ezek az ekezetes karakterek a beolvasas utan nem a vart alakban jelennek meg. Az
aktualisan m
uk
od
o k
odol
ast a k
ovetkez
o m
odon olvashatjuk ki:
IRASA
ADATOK OLVASASA,
KEZELESE
ES
46
> Sys.getlocale(category = "LC_CTYPE")
[1] "Hungarian_Hungary.1250"
Az R alapbeallt
as
aban a magyar nyelvhez az Hungarian_Hungary.1250 kodolast hasznalja, ami a korabbi
peldakban bemutatott .csv
allom
any beolvas
asakor a kovetkezo eredmenyt adja:
> 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
'
u' 5 54
6 '\351' 6 60
Lathato, hogy a bet
uk nagyreszet hib
asan kodolta az R. Az alapkodolas helyett az 1251 vagy 1252 kodot
hasznalva karaktereink helyesen jelennek meg a terminalban. A bealltas a kovetezo modon tortenik:
> Sys.setlocale("LC_CTYPE", "Hungarian_Hungary.1252")
> read.csv2('d:/excel.csv', header=T)
a b c
1 'o' 1 NA
2 'a' 2 76
3 '' 3 23
4 'o' 4 34
5 '
u' 5 54
6 'e' 6 60
A kodolas beallt
as
at erdemes a munkafolyamat elejen elvegezni, mert ha egyszer a helytelen bealltassal elvegezt
unk mar a beolvas
ast, akkor az a k
odol
as m
ukodik a munkafolyamatban tovabbra is.
Adatb
azisok
Mi
ert haszn
aljunk adatb
azist?
Az R-ben az adatobjektumok a mem
ori
aban helyezkednek el es esetleg tobb valtozatban is jelen lehetnek
egy munkafolyamatban. Mivel az objektumok a memoriaban foglalnak helyet, ezert az R (jelenlegi formajaban)
a t
ul nagy adatallom
anyok kezelesehez nem a legjobb eszkoz. Nehany szaz megabajtos objektumok gyorsan
okozhatnak mem
oria-t
ulcsordul
ast.
Az R nem tamogatja az adatok konkurrens kezeleset: ha tobb felhasznalo dolgozik ugyanazzal az adatallomannyal, az egyik
altal letrehozott v
altoztat
as nem jelenik meg a masiknal.
Az adatbaziskezel
o rendszerek (DBMS), es k
ulonosen a relacios DBMS-ek (RDBMS) ezen hianyossagokon kepesek segteni, fobb el
onyeik a k
ovetkez
ok:
1. Gyors hozz
aferes nagy adatb
azisok egyes reszeihez
2. Az adatbazison bel
ul
osszest
o t
abl
azatok es kereszttablak letrehozasara igen hatekony eszkoz.
3. Az adatokat sokkal hatekonyabb form
aban lehet tarolni adatbazisokban, mint egyszer
u tablazatokban
vagy az R data.frame form
atum
aban.
4. Amellett, hogy egyszerre t
obb felhaszn
alo ferhet hozza az adatbazisban tarolt adatokhoz, ez biztonsagos
kapcsolaton kereszt
ul t
ortenhet, az illetektelenek kizarasaval.
Az adatbazisban t
arolt adatokb
ol az R-k
ornyezetbe nem kell teljes tablazatokat behvni es ezzel terhelni a
memoriat. Az adatb
azisban el lehet vegezni bizonyos elomunkalatokat a felhasznalando adatokon es csak a statisztikai elemzesben val
oban resztvev
o vagy
abrazolando adatok ker
ulnek az R-be, gy eroforrasokat szabadtva
fel.
Az R-hez tobbfele k
ozvetlen interfeszt fejlesztettek adatbazisok eleresehez (pl. RMySQL, RPgSQL) ezek kisebbnagyobb mertekben k
ovetik az u
j R-v
altozatokat. Rugalmasabb adatbazis elerest tesz lehetove az RODBC csomag,
ami ODBC -kapcsolaton kereszt
ul tud adatb
azisokat olvasni es rni. Az alabbiakban egy igen egyszer
u megoldast
mutatunk be, ahol egy Microsoft Access adatbazisbol egy tablazatot olvasunk ki. Itt az ODBC-kapcsolat nem
kvan meg azonost
ast es jelsz
ot m
as kapcsolatoknal (pl. PostgreSQL16 ) ez nem nelk
ulozheto.
16 http://www.postgresql.org/
ADATOK KIIRATASA
47
> library(RODBC)
> db <- odbcConnect('adatbazisom')
> tablazat <- sqlQuery(db, 'SELECT * FROM d_virus_emission')
Lathato, hogy az adatb
azis megnyit
asa ut
an, azon SQL lekerdezeseket lehet futtatni, a lekerdezes eredmenyekent
visszatero objektum data.frame.
SQLite
Az SQLite 17 adatb
azis-form
atum nagy hordozhatosagot tesz lehetove, mivel az adatbaziskezeleshez nem
sz
ukseges szerver. Nem t
ul nagy adatb
azisok kezelesehez hasznos formatum. Platformf
uggetlen es ingyenes. Tobb
teszt is azt bizonytotta, hogy gyorsabb a MySQL18 illetve PostgreSQL szervereknel. Az SQLite-adatbazisok
tervezesehez, kezelesehez remek grafikus fel
ulettel rendelkezo, platformf
uggetlen ingyenes szoftver a SQLite Database Browser 19 . Ha valaki pr
ob
alt m
ar t
obb tabla osszekapcsolasaval SQL-lekerdezeseket szerkeszteni, akkor
tudja, hogy milyen nagy segtseget ny
ujthat egy grafikus SQL-szerkeszto. Az Open Office 1.1 20 verzojahoz
21
letoltheto egy kiegesztes , aminek teleptese utan az Open Office Calc alkalmazassal kapcsolodni lehet SQLite-adatbazisokhoz es azokban k
onnyeden szerkeszthet
unk grafikus fel
uleten tobbtablas lekerdezeseket. Sajnos
jelenleg ez csak Linux alatt m
uk
odik, de gerik Windows alatt is m
ukodo verziojat is. Az alabbi kod egy SQLite
adatbazisbol SQL k
od segtsegevel olvas ki egy tablazatot.
>
>
>
>
>
library(RSQLite)
meghajto <- dbDriver("SQLite")
kapcsolat <- dbConnect(meghajto, dbname = "d:/vtr.db")
eredmeny <- dbSendQuery(kapcsolat, "select * from alpha")
adat <- fetch(res, n = -1)
Adatok kirat
asa
write
ncolumns
append
A kirand
o adat.
Vagy a celf
ajlt megado karakterlanc, vagy egy kapcsolat, amin kereszt
ul kirodik
az adat. Lehet "" is az erteke, akkor a mar korabban bealltott kapcsolatba r ki a
f
uggveny.
Lehet
ove teszi az oszlopok szamanak meghatarozasat a kirando adatokban.
Ha TRUE ertekre van alltva, akkor a file argumentumban megadott fajl tartalm
ahoz hozz
af
uzi az adatokat, ha az alapertelmezett FALSE, akkor fel
ulrja az
allom
anyt.
IRASA
ADATOK OLVASASA,
KEZELESE
ES
48
write.table
E f
uggveny segtsegevel az x objektumot (data.frame) rathatjuk ki egy fajlba, amiben karakterhatarolt szovegkent tarolodik.
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 f
uggveny write f
uggvenyt
ol elter
o argumentumainak lerasa:
quote
sep
eol
na
dec
row.names
col.names
qmethod
Vagy logikai erteket kell megadni, vagy numerikus vektort. Ha az erteke TRUE,
akkor a karakter es faktor oszlopok adatai idezojelek koze zarva lesznek kirva.
Ha numerikus vektorkent adjuk meg, akkor a vektorban azoknak az oszlopoknak
a sorsz
am
at adjuk meg, amelyek tartalmat idezojelek koze szeretnenk foglalni.
Mindket esetben mind az oszlop-, mind a sornevek idezojelekkel lesznek ovezve.
Ha az erteke FALSE, akkor egy cella sem lesz idezojelezve.
Ezzel
allthajuk be, hogy az adatallomanyban az egyes oszlopokat milyen hatarolo
karakter v
alassza el.
A sor veget jelz
o karakter(ek).
A hi
anyz
o adatot jelzo karakterlanc.
A tizedesjelkent hasznalatos karaktert hatarozza meg.
Ha az erteke TRUE, akkor a sorok nevei is ki lesznek rva a celallomanyba, ha
FALSE, akkor nem. Figyelni kell arra, hogy ha kiratjuk a sorneveket, akkor ugyan
egy u
jabb oszlopkent fog az megjelenni, de nem lesz az oszlopnak neve. Ez az
adatok kes
obbi visszaolvasasnal hibat eredmenyezhet.
Az oszlopok nevenek kiratasat meghatarozo logikai ertek. Ha TRUE, akkor kirodnak, ha FALSE, akkor nem.
Meghat
arozhatjuk, hogy a dupla idezojelek ("") hogyan jelenjenek meg a kirt
allom
version
envir
compress
A kirand
o objektumok neveit soroljuk itt fel.
Egy karaktervektorban megadhatjuk a mentendo objektumok mentesi elnevezeseit.
Vagy egy kapcsolat vagy egy fajlnev, ahova az objektumokat ratnank ki. Ha a
version erteke 1, akkor fajlnevkent kell megadni ezt az argumentumot.
Ha az erteke TRUE, akkor az objektumok ASCII formatumban lesznek kirva. Hasznos lehet k
ul
onb
ozo geptpusok kozotti adatatvitelnel. Az alapertelmezett FALSE
ertek bin
aris kir
ast eredmenyez.
A munkak
ornyezet formatumanak verziojara utal. Ha az erteke az alapertelmezett
ADATOK KIIRATASA
49
A kirand
o objektum.
Vagy egy karakterlanc, ami a celfajlra mutat vagy egy kapcsolat. Ha "" erteket
adunk meg, akkor a konzolra rja az objektumot.
A deparsing folyamat parameterezheto a segtsegevel. (A reszleteket lasd a
.deparseOpts ler
asanal.)
List
aban meghat
arozott egy vagy tobb kirando objektum neve.
IRASA
ADATOK OLVASASA,
KEZELESE
ES
50
A sink f
uggveny tov
abbi argumentumainak magyarazata:
file
type
split
Vagy a celf
ajlt megado karakterlanc, vagy egy kapcsolat, amin kereszt
ul kirodik
az adat.
Az alapertelmezett R-outputban a bealltasa "output". Ha atalltjuk "message"re, akkor csak prompt-, es a figyelmeztetes/hiba u
zenetek jelennek meg a termin
alban.
Ha az erteke TRUE, akkor az output a terminal mellett az u
j sinkbe is kirodik.
> sink("sink-kel.txt")
Az utastas vegrehajt
asa ut
an lefuttatott parancsok eredmenyekent eloallt outputok a terminal helyett a sink-kel.txt
fajlba rodnak ki. Az unlink(sink-kel.txt) utastassal torolhetj
uk a sink-fajlunkat.
history
A fenti mentesi lehet
osegek az objektumokra koncentralnak, de nem rogztik a munkafolyamatban hasznalt
parancsokat, illetve azok sorrendjet. A savehistory(file = ".Rhistory") utastassal menthetj
uk a lefuttatott
utastasok sorrendjet egy ASCII-f
ajlba. A mentett parancstortenetet a loadhistory(file = ".Rhistory")
utastassal tolthetj
uk be egy u
j R-munkak
ornyezetbe.
loadhistory(file = ".Rhistory")
savehistory(file = ".Rhistory")
history(max.show = 25, reverse = FALSE)
A history f
uggveny tov
abbi argumentumainak magyarazata:
max.show
reverse
A maxim
alisan megjelentett sorok szama. Ha Inf erteket adunk meg, akkor az
osszes elerhet
o sort visszaadja.
xtable
Az xtable konyvt
ar xtable f
uggvenyevel LATEX-, vagy HTML- formatumba alakthatunk at tablazatokat,
amiket kesobb fajlba is rhatunk tov
abbi dokumentumokba valo beagyazas caljabol.
xtable(x, caption=NULL, label=NULL, align=NULL, vsep=NULL, digits=NULL,
display=NULL, ...)
A xtable f
uggveny argumentumainak magyarazata:
x
caption
label
align
vsep
digits
display
...
ADATOK KIIRATASA
51
k
od
d
f
e, E
g, G
fg
s
9. t
abl
azat. A formatC ertekformalo kodjai
tpus
formatum
egesz sz
am
val
os sz
am xxx.xxx
val
os sz
am n.ddde+nn vagy n.dddE+nn
val
os sz
am n.dddde+nn vagy n.ddddE+nn
val
os sz
am xxx.xxx
sz
oveg
Grafika
Az R-kornyezet a nagysz
am
u statisztikai eljaras mellett a grafikai lehetosegek tarhazat is ny
ujtja. A statisztikai elemzesek k
ul
onb
oz
o, nagy rugalmass
aggal kezelheto grafikus megjelentese mellett sajat abratpusainkat
is meg tudjuk tervezni.
A grafikai eljarasokat haszn
alhatjuk interaktv es batch modban. Az utobbi altalaban az elobbi segtsegevel alaposan megtervezett grafik
ak rutinszer
u elkesztesere hasznalatos.
Az abrakat az R valamely u
gynevezett grafikai eszk
oz meghajt
o (graphics device driver) segtsegevel hozza letre.
Attol f
uggoen, hogy a sz
amos meghajt
o (10. tablazat) koz
ul melyiket hasznaljuk, az abrak megjelenthetok a
keperny
on, illetve f
ajlba rhat
ok. Miel
ott egy
abrat keszt
unk, el kell indtanunk egy meghajtot. Ha nem alltjuk
be ennek tpusat, akkor az R automatikusan egy grafikai ablakot nyit meg az abrazolashoz. Ez tulajdonkeppen
ugyanaz, mintha Windowson kiadn
ank a windows() utastast. A grafikaval kapcsolatos eljarasok harom fobb
csoportba oszthat
ok:
A magas szint
u grafikai elj
ar
asok letrehoznak egy abrat a grafikus eszkozon, annak tobb elemevel egy
utt
(pl.: tengelyek, cmkek, feliratok).
Az alacsony szint
u grafikai elj
ar
asok segtsegevel kiegeszto informaciokat jelenthet
ubk meg az aktv grafikai eszkoz
on lev
o
abr
ankon (pontok, vonalak, cmkek).
Az interaktv grafikai lehet
osegek segtsegevel az aktv grafikai eszkozon levo abrahoz adhatunk u
jabb
informaciot megjelent
o elemeket, vagy arrol ertekeket olvashatunk le. Mindezt az eger segtsegevel.
A grafikai eszk
oz be
allt
asai
Ha az R-konyezet alapbe
allt
as
at haszn
aljuk, akkor egy grafikus ablakba rajzoljuk a parancsokban megadott
abrainkat. Ha a munkafolyamat sor
an t
obb
abrat is keszt
unk, es szeretnenk, hogy ezek visszanezhetoek legyenek,
akkor vagy elmentj
uk azokat k
ul
on-k
ul
on f
ajlokba, vagy rogztj
uk a grafikai tortenetben.
T
obb grafikai eszk
oz
Arra is van lehet
oseg, hogy t
obb grafikus ablakunk legyen es a munkafolymat soran kesz
ulo abrak k
ulon
ablakokban egyszerre l
athat
ok legyenek. A 10. tablazat f
uggvenyeinek segtsegevel tudunk u
j grafikus eszkozt
megnyitni abraink kesztesere. Peldakeppen nyissunk meg eygszerre tobb eszkozt:
>
>
>
>
>
>
>
windows()
pdf()
postscript()
png()
jpeg()
windows()
windows()
Letrehoztunk teh
at het eszk
ozt, amire
abr
akat keszthet
unk. Ha egyszerre tobb grafikai eszkozt hasznalunk,
akkor figyelni kell arra, hogy egyszerre csak az egyik eszkoz lesz aktv. Az aktualisan kiadott utastasok mindig az aktv eszk
ozre lesznek kirajzolva. Ha letrehozunk egy u
j eszkozt, akkor az lesz az aktv, mg a tobbit
inaktivizaljuk. Fontos, hogy figyelj
unk arra, hogy ha a letrehozott eszkoz grafikus ablak (pl.: windows()), akkor
az R-kornyezet f
okusza arra ker
ul
at. Ez azt jelenti, hogy amikor kiadtuk a konzolon az utastast, az enter
megnyomasaig a f
okusz ott volt, azut
an pedig mar a grafikus ablakon lesz. Ennek gyakorlati jelentosege az, hogy
hiaba kezd
unk el gepelni vagy beilleszteni u
jabb kodokat, azok nem ker
ulnek be a konzolra, mert az aktv ablak
a grafikus ablak. A f
okuszt az egerrel a konzolra kattintva tudjuk visszahelyezni. A munka soran lekerdezhetj
uk,
hogy milyen grafikus eszk
ozeink vannak megnyitva. Ez a dev.list() f
uggvennyel lehetseges.
52
ITASAI
BEALL
A GRAFIKAI ESZKOZ
utast
as
X11()
windows()
quartz()
postscript()
pdf()
png()
jpeg()
bitmap()
pictex()
xfig()
bmp()
win.metafile()
win.print()
53
10. t
ablazat. Grafikai meghajtok
r
ovid ler
asa
A grafikus ablak X11 window rendszereken valo hasznalatahoz (pl.
Linux).
A grafikus ablak Windowson valo hasznalatahoz.
A grafikus ablak MacOS X kornyezetben valo hasznalatahoz.
PostScript printeren valo nyomtatashoz, vagy PostScript tpus
u
f
ajlba r
ashoz.
PDF f
ajlba valo rashoz.
PNG pixelgrafikus allomany letrehozasahoz.
JPEG pixelgrafikus fajl kesztesehez.
Bitmap f
ajlba rja a kepet.
A TEX, illetve LATEX allomanyokba beillesztheto formaban rja ki
az
abr
at egy .tex allomanyba. A \usepackage{pictex} sz
ukseges.
Xfig grafik
at hoz letre.
BMP
allom
anyba rja az abrat.
Windos Metafajlba rja ki az abrat.
A nyomtat
ora k
uldi az abrankat.
> dev.list()
windows
pdf
2
3
png:Rplot%03d.png jpeg:75:Rplot%03d.jpg
5
6
windows
8
postscript
4
windows
7
54
GRAFIKA
eszkzfellet
braterlet
rajzterlet
k m3
k m4
b m3
b m4
b m2
b m1
k m2
k m1
7.
abra. Grafikai eszkoz reszei
f
uggveny egy speci
alis esete az el
oz
oknek, mivel ennek segtsegevel EPS allomanyba rhatjuk ki az eszkozon
kesztett abrankat. A dev.control(displaylist = c("inhibit", "enable")) segtsegevel az adott eszkozon
rogzthetj
uk az egym
as ut
an megjelen
o
abr
akat, gy visszanezhetj
uk azokat. Ha a displaylist argumentumot
"inhibit" ertek
ure
alltjuk, akkor kikapcsoljuk a rogztest, ha "enable" ertekre, akkor bekapcsoljuk. Ha rogzteni akarjuk a kepeket, akkor az
abra letrehozasa elott kell ezt az utastast bealltanunk. A dev.copy f
uggveny
csak bekapcsolt r
ogztes eseten m
uk
odik.
A grafikai felu
ese
let szerkeszt
A 7. abran lathat
ok a grafikai eszk
oz reszei es azok alapbealltas szerinti elrendezese. Az R-kornyezetben
lehetoseg
unk van a fel
ulet reszeinek, illetve elrendezes
uknek atszabasara. A grafikai fel
ulet testreszabasara hasznalhatjuk a layout, es a split.screen f
uggvenyt es a grafikai parametereket. (A grafikai parameterek lerasa
az 58. laptol olvashat
o.)
layout
A layout f
uggveny az eszk
ozfel
uletet alablakokra darabolja fel, az argumentumban megadott matrixnak, illetve
az oszlopszelesseg es sormagass
ag ertekeinek megfeleloen.
layout(mat, widths = rep(1, dim(mat)[2]), heights = rep(1, dim(mat)[1]),
respect = FALSE)
layout.show(n = 1)
lcm(x)
A layout f
uggveny argumentumainak r
ovid lerasa:
ITASAI
BEALL
A GRAFIKAI ESZKOZ
55
[1,]
[2,]
[,1] [,2]
2
0
1
3
> nf <- layout(m, widths = c(3, 1), heights = c(1, 3), TRUE)
> layout.show(nf)
8.
abra. A grafikai fel
ulet atszabasa a layout f
uggvennyel I.
mat
widths
heights
respect
n
x
M
atrix form
aj
aban adhatjuk meg a kialaktando alablakok szamat, aminek minden cell
aja 0 vagy pozitv egesz szam lehet. Egy szam tobbszor is szerepelhet a
m
atrixban, viszont hianyos sorozat eseten hibat general a f
uggveny. A 0 ertek
u
cell
anak megfelel
o alablakba nem ker
ul majd abra.
Vektorban adhatjuk meg az oszlopok szelesseget. Relatv szelesseget numerikus
vektorban adhatunk meg. Az abszol
ut szelesseget centimeterben, az lcm f
uggveny
segtsegevel adhatjuk meg.
Az oszlok magass
agat adhatjuk meg e f
uggveny segtsegevel, a widths argumentumhoz hasonl
oan.
Vagy logikai ertekkent adjuk meg, vagy matrixkent. Az utobbi esetben a matrix
meretenek meg kell egyeznie a mat argumentumban megadott matrix meretevel.
A m
atrix cell
ak erteke 0 vagy 1 lehet.
A kirajzoland
o
abrak szama.
Azt a dimenzi
ot adhatjuk meg vele, ami centimeterben lesz ertelmezve.
A 8. abran lathat
o grafikai fel
uletszerkezet a felette lathato matrixra ep
ul. Megfigyelheto, hogy a jobb felso sarokban nem jon letre alablak, ennek az oka, hogy az alapmatrixban a masodik cella erteke 0. Az is megfigyelheto,
hogy a layout f
uggveny widths argumentuma c(3,1) erteket vett fel, aminek az lesz az eredmenye az abran,
hogy a bal oszlopban elhelyezked
o ket cella (2,1) haromszor olyan szeles, mint a jobb oszlopban levo cella (0,3).
A sorok magassag
aban tapasztalhat
o k
ul
onbsegek a heights ertekei miatt keletkeztek.
A letrehozott u
j szerkezetbe ezek ut
an berajzolhatok az abrak. Azt, hogy az adott abra melyik alablakba ker
uljon, a rajzutast
asok sorrendjeben hat
arozhatjuk meg. Az elozo peldaban letrehozott alablakokba rajzolasra
lathato pelda a 9.
abr
an.
split.screen
A split.screen f
uggvennyel az eszk
ozfel
uletet reszekre vaghatjuk. Ezek k
ulon-k
ulon kepernyokent kezelhe
tok, rajzolhatok es t
or
olhet
ok. A screen segtsegevel kivalaszthatjuk azt az alablakot, amelyikkel dolgozni
szeretnenk. Az erase.screen t
orli a meghat
arozott kepernyot, a close.screen pedig torli a meghatarozott
ablak definciojat.
56
>
>
>
>
>
>
>
>
>
>
+
GRAFIKA
= FALSE)
= FALSE)
9.
abra. A grafikai fel
ulet atszabasa a layout f
uggvennyel II.
GRAFIKAI FUGGV
AZ ALAPTELEPITES
ENYEI
57
screen
erase
n
new
all.screens
Az alaptelept
es grafikai fu
enyei
ggv
Magas szint
u grafika
A magas szint
u grafikai f
uggvenyek minden esetben u
j abrat generalnak az eppen aktv grafikai eszkozon,
egyszersmind az adott grafikai eszk
oz addigi tartalma torlodik. E f
uggvenyek eredmenyekent a tengelyek, cmkek
es feliratok automatikusan jelennek meg, ha azokat alapertelmezesben hasznaljuk.
Az alapteleptesben elerhet
o magas szint
u grafikai f
uggvenyek: assocplot, barplot, boxplot, coplot, contour,
curve, dotchart, filled.contour, fourfoldplot, hist, image, interaction.plot, matplot, mosaicplot,
pairs, persp, pie, plot, qqnorm, qqplot, stars, sunflowerplot, symbols, termplot, ts.plot. A f
uggvenyek
argumentumai igen nagy sz
am
uak is lehetnek. A reszletekre nem kiterve a kozos argumenumok rovid lerasa
alabb olvashato:
add
axes
log
main
sub
type
xlab, ylab
Alacsony szint
u grafikai utast
asok
Az alapteleptes alacsony szint
u grafikai f
uggvenyei: abline, arrows, axis, contour, grid, legend, lines,
mtext, points, polygon, rect, segments, qqline, text, title.
58
GRAFIKA
>
>
>
>
x <- rnorm(26,0,1)
y <- rnorm(26,0,1)
plot(x,y)
identify(x,y,labels=LETTERS)
Az azonostand
o pontok szama.
Az erteke "n" (nem rajzol ), "p" (pontot rajzol ), "l" (vonalat rajzol ) vagy "o"
(pontot es vonalat rajzol ) lehet.
Egyeb grafikai parameterek adhatok meg.
x <- rnorm(26,0,1)
y <- rnorm(26,0,1)
plot(x,y)
locator(n=3,type="p",pch=13)
Grafikai param
eterek
A grafikai parameterek be
allt
as
ahoz, illetve lekerdezesehez a par f
uggvenyt hasznalhatjuk. Az egyes grafikai
parametereket a par f
uggveny argumentumakent allthatjuk be param
etern
ev =
ert
ek formaban, de megadhatjuk listakent is. Az aktu
alis parameterbe
alltasokat a par() vagy a par(no.readonly=TRUE) utastasokkal
kerdezhetj
uk le. A csak olvashat
o es nem rhato argumentumok neve elott a jel lathato.
GRAFIKAI FUGGV
AZ ALAPTELEPITES
ENYEI
adj
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
59
A sz
oveges elemek igaztasat allthatjuk be vele. A 0 ertek balra igazt, az 1 jobbra,
mg a 0.5 k
ozepre. Megadhatjuk c(x,y) formaban is, ekkor a vzszintes es f
uggoleges ir
anyban k
ulon allthatjuk be ezt a tulajdonsagot.
Ha FALSE erteket adunk meg, akkor a magas szint
u f
uggvenyeknel nem jelennek
meg feliratok. Az alapertelmezett ertek TRUE.
Logikai argumentum. Ha az erteket TRUE-ra alltjuk, akkor egy u
j rajz letrej
otte
el
ott, a felhaszn
al
otol jovahagyast ker.
A h
atter sznet
allthatjuk be vele.
Karakterl
anc, aminek segtsegevel meghatarozhatjuk, hogy az abrat hatarolo doboz milyen vonallal legyen kirajzolva.
"o" teljes keretet rajzol
"l" baloldali es also oldalakat rajzol
"7" jobboldali es felso oldalakat rajzol
"c" baloldali, also es felso oldalakat rajzol
"u" baloldali, also es jobboldali oldalakat rajzol
"]" als
o, jobboldali es felso oldalakat rajzol
"n" nem rajzol keretet
Sz
amertek, ami a megjelentett szoveg, illetve szimbolum meretet alltja be, az
alapertelmezett ertekhez (1) viszonytva.
A tengelyfeliratok meretenek az aktualishoz viszonytott nagytasi merteke.
Az x es y cmkek meretenek az aktualishoz viszonytott nagytasi merteke.
A f
ocm meretenek az aktualishoz viszonytott nagytasi merteke.
Az alcm meretenek az aktualishoz viszonytott nagytasi merteke.
H
uvelykben megadott karaktermeret (szelesseg, magassag).
A rajzol
ashoz hasznalatos szn.
A tengelyfelirathoz hasznalt szn.
Az x es y cmkekhez hasznalt szn.
A f
ocmhez haszn
alt szn.
Az alcmhez haszn
alt szn.
Az alapertelmezett karaktermeret pixelben (szelesseg, magassag).
Sz
amertek, amivel meghatarozhatjuk, hogy egy karakter hany fokkal legyen elforgatva. Nem t
ul intelligens argumentum, mivel csak a 90 fok tobbszoroset kepes
ertelmezni.
Az alapertelmezett karaktermagassag, h
uvelykben.
Az alapertelmezett karaktermeret (szelesseg, magassag) a felhasznaloi mertekegysegben. A par("cxy")=par("cin")/par("pin"). Megjegyzendo, hogy a
c(strwidth(ch), strheight(ch)) hasznalata az adott ch karakterlanchoz sokkal pontosabb.
A grafikai eszk
oz dimenzioi (szelesseg, magassag) h
uvelykben.
Hiba
uzenet. Nem m
uk
odik!
A rajzhoz haszn
alt bet
ucsalad neve. Minden grafikus eszkozon egyforma, bar neh
any nem engedi az atalltasat. Az alapertelmezett ertek "". Standard ertekei
"serif", "sans", "mono" es "symbol". Egyes eszkozokon mas csaladok is haszn
alhat
ok.
Az
abra el
oterenek rajzolasahoz hasznalt szn. Ezel a sznnel fog megjelenni a keret,
a tengely.
Egy c(x1, x2, y1, y2) formaban megadhato NDC vektor, ami meghatarozza az
abrater
60
GRAFIKA
lab
las
lend
lheight
ljoin
lmitre
lty
lwd
mai
mar
mex
mfcol, mfrow
mfg
mgp
mkh
new
oma
omd
omi
INTERAKTIV VIZUALIZACI
pch
pin
plt
ps
pty
smo
srt
tck
tcl
tmag
type
usr
xaxp
xaxs
xaxt
xlog
xpd
yaxp
yaxs
yaxt
ylog
61
Interaktv vizualiz
aci
o
Szamos fejlesztes
all rendelkezesre interaktv vizualizacios feladatok megoldasara. Egyesek teleptesehez sz
ukseges az R-kornyezeten kv
ul egyeb k
ornyezet vagy meghajtok. Az iplots22 es a KLIMT23 JAVA kornyezetet
igenylo eszkoz, az R-rel val
o kommunik
aci
ojukhoz sz
ukseges az rJava csomag is. Az xgobi u
jabb valtozata a
22 http://www.rosuda.org/iPlots/
23 http://www.rosuda.org/KLIMT/
62
Histogram of rnorm(300, 0, 1)
50
0 10
30
Frequency
30
0 10
3
1 2 3
rnorm(300, 0, 1)
Histogram of rnorm(300, 0, 1)
Histogram of rnorm(300, 0, 1)
40
0
20
40
Frequency
60
60
rnorm(300, 0, 1)
20
Frequency
50
Histogram of rnorm(300, 0, 1)
Frequency
>
>
>
>
>
>
GRAFIKA
rnorm(300, 0, 1)
rnorm(300, 0, 1)
TRELLIS
63
10
11
12
13
14
15
16
17
18
19
21
22
23
24
20
11.
abra. A pch kodok 0-tol 24-ig
ggobi24 vizualizaci
os rendszerrel is kialakthato egy
uttm
ukodes a Rggobi csomag teleptesevel.
Az OpenGL25 kornyezetre ep
ul
o rgl es djmrgl csomagok segtsegevel nem csak letrehozhatunk haromdimenzios
grafikakat, fel
uleteket, hanem azokat terben forgathatjuk, nagythatjuk es mozgathatjuk. Pelda az rgl csomag
lehetosegeire:
>
>
>
>
>
>
>
>
>
>
>
>
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 grafikai k
ornyezetet eredetileg t
obbvaltozos adatallomanyok valtozoi kozottt fennallo kapcsolatok,
interakciok exploratv vizualiz
aci
oj
ara fejlesztettek ki26 , es az S/S-plus kornyezetben implementaltak eloszor. Az
R-kornyezetben a lattice es ennek alapj
at jelento grid konyvtarak tartalmazzak azokat a f
uggvenyeket, amelyekkel Trellis tpus
u vizualiz
aci
ot val
osthatunk meg. Itt is beszelhet
unk magas, illetve alacsony szint
u grafikai
f
uggvenyekrol, ezek azonban elternek az alapcsomag grafikai f
uggvenyeitol. A trellis.device() hasznalhato
a trellis grafikai eszk
oz megnyit
as
ara.
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
u fu
enyek
ggv
A kovetkezo magas szint
u grafikai f
uggvenyek hasznalhatok a trellis grafikai abrak letrehozasaban: barchart,
bwplot, cloud, contourplot, densityplot, dotplot, histogram, levelplot, parallel, qq, qqmath, rfs,
splom, stripplot, tmd, wireframe, xyplot.
Alacsony szint
u fu
enyek
ggv
Az elozo f
uggvenyekkel letrehozott
abr
akat kiegeszthetj
uk egyeb grafikai elemekkel, amire a kovetkezo f
uggvenyeket hasznalhatjuk: larrows, llines, lplot.xy, lpoints, lsegments, lsegments, ltext, panel.arrows,
panel.lines, panel.points, panel.segments, panel.text.
Grafikai param
eterek
Az egyes grafikai parameterek aktu
alis erteket a trellis.par.get() f
uggveny segtsegevel kerdezhetj
uk
le. Az egyes parametereket
at
allthatjuk a lset, a canonical.theme vagy a trellis.par.set() f
uggvenyek
segtsegevel. Az ut
obbi megold
as haszn
alata javasolhato leginkabb.
Programoz
as R-ben
Az R az egyszer
ubb-bonyolultabb utast
asok mellett lehetoseget ny
ujt komplex feladatok megvalostasara is.
Ezen feladatok altal
aban nem oldhat
ok meg egy-egy utastas lefuttatasaval, hanem programozast igenyelnek,
amikor is tobb (esetleg vezerl
ok
on kereszt
ul egymasra ep
ulo) utastast hasznalunk ciklusokba rendezve, felteteles
el
agaz
asokba terelve a folyamatokat. Amellett, hogy az R gazdag f
uggvenytarat hasznalhatjuk ezekben a prog
ramokban, magunk is keszthet
unk f
uggvenyeket. Erdemes
sajat f
uggvenyt keszteni olyan gyakran elofordulo,
as
ara, amire nem talaltunk kesz f
uggvenyt az R-kozosseg keszleteben. Ha tobb ilyen
osszetett feladatok megold
f
uggvenyt kesztett
unk m
ar es ezeket gyakran szeretnenk hasznalni, akkor letrehozhatunk saj
at csomagot is,
ami ezeket tartalmazza.
Az R-programok r
as
ahoz erdemes olyan sz
ovegszerkesztot hasznalni, ami egy
uttm
ukodik az R-kornyezettel
(Emacs, Xemacs). A programk
od szerkesztesehez nagy segtseget ny
ujt, ha a szovegszerkesztonk rendelkezik az
R-nyelvnek megfelel
o szintaktikai kiemelessel (Tinn-R).
Vez
erl
ok
Itt vezerloon a ciklusszervez
o eszk
oz
oket es a felteteles utastasokat ertj
uk. Mindket vezerlotpus eseten
gyakran kell megfogalmaznunk felteteleket. Ezekhez az R-ben, mint mas programozasi nyelvekben is, hasznalunk
osszehasonlto, illetve logikai oper
atorokat (11. es 12. tablazat).
Ciklusok
A cikluskepzes vagy looping azt jelenti, hogy egy utastast vagy blokkot ismetelten futtatunk le. Kifejezetten
a ciklusok kezelesere az R h
arom utast
assal rendelkezik, ezek a for, a while es a repeat . Mindharom utastas
az utoljara ertelmezett utast
as erteket adja vissza. Itt is lehetseges, habar ritkan alkalmazott megoldas, hogy
az eredmenyt egy objektumnak adj
ak
at. A cikluson bel
uli folyamatellenorzesre tovabbi ket beeptett szerkezet
erheto el: a next es a break. A break es a next utastasokkal kilephet
unk egy ciklusbol, illetve a ciklus kovetkezo
elemere ugorhatunk. Mindkett
ore igaz, hogy az utanuk allo utastasok nem ertelmezodnek.
Az R-ben elerhet
ok egyebb utast
asok is, amelyek tulajdonkeppen hurkolasokat vegeznek, ilyenek az apply, a
lapply, a mapply es a tapply. Egyebkent tobb operator, k
ulonosen az aritmetikaiak vektoriz
altak, gy ciklus
nelk
ul is minden elemen vegrehajt
odik a m
uvelet.
A ciklusszervezo f
uggvenyek szintaxisa:
for(var in seq) expr
while(cond) expr
repeat expr
break
next
A ciklusszervezo f
uggvenyek argumentumainak lerasa:
11. t
abl
azat.
oper
ator
<
>
<=
>=
==
!=
Osszehasonl
to operatorok
jelentes
kisebb mint
nagyobb mint
kisebb vagy egyenlo
nagyobb vagy egyenlo
egyenlo
nem egyenlo
65
R-BEN
PROGRAMOZAS
66
12. t
ablazat. Logikai operatorok
operator jelentes
!x
nem
x&y
es
x && y es
x|y
vagy
x || y
vagy
xor(x, y) exkluzv vagy
cond
var
seq
expr
Egyelem
u vektor, amiben meghatarozzuk a feltetelt. Az erteke nem lehet NA. Ha
t
obb elemb
ol
all
o vektorkent adjuk meg, akkor (hiba
uzenet mellett) a vektor elso
elemeben meghat
arozott feltetel szerint fut le a f
uggveny.
Egy v
altoz
o neve.
Egy vektor (beleertve a listat is).
Kifejezes(ek), ha tobb soros kifejezes-sorozat, akkor blokkban kell elhelyezni.
for
A for ciklusban egy vektor hossz
aban hat
arozhatjuk meg, hogy az adott utastas(oka)t hanyszor ismetelje meg
az R-kornyezet .
for (v
altoz
o in vektor)
utas
t
as1
A vektor lehet vektor vagy lista is. A f
uggveny mintegy vegigfut a vektoron es minden elemenel vegrehajtja
az utas
t
as1 parancsot. A ciklus befejezesekor a v
altoz
o nev
u valtozo tovabbra is elerheto lesz, es erteke a
vektor utolso elemevel egyezik meg.
> for (i in 1:3) cat(i, '\n')
1
2
3
repeat
A repeat utastas mindaddig ismetli az adott utastas ertelmezeset, amg az sz
ukseges. Ez a lehetoseg egyben
veszelyes is mert, k
onnyen vezethet vegtelen ciklushoz. A szintaxis a kovetkezo:
repeat utas
t
as
Az utastasnak blokkot kell form
alnia. Ahhoz, hogy kontrollalni tudjuk a folyamatot, a blokkon bel
ul el kell
helyezni egy kilepesi feltetelt is.
> i <- 0
> repeat {
+
i <- i + 1
+
cat(i, '\n')
+
if (i == 3) break}
1
2
3
while
Hasonlo az elozoh
oz, azonban mag
aban a f
uggvenyben lehetoseg van a folyamat kontrollalasara.
while ( felt
eteles utas
t
as ) utas
t
as
A ciklusban elhelyezett utast
asok addig ismetlodnek, amg a felteteles utastasban meghatarozott feltetel igaz,
ha az hamis, akkor a ciklus befejez
odik. Ha az utastas soha nem ertekelodik, akkor NULL erteket ad vissza,
egyebkent pedig mindig az utolj
ara lefuttatott utastas eredmenyet.
OK
VEZERL
67
> i <- 1
> while (i < 4) {
+
cat(i, '\n')
+
i <- i + 1}
1
2
3
Felt
eteles utast
asok
if
Az if, illetve if/else utast
as feltetelesen ertelmez ket utastast. Amennyiben a megadott feltetel erteke igaz,
akkor az elso utast
as ertelmez
odik, egyebkent a masodik. A szintaxis:
if ( felt
eteles utas
t
as )
utas
t
as I.
else
utas
t
as II.
Ha a felteteles utast
as eredmenye nem logikai vagy numerikus, akkor hiba
uzenetet kapunk. Az if/else utastas
lehetoseget ad numerikus problem
ak (pl. a negatv szam logaritmusa) elker
ulesere. Minthogy az if/else egy
utastas, lehetoseg van arra, hogy az eredmenye ertekadas soran atadodjek egy objektumnak. A kovetkezo ket
pelda ugyanazt az eredmenyt adja:
>
>
+
+
>
>
n <- 2
if (n > 0)
{k <- n} else
{k <- 0}
k <- if (n > 0) n else 0
k
[1] 2
Az else kitetel nem k
otelez
o. Amennyiben az if utastas nincsen blokkban, es van else kitetel, akkor annak
ugyanabban a sorban kell szerepelnie, mint az if-nek. Ha nem gy van, akkor a szintaktikailag teljes sor az u
j sor
hatasara ertelmez
odik. Ha az if utast
as blokkban van, es else kitetelt is hasznalunk, akkor az else az if-et
lezaro kapcsos zar
ojellel (}) egy sorban kell, hogy kezdodjek. Az if/else utastasokat egymasba is agyazhatjuk:
if ( felt
eteles utas
t
as I.)
utas
t
as I.
else if ( felt
eteles utas
t
as II.)
utas
t
as II.
else if ( felt
eteles utas
t
as III.)
utas
t
as III.
else
utas
t
as IV.
Az else if utastasok sz
am
anak nincsen korl
atja.
ifelse
Az ifelse f
uggveny haszn
alata egyszer
usti az if/else kifejezes-kombinaciot. Mg a korabbi if f
uggvenyt
alternatv kifejezes nelk
ul is lehet haszn
alni, az ifelse-t csak azzal egy
utt. Segtsegevel ciklusba agyazas nelk
ul
lehet objektumok elemeit tesztelni, es ertek
uktol f
uggo ertekadasokat elvegeztetni.
ifelse(test, yes, no)
A ciklusszervezo f
uggvenyek argumentumainak lerasa:
test
A feltetelt meghat
arozo kifejezes.
yes
Ha feltetel eredmenye TRUE.
no
Ha feltetel eredmenye FALSE.
Az if/else f
uggveny haszn
alat
aval egyez
o eredmenyt ado formula:
R-BEN
PROGRAMOZAS
68
> n <- 2
> k <- ifelse(n > 0, n, 0)
> k
[1] 2
Ha egy elemnel t
obbel rendelkez
o objektumon hasznaljuk a f
uggvenyt, akkor megsporolhatunk egy ciklust:
Peldak:
> x <- rnorm(123, mean=0, sd=1)
> switch("mean",
+
mean = cat('
atlag: ', mean(x), '\n'),
+
median = cat('medi
an: ',median(x, '\n')),
+
trimmed = cat('trimmelt
atlag: ',mean(x, trim = .1), '\n'))
atlag:
0.0910466
Saj
at fu
enyek k
eszt
ese
ggv
A function f
uggveny segtsegevel letrehozhatunk sajat f
uggvenyeket.
function( arglist ) expr
return(value)
A function es return f
uggvenyek argumentumainak lerasa:
arglist
expr
value
Egy vagy t
obb nevet sorolhatunk fel, amelyek a f
uggveny argumentumai lesznek.
Meg lehet adni egyszer
uen a nevet, vagy a nevet es a hozza kapcsolodo kifejezest egy
utt (name=expression). Arra is van lehetoseg, hogy nem adunk meg egy
argumentumot sem.
Egy vagy t
obb kifejezes, amit a f
uggveny
unk vegre fog hajtani.
A f
uggveny visszateresi erteke, amely egy kifejezes vagy egy objektum.
Az alabbi egyszer
u peld
aban l
athat
o, hogy eloszor meg kell szerkeszten
unk, definialnunk a f
uggvenyt, annak
argumentumaival, illetve a f
uggveny belsejeben m
ukodo utastasokkal egy
utt. Miutan megszerkesztett
uk a
f
uggveny
unket, be is kell t
olten
unk, ami tulajdonkeppen a function f
uggveny futtatasat jelenti. Vegy
uk eszre,
hogy itt az ertekad
ashoz nem a <-, hanem a = jelet hasznaljuk. Miutan betoltott
uk az u
j f
uggvenyt, az a szokasos
modon meghvhat
o. A f
uggveny
unket egyszer
uen vegrehajtathatjuk, vagy (ertekadas u
tjan) egy objektumnak
adhatjuk at az erteket. F
uggveny defini
al
as
anak es hasznalatanak lepesei:
1. A f
uggveny defini
al
asa es bet
oltese:
>
+
+
+
FUGGV
ITESE
SAJAT
ENYEK
KESZ
69
13. t
ablazat. String-f
uggvenyek
f
uggveny neve
cat
deparse
formatC
grep
match, pmatch
nchar
parse
paste
strsplit
sub, gsub
substring
toupper, tolower
2. A f
uggveny meghv
asa:
> elso.fuggvenyem(23)
[1] 24
Ebben az egyszer
u peld
aban a f
uggveny
altal vegrehajtott m
uveletek (osszeadas) eredmenye nem t
ul elegans,
erdemes lenne egyertelm
ubbe tenni az outputjat.
A kovetkezo peld
aban egy olyan f
uggvenyt definialunk, mely egy numerikus vektorbol nehany fobb lero statisztikat szamt, es azok eredmenyet egy k
onnyen ertelmezheto outputba rja ki.
> leiro.statisztikak <- function(x)
+ {
+ leirok = paste('Elemsz
am:', '\t',length(x), '\n',
+ 'Atlag:', '\t', '\t', round(mean(x),3), '\n',
+ 'Sz
or
as:', '\t', '\t', round(sd(x),3), '\n',
+ '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 f
uggvenyben tov
abbi f
uggvenyeket hasznaltunk. A paste string-f
uggveny (13. tablazat) segtsegevel
az argumentumkent megadott elemeket karakterlancca alaktja es osszef
uzi. A paste f
uggvenyben ketfele specialis karaktert k
odol
o karakterl
anc is l
athat
o: a \t es a \n. Az elozo a tab-ot, az utobbi az u
j sor t kodolja
(14. tablazat). A f
uggveny
unkben haszn
alt lero statisztikak szamtasat vegzo f
uggvenyek es a round f
uggveny
(15. tablazat) eredmenyei szinten a paste argumentumai. A f
uggveny
unk tulajdonkeppen osszef
uzi a sz
oveges
elemeket, es a sz
oveges elemme alaktott sz
amtott ertekeket a leirok objektumba rja be. Vegy
uk eszre, hogy
az ertekadasnal nem a szok
asos <-, hanem a = jelet hasznaltuk. Az utolso sorban levo return(leirok) parancs a f
uggveny visszateresi erteket hat
arozza meg. Ez azt jelenti, hogy ha meghvjuk a leiro.statisztikak
f
uggveny
unket, akkor annak eredmenye a leirok objektum tartalma lesz.
> x <- rnorm(123, mean=0, sd=1)
> res <- leiro.statisztikak(x)
> cat(res)
Elemsz
am:
Atlag:
Sz
or
as:
Variancia:
Minimum:
Maximum:
123
-0.081
0.985
0.97
-2.157
2.247
A peldaban gener
alunk egy veletlen sz
amokat tartalmazo vektort, ami a f
uggveny meghvasakor annak argumentuma lesz. F
uggveny
unk eredmenyet egy ertekadason kereszt
ul berjuk a res objektumba. A res objektumot a
cat f
uggvennyel form
azzuk, es kiratjuk a terminalba.
R-BEN
PROGRAMOZAS
70
14. t
ablazat.
k
odolas
\'
\"
\n
\r
\t
\b
\a
\f
\v
\\
R-f
uggveny
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
Specialis karakterek
eredmenye
aposztrof
idezojel
u
j sor
soremeles
horizontalis tab
backspace
hangjelzes
oldaltores
f
uggoleges tab
backslash
15. t
abl
azat. Altal
anos f
uggvenyek
r
ovid lerasa
negyzetgyok
termeszetes logaritmus
10 alap
u logaritmus
exponencialis
abszol
ut ertek
a legkozelebbi egesz szamra kerekt
felfele kerekt
lefele kerekt
szinusz, koszinusz, tangens
arkusz szinusz, arkusz koszinusz, arkusz tangens
x elemeinek osszege
x elemeinek szorzata
x legnagyobb erteke
x legkisebb erteke
x melyik eleme x legnagyobb erteke
x melyik eleme x legkisebb erteke
x terjedelme, megyegyezik a c(min(x), max(x)) vektorral
x elemszama
x lemeinek atlaga
x elemeinek medianja
x elemeinek varianciaja (n-1 alap
u), ha x egy matrix vagy
data.frame variancia-kovariancia matrix az eredmeny
ha x matrix vagy data.frame, akkor korrelacios matrix (ha vektor,
akkor 1)
kovariancia x es y kozott, ha x es y matrix vagy data.frame, akkor
azok oszlopai kozott
line
aris korrelacio x es y kozott, vagy korrelacios matrix, ha matrixok vagy data.frame-ok
Jelent
esek k
eszt
ese
Gyakori igeny, hogy a statisztikai eredmenyek (akar szoveges, akar grafikus formaban) egy dokumentumban
abbiakban lathattuk, hogy az R-kornyezetben vegzett m
uveletek eredmenyei
osszefoglalva jelenjenek meg. A kor
kimenthetok fajlokba, adatb
azisokba, illetve a vagolapra. Az gy exportalt reszek beilleszthetok szovegszerkeszto,
kiadvanyszerkeszt
o szoftverek dokumentumaiba. A LATEX tordelesi rendszerhez az R tobb fele kimenettel is rendelkezik (pl.: pictex, xtable), a ket k
ornyezet egy
uttes alkalmazasa igen hatekony lehet. Az elterjedtebb irodai
szoftvercsomagok (pl. Open Office, KOffice, StarOffice vagy MS Office) szovegszerkeszto eszkozeivel szinten
keszthet
uk jelenteseket, az R-k
ornyezetb
ol sz
armazo kimenetek felhasznalasaval.
Ha tobb abrat, illetve sz
oveges kimenetet kvanunk beilleszteni a kesz
ulo jelentes
unkbe, es ezt manu
alisan
szeretnenk megval
ostani, akkor hosszadalmas, tobb hibalehetoseget hordozo utat valasztunk. Gondoljunk arra,
hogy ha tobb kepet is beilleszt
unk, akkor azok elnevezeseben akkuratusan kell eljarnunk, de ha ezt meg meg
is tett
uk, a szoftverekben elerhet
o f
ajlb
ol val
o besz
urasi rutinokban m
ukodesbol fakadoan konnyen mas kepet
illeszt
unk be az adott helyre, mint amit szerett
unk volna. Ha ezt meg is oldottuk, es (nagyon figyelmesen) minden abrat a helyere tudtunk tenni, sz
ukseg lehet az elemzesek, gy az abrak elkesztesenek modostott vagy mas
adatokon alapulo megismetlesere. Ekkor pedig kezdhetj
uk elolrol az egeszet, a keveredesek veszelyevel terhelve.
Szerencsere letezik egy eszk
oz, ami az R-k
ornyezetben is elerheto es lehetove teszi, hogy olyan dokumentumokat
hozzunk letre, amelyekben a programk
odokt
ol kezdve, az eredmenyeken es abrakon kereszt
ul, az ertelmezesig
minden egyseg dinamikusan kezelhet
o. Ez a Sweave.
Sweave
A Sweave lehet
oseget ad arra, hogy a dokument
aci
os szovegresz(eke)t es az R-k
odo(ka)t egy noweb szintaxis
u
forrasallomanyban szerkessz
uk, majd az R-ertelmezon lefuttatva LATEX27 allomanyt kapjunk vissza eredmeny
ul
az alabbi elemekkel:
dokumentaci
os sz
oveg
R-input es/vagy
R-output (sz
oveg vagy grafika)
Ez a megoldas lehet
oseget biztost arra, hogy jelentes
unket u
jrageneraljuk, ha megvaltoztak a forrasadataink,
illetve emellett az analzisben haszn
alt k
odot, eljarast is dokumentalthatjuk ugyanazon jelentesben. Azon Rfelhasznaloknak, akik a LATEX-ben is dolgoznak, tovabbi elony, hogy nem kell u
j szintaxist es szoftverkezelest
tanulniuk.
Noweb f
ajlok
A noweb (Ramsey, 1998) olyan dokument
alo-programozasi eszkoz, ami lehetove teszi programozasi forraskod
es a ra vonatkozo dokument
aci
o kombin
al
as
at egyetlen fajlban. K
ulonbozo szoftverek lehetove teszik a dokumentacio es/vagy a forr
ask
od kivon
as
at. A noweb fajl egyszer
u szoveges allomany, ami tartalmazza a programkodot
es a dokumentaci
os szakaszokat (chunk ):
Dokument
aci
os szakasz Olyan sorral kezd
odik, aminek az elso karaktere @, amit szokoz vagy u
j sor kovet.
71
ITESE
JELENTESEK
KESZ
72
Sweave-
allom
anyok
A Sweave-forr
asf
ajlok szab
alyos noweb f
ajlok nehany kiegeszto szintaktikai elemmel, amelyek lehetove teszik
k
ulonbozo kiegeszt
o be
allt
asi lehet
osegek alkalmazasat a vegso output formazasnak erdekeben. Hagyomanyosan
a noweb-fajlok kiterjesztese .nw, amely a Sweave-fajloknal szinten lehetseges. A Sweave-fajlokat altalaban .rnw,
.Rnw, .snw es .Snw kiterjesztesekkel haszn
alj
ak, jelezve azt, hogy noweb stlus
u Sweave-fajlok. A tovabbiakban
.rnw kiterjesztest haszn
alunk.
P
elda
Egy egyszer
u Sweave f
ajlt mutat a 12.
abra, amelyben a LATEX-fajlba ket kodresz van beagyazva. Ha bealltottuk a munkak
onyvt
arunkat, akkor a k
ovetkezo kodot kell futtatnunk az R-kornyezetben:
> 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 Sweave a .rnw
allom
anyb
ol letrehozott egy LATEX-fajlt, amit a 13. abran lathatunk. Az elso k
ulonbseg a ket dokumentum kozott, hogy a Sweave.sty LATEX stlus betolteset szolgalo utastas (C:/R/rw2001/share/texmf/Sweave)
automatikusan ber
odik a TEX
allom
anyunkba. Ez teszi lehetove, hogy az Sinput es Soutput kornyezeteket a
LATEX ertelmezni tudja. A dokument
aci
os sz
oveg valtozatlan formaban atmasolodik a sweavepelda.rnw fajlbol a
sweavepelda.tex
allom
anyba. A k
odreszeket azonban (annak f
uggvenyeben, hogy azok inputok vagy outputok)
a Sinput, illetve Soutput k
ornyezetekbe illeszti be a Sweave. Termeszetesen az outputok u
gy jonnek letre, hogy
az inputokat ertelmezi az R. A Sinput es Soutput kornyezeteknek \begin{Schunk} es \end{Schunk} altal
hataroltan kell a TEX
allom
anyban szerepelni
uk.
A masodik kodszakasz egy olyan Sweave lehetoseget mutat be, ami kiegesztes a noweb szintaxishoz kepest: a
kodresz neve segtsegevel a Sweave-vel utast
asokat tudunk kozolni. Ezek segtsegevel kontrollalhatjuk a vegleges
outputot.
A kodreszt u
gy jel
olt
uk meg, hogy
abra-szakaszkent ertelmezze (fig=TRUE), gy a Sweave letrehoz egy
EPS es egy PDF
allom
anyt, amelyek a kodreszben levo kodnak megfelelo grafikat tarolja. Tovabba besz
ur
egy \includegraphics{sweavepelda-001} utastast a LATEX-allomanyba.
Az echo=FALSE argumentum azt
alltja be, hogy az R-input ne ker
uljon bele a vegleges dokumentumba
(nem lesz Sinput k
ornyezet).
Sweave be
allt
asok
A bealltasi lehet
osegek segtsegevel meghatarozhatjuk, hogy az .rnw fajlban tarolt kodreszek es azok outputjai (szoveg, abra), hogyan r
odjanak
at a .tex
allomanyba. Minden opcio ugyanolyan formaj
u argumentum=
ert
ek,
ahol az ertek lehet sz
am, sz
oveg vagy logikai ertek. Egyszerre tobb argumentum is beallthato (vesszovel elvalasztva), mindegyik argumentumnak erteket kell adnunk (ezek nem tartalmazhatnak vesszot vagy egyenlosegjelet). A logikai argumentumok ertekad
as
an
al hasznalhato a true, a false, illetve ezek kezdobet
ui (t, f), a
nagybet
us valtozatok is m
uk
odnek.
Az .Rnw fajlban az opci
ok a k
ovetkez
okeppen adhatok meg:
1. A kodresz kezdeten a sz
ogletes z
ar
ojelek (<<>>) koze helyezhetj
uk el a bealltando argumentumokat, az
gy megadott be
allt
asok csak az adott kod chunkra vonatkoznak.
2. A dokumentumban b
arhol elhelyezhet
o a kovetkezo utastas:
\SweaveOpts{arg1=
ert
ek1, arg2=
ert
ek2, ..., argN=
ert
ekN}
, ami modostja az alapbe
allt
asokat az utastas utani dokumentum-szakaszra vonatkozoan. Ennek megfeleloen, ha a dokumentum elejen helyezz
uk el ezt az utastast, akkor az az osszes kodszakaszra vonatkozoan
atalltja az alapbe
allt
asokat.
ITASOK
SWEAVE BEALL
73
\documentclass[a4paper]{paper}
\usepackage{graphicx}
\usepackage[latin2]{inputenc}
\usepackage[magyar]{babel}
\usepackage[T1]{fontenc}
\title{Sweave-p
elda}
\begin{document}
\maketitle
Ebben a p
eld
aban a \LaTeX{} dokumentumunkba k
et k
odot illesztettem be.
Az al
abbi k
odr
eszben v
eletlen adatok gener
al
odnak
es az \verb|adat| objektumnak
ad
odnak
at.
<<>>=
adatok <- rnorm(800,0,1)
@
A m
asodik k
odr
esz l
etrehoz egy hisztogrammot.
\begin{figure}[h]
\begin{center}
<<fig=TRUE, echo=FALSE>>=
hist(adatok, main="", col="red", ylab="gyakoris
ag")
@
\caption{P
elda
abra}
\label{swxplhist}
\end{center}
\end{figure}
Ide j
ohetne egy sz
oveg, amiben
osszefoglalhatn
am az
abra alapj
an megfogalmazhat
o
k
ovetkeztet
eseket.
\end{document}
12.
abra. sweavepelda.rnw
ITESE
JELENTESEK
KESZ
74
\documentclass[a4paper]{paper}
\usepackage{graphicx}
\usepackage[latin2]{inputenc}
\usepackage[magyar]{babel}
\usepackage[T1]{fontenc}
\title{Sweave-p
elda}
\usepackage{C:/R/rw2001/share/texmf/Sweave}
\begin{document}
\maketitle
Ebben a p
eld
aban a \LaTeX{} dokumentumunkba k
et k
odot illesztettem be.
Az al
abbi k
odr
eszben v
eletlen adatok gener
al
odnak
es az \verb|adat| objektumnak
ad
odnak
at.
\begin{Schunk}
\begin{Sinput}
> adatok <- rnorm(800, 0, 1)
\end{Sinput}
\end{Schunk}
A m
asodik k
odr
esz l
etrehoz egy hisztogrammot.
\begin{figure}[h]
\begin{center}
\includegraphics{sweavepelda-001}
\caption{P
elda
abra}
\label{swxplhist}
\end{center}
\end{figure}
Ide j
ohetne egy sz
oveg, amiben
osszefoglalhatn
am az
abra alapj
an megfogalmazhat
o
k
ovetkeztet
eseket.
\end{document}
13.
abra. sweavepelda.tex
ITASOK
SWEAVE BEALL
75
Sweave-p
elda
50
gyakorisg
100
150
adatok
1.
abra. Pelda
abra
Ide johetne egy szoveg, amiben
osszefoglalhatn
am az
abra alapj
an megfogalmazhato kovetkezteteseket.
14.
abra. sweavepelda.pdf
ITESE
JELENTESEK
KESZ
76
A meghajtotol f
ugg
oen k
ul
onb
oz
o opci
ok hasznalhatok. Minden meghajto kepes kezelni legalabb a kovetkezo
opciokat (az ertekek az alapertelmezett ertekek):
engine=S: karakterl
anc, ami lerja, hogy melyik S motor elerheto a kod chunkok ertelmezesere. A lehetseges
ertekek pl.: S, R, S3 vagy S4. Mindegyik meghajto csak a kod chunkokat ertelmezi, a tobbi reszt figyelmen
kv
ul hagyja.
split=FALSE: logikai ertek. Ha TRUE, akkor az output tobb fajlba ker
ul, ha FALSE, akkor egy fajl lesz az
eredmeny. A reszletek meghajt
ot
ol f
ugg
oek.
label: szoveges cmke, ami a f
ajlnevek kesztesehez hasznalando, ha a split=TRUE ertekre van alltva. Ha a
label erteket label.engine form
aban adjuk meg, akkor a kiterjesztes el lesz tavoltva, mielott tovabbi
alkalmaznank (pl.: a hello.S cimke hello-va lesz egyszer
ustve).
Az elso (de csak az els
o) argumentum erteke
allhat magaban az argumentum neve nelk
ul, ekkor az label-kent
ertelmezodik:
<<hello.S, split=FALSE>>
, ami ugyanaz, mint a k
ovetkez
o:
<<split=FALSE, label=hello.S>>
, de a
<<split=FALSE, hello.S>>
forma hibat fog gener
alni.
Objektumok haszn
alata a sz
ovegben
Korlatozottan lehet
oseg, de van arra is, hogy az R-objektumok erteket a dokumentacioban beagyazva
hasznaljuk. Ha az Sexpr{kifejez
es} k
ornyezetben helyezz
uk el az adott objektum nevet, akkor a szovegben
annak az erteke meg fog jelenni. A kifejezes lehet objektum vagy valamilyen kifejezes, m
uvelet.
Mielott ezt haszn
aljuk, a k
odszakaszban ervenyes forrasa kell, hogy legyen. A kifejezesben hasznalhatunk Rf
uggvenyeket, viszont a kapcsos z
ar
ojel nem alkalmazhato. Amennyiben ilyen kifejezes hasznalata sz
ukseges,
akkor a kodszakaszban kell elvegeztetni es az eredmenyet meghvni a \Sexpr utastassal.
A k
odszakasz u
jrahasznost
asa
A nevvel rendelkez
o k
odszakaszok u
jrahasznosthatok a dokumentumon bel
ul. Alljon
itt egy egyszer
u pelda:
<<a>>=
x <- 10
@
<<b>>=
x + y
@
<<c>>=
<<a>>
y <- 20
<<b>>
@
, ami egyenertek
u a k
ovetkez
o k
oddal:
<<c>>=
x <- 10
y <- 20
x + y
@
A kodszakaszra utal
o oper
ator (<<>>) csak nev argumentummal rendelkezik, mas Sweave-opcio nem hasznalhato
benne.
77
Az RweaveLatex param
eterez
ese
Az RweaveLatex meghajt
o az al
abbiakban lert bealltasi lehetosegeket tamogatja a kodreszek fel
ugyeletehez:
echo
Ha az erteke az alapertelmezett TRUE, akkor az outputban meg fog jelennei az
R-k
od is. Egyebkent nem.
eval
Ha az alapertelmezett TRUE helyett FALSE erteket adunk meg, akkor az adott kodszakaszt nem ertelmezi az R.
results
Egy karakterl
anckent adhatjuk meg az outputban szereplo karakterek megjelentesenek tpus
at. Az alapertelmezes verbatim, ha tex-re alltjuk, akkor a TEX
stlusnak megfelel
oen jelenik meg az output szovege. Ha hide erteket adunk meg,
akkor nem gener
al outputot, viszont a kodszakaszt ertelmezi.
print
Ha az alapertelmezett FALSE erteket TRUE-ra alltjuk, akkor a kodszakasz minden
kifejezese meg az ertelmezes elott be lesz illesztve a print() f
uggvenybe, gy a
kifejezesek ertekei lathatok lesznek az outputban.
term
Ha az alapertelmezett TRUE ertek
u, akkor az ertekadasok erteke nem lesz megjelentve, mg az objektumoke igen. Ha viszont FALSE erteket adunk meg, akkor csak
azok az ertekek lesznek kirva az outputba, amelyek eseteben a print vagy a cat
utast
ast haszn
altuk.
split
Ha az alapertelmezett FALSE helyett TRUE erteket adunk meg, akkor minden kodresznek megfelel
oen k
ulon fajlokba rodnak az outputok.
strip
Ha az erteke az alapertelmezett TRUE, akkor az u
res sorokat az output elejerol es
veger
ol elt
avoltja, ha FALSE, akkor nem foglalkozik vel
uk.
prefix
Ha az alapertelmezett TRUE erteket hasznaljuk, akkor a letrehozott abrakhoz es a
sz
oveges outputokhoz egy altalanos kiterjesztest illeszt.
prefix.string
Alapertelmezesben .Snw.
include
Logikai erteke arra utal, hogy az adott kodresz altal kodolt szoveges es grafikus
output egy helyen legyen a vegleges dokumentumban, vagy sem. Ha FALSE erteket
adunk meg, akkor a szoveges es a grafikus eredmenyek k
ulon outputkent lesznek
a .tex
allom
anyba kirva. Az alapertelmezese TRUE.
fig
Logikai erteke arra utal, hogy a kodresz abrat kodol, vagy sem. Az alapertelmezese
FALSE.
eps
Ha az erteke TRUE, akkor az abrat elmenti .eps allomanyba, ha FALSE, akkor nem.
Az alapertelmezes TRUE.
pdf
Ha az erteke TRUE, akkor az abrat elmenti .pdf allomanyba, ha FALSE, akkor nem.
Az alapertelmezes TRUE.
width
Az
abra szelesseget hatarozza meg h
uvelykben, az alapertelmezes 6.
height
Az
abra magass
ag
at hatarozza meg h
uvelykben, az alapertelmezes 6.
Fu
ek
ggel
78
Telept
es
Windows
Windowsra a telept
okeszlet egyetlen bin
aris allomany, ami a http://cran.r-project.org/ oldalrol let
oltheto. Telepthet
o a Windows 95, 98, ME, NT4.0, 2000 and XP operacios rendszerekre. A binaris telepto
allomany (pl. rw2001.exe) teleptesi keperny
oit mutatja a 15-22. abra.
Az alapertelmezett teleptesi hely a C:\Program Files\R\ konyvtar, amelyen bel
ul letrehoz a teleptett
verzionak megfelel
o k
onyvt
arstrukt
ur
at (23. abra). Egyszerre tobb verzio is futhat az adott operacios rendszeren. Az alap-telept
okeszlettel neh
any csomag is teleptesre ker
ul (base, datasets, graphics, grDevices,
grid, methods, splines, stats, stats4, tcltk, tools, utils). Ezek a csomagok mint konyvtarak ker
ulnek
bejegyzesre az R fa-strukt
ur
aj
aba, a library konyvtarba. (A stats csomag belso konyvtarszerkezetet mutatja
a 24. abra.) A csomag f
aj
an bel
ul szerepl
o chtml konytvar tartalmaz egy lefordtott .html fajlt, ami az adott
csomag s
ugoja, egy f
ajlba rendezve, igen hasznos lehet a konyvtar funkcioinak tanulmanyozasaban.
Csomagok telept
ese
A CRAN-r
ol illetve a Bioconductor oldalarol kozvetlen
ul telepthet
unk csomagokat:
A Windows RGui Packages men
ujebol kivalasztjuk a Install package(s)... almen
ut, aminek
kovetkezteben megjelenik a 38.
abran lathato lista, amivel megadhatjuk azt a CRAN t
ukoroldalt,
ahhonnan telepteni szeretnenk, ami utan az R-verzionkhoz elerheto csomagok listaja jelenik meg egy
u
jabb u
rlapon (40.
abra). A list
ab
ol kivalasztva a kvant csomagot, az teleptodik. Ebben az esetben
azok a csomagok telept
odnek, amelyektol a kivalasztott konyvtar m
ukodese f
ugg. Egyszerre tobb
csomagot is ki lehet v
alasztani.
A CRAN-r
ol let
olthet
ok .zip kiterjesztessel k
ulonbozo csomagok. Ezek teleptese a kovetkezo modon
valosthato meg:
A Windows RGui Packages men
ujebol kivalasztjuk az Install package(s) from local zip files. . .
almen
ut. A megjelen
o f
ajlkezel
o segtsegevel kivalasztjuk a csomagot tartalmazo, letoltott, zippelt allomanyt.
Linux
A binaris allom
anyok elerhet
ok a CRAN-on nehany disztrib
uciohoz, amelyek egyszer
uen telepthetok az
adott platformon. A forr
ask
od szinten let
oltheto es a kovetkezo modon teleptheto:
./configure
make
make install
Csomagok telept
ese
Vagy binaris telept
ot t
olt
unk le a teleptett R verzionkhoz, vagy forrasbol telept
unk. Ez utobbit egy terminalban root-kent hajthatjuk vegre az R CMD INSTALL csomag utastassal, ahol a csomag a letoltott es teleptendo csomagunk helye es neve. El
ofordul, hogy bizonyos csomagok teleptese feltetelezi mas csomagok
teleptettseget.
79
TELEPITES
80
15.
abra. Windows teleptesi kepernyo 1.
16.
abra. Windows teleptesi kepernyo 2.
LINUX
81
17.
abra. Windows teleptesi kepernyo 3.
18.
abra. Windows teleptesi kepernyo 4.
TELEPITES
82
19.
abra. Windows teleptesi kepernyo 5.
20.
abra. Windows teleptesi kepernyo 6.
LINUX
83
21.
abra. Windows teleptesi kepernyo 7.
22.
abra. Windows teleptesi kepernyo 8.
TELEPITES
84
23.
abra. Windows teleptesi fa
24.
abra. A stats csomag fastrukt
uraja
Sz
ovegszerkeszt
ok
Tinn-R
A Tinn-R egyszer
u sz
ovegszerkeszt
o R-szkript szerkeszteset, es az R-interpreterrel valo felhasznalobarat
egy
uttm
ukodest k
onnyti meg. El
onyei:
Egyszerre t
obb szkript f
ajllal is lehet dolgozni
Az R-szintaxisnak megfelel
o sz
ovegkiemeles
Men
ubol kezelhet
o R-m
uveletek
Egy
uttm
uk
odik R-fel
uletekkel:
Rgui
R Konzol
SciViews R Konzol (99. lap)
Az R mellett lehet
oseget ny
ujt val
o egy
uttm
ukodesre az S-Plus-szal is
Egyeb nyelveknek megfelel
o sz
ovegkiemelesre is kepes, gy pl. az adatbazisokkal valo munka soran hasznalatos SQL-k
odok szerkesztesere is igen hasznos eszkoz
A Tinn-R letoltese es teleptese ut
an bizonyos bealltasokat el kell vegezn
unk ahhoz, hogy a teleptett Rrendszerrel egy
uttm
uk
odhessen:
1. Az Options men
ub
ol a Main almen
u alatt talalhato Application almen
ut valasztva a 25. abran lathato
u
rlap jelenik meg
2. Ket beallt
ast erdemes megv
altoztatni az u
rlapon:
A Starting comment elnevezes
u szovegdobozba az R-nyelvnek megfelelo # jelet kell berni
Az Rgui felirat
u gombra kattintva, a megjeleno fajlkezelo segtsegevel kivalasztjuk azt a parancsertelmez
o fel
uletet, amit a kes
obbiekben hasznalnank
Emacs
Az Emacs szovegszerkeszt
or
ol, illetve hasznalatarol szamos ismerteto erheto el az interneten28 , ezert itt erre
nem ter
unk ki, csup
an azt szeretnem bemutatni, hogy az R-kornyezettel hogyan lehet osszekapcsolni.
Telept
es
A telepteshez le kell t
olten
unk a szoftver teleptoallomanyat29 . A tomortett allomanyt ki kell csomagolnunk egy konyvt
arba, j
o, ha az eleresi u
tvonalban nincsen szokoz, mondjuk legyen C:\emacs. A kicsomagolas
utan ajanlott, de nem feltetlen
ul sz
ukseges a bin alkonyvtarban levo addpm.exe futtatasa. Ez elvegez nehany
bealltast, tobbek k
oz
ott a Programok k
oze betesz egy a C:\emacs\bin\runemacs.exe fajlra mutato linket.
Tanacsos, es a kes
obbi ESS telepteshez sz
ukseges is egy .emacs vagy _emacs fajl teleptese is. Ebben az Emacs
k
ulonbozo beallt
asait a Lisp 30 nyelv alkalmazasaval testreszabhatjuk. Ha valaki nem jartas ebben a nyelvben,
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
SZOVEGSZERKESZT
OK
86
25.
abra. Tinn-R bealltasi u
rlap
akkor le is lehet t
olteni k
ul
onb
oz
o feladatoknak megfeleloen optimalizalt bealltasi allomanyokat31 . Az Emacs
a bealltasi allom
anyt el
osz
or a HOME k
onyvt
arban keresi, ha ott nem talalja, akkor a C:/ gyokerkonyvtarban
probalkozik. Ha valamely k
onyvt
arban tal
al .emacs es _emacs allomanyt is, akkor az elozot fogja hasznalni, az
utobbit figyelmen kv
ul hagyja. Szerintem a legegyszer
ubb, ha a gyokerkonyvtarba masoljuk a fajlt.
ESS
Az Emacs Speaks Statistics (ESS ) egy
altalanos interfesz, amelyen kereszt
ul az emacs kapcsolatot tud teremteni statisztikai szoftverekkel. Jelenleg lehetoseg van az S, az R, a SAS, a BUGS, a Stata es az XLisp-Stat
statisztikai alkalmaz
asokkal, k
ornyezetekkel valo egy
uttm
ukodesre. Az ESS szabadon letoltheto az internetrol32
33
es szamos kimert
o dokument
aci
o erhet
o el a hasznalataval kapcsolatban, itt most csak az installalasra ternek
ki. A teleptes lepesei:
A letoltott t
om
ortett
allom
anyt (pl. ess-5.2.10.zip) csomagoljuk ki az Emacs konyvtarba. (Az elozo
peldanal maradva az C:\emacs k
onyvt
arba.) A pelda szerint C:\emacs\ess-5.2.10 lesz az ESS teleptesi
konyvtara. Termeszetesen a verzi
osz
am valtozhat.
A Microsoft Windows k
ornyezeti v
altoz
oi kozott a PATH-ban szerepelnie kell a hasznani kvant R-konzol eleresi u
tjanak. Ezt a Windows 9x oper
aci
os rendszerek eseten az c:\autoexec.bat fajlban tudjuk bealltani,
a kovetkezo sor beillesztesevel: path=%PATH%;C:\progra~1\R\rw2001\bin. Termeszetesen az rw....\bin
reszben a kipontozott helyen azt a verzi
oszamot kell megadnunk, amit hasznalni kvanunk.
Ha Windows NT/2000/XP k
ornyezetben dolgozunk, akkor a bealltast a kovetkezo lepesekben tudjuk megoldani: a Start men
ub
ol a Be
allt
asok k
oz
ul kivalasztjuk a Vezerl
opultot. A megjeleno parancsikonok koz
ul
ki kell valasztanunk a Rendszer felirat
ut. A megjelen
u Rendszertulajdons
agok elnevezes
uu
rlapon kivalasztjuk a Speci
alis cimkevel rendelkez
o f
ulet (26. abra). Itt a K
ornyezeti v
altoz
ok gombra kattintva megjelenik
a K
ornyezeti v
altoz
ok cm
uu
rlap (27.
abra), amin ki kell valasztanunk a Rendszerv
altoz
ok felirat
u (also)
listabol a Path sort. A Szerkesztes gombra kattintva elot
uno Rendszerv
altoz
ok szerkesztese ablakban (28.
abra) a V
altoz
o erteke mez
oben keress
uk meg az R-kornyezetre vonatkozo bejegyzest. Ha nem talalunk,
akkor a sor vegere, az utols
o elemt
ol pontosvesszovel elvalasztva rjuk be a C:\progra~1\R\rw2001\bin
utat. Fontos, hogy a sz
ok
oz
oket lehet
oleg mellozz
uk, ezert ha a C:\Program Files konyvtarban van az R
teleptes, akkor ehelyett a k
onyvt
arnev helyett hasznaljuk a C:\progra~1 elnevezest. Ha bertuk az utat,
akkor az OK gombbal j
ov
ahagyjuk, majd az aktvva valo (27. es 28. abran lathato) u
rlapon ugyancsak
ezt tessz
uk.
31 http://www.dotfiles.com
32 http://ess.r-project.org/downloads/ess/
33 http://ess.r-project.org/
KATE
87
26.
abra. Kornyezeti valtozo bealltasa I.
A .emacs vagy _emacs
allom
anyunkba beillesztj
uk a (load "C:/emacs/ess-5.2.10/lisp/ess-site")
sort.
Ezzel az Emacs-Ess-R integr
aci
o keszen
all a munkara. Ha most elindtjuk az Emacs-unkat, es lenyomjuk az
ALT-x gombkombin
aci
ot, akkor megjelenik az also kepernyo sorban az M-x karaktersor es a kurzor villog. Ha
most berjuk a kis vagy nagy R-bet
ut, a sor tartalma a kovetkezore valtozik:
ESS [S(R): Rterm] starting data directory? c:/emacs/bin/
Ha ezt jovahagyjuk ENTER-rel, akkor a 29. abran levo kepernyon lathato fel
uleten kezdodhet meg a munka.
Kate
Linuxon egyszer
uen haszn
alhat
o sz
ovegszerkeszto a Kate, ami lehetove teszi az egyszerre tobb allomannyal
valo munkat. Az R-nyelvnek megfelel
o szintaxis kiemelesre kepes. Minden egyeb bealltas nelk
ul hasznalhatjuk
a Kate also ablak
aban l
athat
o fel
uletet, mint R-terminalt. Ha a rendszer
unkon teleptve van az R-kornyezet es
a Kate is, akkor a Kate elindt
asa ut
an megjeleno fel
ulet terminal ablakaba elegendo bernunk az R utastast es
megnyomni az ENTER-t, aminek k
ovetkezteben maris van a szovegszerkeszton bel
ul egy R-kornyezet
unk (30.
abra).
SZOVEGSZERKESZT
OK
88
27.
abra. Kornyezeti valtozo bealltasa II.
28.
abra. Kornyezeti valtozo bealltasa III.
KATE
89
Grafikus felu
letek
Az R-ertelmez
ovel alapertelmezett kommunikaciot parancsoron kereszt
ul folytathatunk. Habar ez az interfesz nagyon rugalmas, sokaknak (ma m
ar) teljesen idegen. Egyes csoportok tobb grafikus felhasznaloi fel
uletet
(GUI)34 is letrehoztak, ezek egy resze megv
as
arolhato, mas resze ingyenesen letoltheto. Az alabbiakban roviden
ismertetek nehany ingyenyesen elerhet
o GUI-t.
A grafikus fel
uleteken bel
ul az ablakok ket formaban jelenhetnek meg: t
obbdokumentomos (MDI), illetve egydokumentumos (SDI) ablakrendszerekr
ol beszelhet
unk. Az elozo eseteben az ablakok egy sz
uloablakon bel
ul
helyezkednek el es az egyes le
anyablakok men
urendszere a sz
uloablakon erheto el, gy az elerheto men
urend
Windows RGui
A Microsoft Windowsra kesztett R-k
ornyezet teleptese utan az alapertelmezett R-konzol a Windows RGui.
Az indtoikonnal val
o szoftverindt
as ut
an ennek a GUI-nak az MDI-stlus
u fel
ulete jelenik meg. A kornyezetben
kezelheto ablakok a konzol, az R-editor, a grafikai ablak, illetve a Data Editor. A 2.1.1. verzio men
urendszerenek
rovid bemutatasa olvashat
o az al
abbiakban.
Konzol
A Windows-os RGui konzol-eszkoztara
Open script
Load image
Save image
Copy
Paste
Copy and paste
Stop current computation
Print
menu
rendszer
File
Source R code. . .
New script
Open script. . .
Display file(s). . .
Egy kor
abban megszerkesztett kodot nyit meg es egyben ertelmezi is.
(Ugyanezt az eredmenyt a source() utastassal erhetj
uk el.)
A k
odok szerkesztesere szolgalo R-editort nyitja meg, u
j kod szerkesztesere.
Az R-editorban megnyit egy korabban szerkesztett kod-fajlt.
Megtekintesre megnyitja a kivalasztott ASCII-fajlt.
34 http://www.r-project.org/GUI
90
WINDOWS RGUI
Load Workspace. . .
Save Workspace. . .
Load History. . .
Save History. . .
Change dir. . .
Print. . .
Save to File. . .
Exit
91
Egy kor
abbi munkater
ulet mentett kepet tolthetj
uk be, ami tartalmazza
az o
sszes objektumot. Utastasa: load().
A munkater
ulet-ben tarolt objektumokat kirja egy .RData kiterjesztes
u
allom
Edit
Copy
Paste
Paste commands only
Copy and Paste
Select all
Clear console
Data editor. . .
GUI preferences. . .
upont.
Misc
Stop current computation
Buffered output
List objects
Remove all objects
List search path
A munkater
ulet-ben tarolt objektumok nevet jelenti meg a konzolban. Utast
asa: ls().
A munkater
ulet-ben tarolt osszes objektumot torli. Utastasa:
rm(list=ls(all=TRUE)).
Megjelenti a keresesi utakat a konzolban. Ezek a mar betoltott konyvtarakat reprezentaljak, vagyis azokat a helyeket, ahol a kiadott utastasnak
megfelel
o f
uggvenyt kereshet az R-ertelmezo. Utastasa: search().
Packages
Load package. . .
A megjeleno u
rlap segtsegevel (37. abra) a teleptett
csomagok (konyvtarak) koz
ul kivalaszthatunk egyet, es
be is tolthetj
uk.
A megjeleno u
rlap (38. abra) segtsegevel beallthatunk
azt a CRAN t
ukoroldalt, amit csomagok teleptesehez
vagy frisstesehez kvanunk hasznalni.
GRAFIKUS FELULETEK
92
Select repositories. . .
A megjeleno u
rlap (39. abra) segtsegevel beallthatjuk
a munkafolyamat soran hasznalni kvant internetes tarhelyeket.
Ha korabban nem alltottunk be a 38. abran lathato u
rlapon CRAN t
ukoroldalt, akkor eloszor ezt kell megtenn
unk a megjeleno fel
uleten. A megjeleno u
rlap (40.
abra) segtsegevel az aktualis tarhelyen elerheto csomagokat telepthetj
uk.
A mar teleptett csomagok frissthetok az aktualis tarhelyrol. Utastasa: update.packages().
Install package(s). . .
Update packages. . .
Windows
Cascade
Tile
Arrange Icons
X1 R Console
Console
FAQ on R
FAQ on R for Windows
Manuals (in PDF)
Help
R functions (text). . .
Html help
Search help. . .
search.r-project.org. . .
Apropos. . .
About
Popup menu
Copy
Paste
Paste commands only
CTRL+C
CTRL+V
CTRL+X
Clear window
CTRL+L
WINDOWS RGUI
93
Select all
Buffered output
Stay on top
R editor
Az R-editor eszkoztara
Open script
Save script
Run line or selection
Return focus to Console
Print
menu
rendszer
File
New script
CTRL+N
Open script. . .
Save
Save as. . .
Print. . .
Close script
Exit
CTRL+O
CTRL+S
Undo
Cut
Copy
Paste
Delete
Select all
Clear console
Run line or selection
Run all
CTRL+Z
Visszavonas.
CTRL+X
CTRL+C
CTRL+V
Edit
Find. . .
Replace. . .
GUI preferences. . .
Packages
CTRL+A
CTRL+L
CTRL+R
CTRL+F
CTRL+H
GRAFIKUS FELULETEK
94
Load package. . .
A megjeleno u
rlap segtsegevel (37. abra) a teleptett
csomagok (konyvtarak) koz
ul kivalaszthatunk egyet es
be is tolthetj
uk.
A megjeleno u
rlap (38. abra) segtsegevel beallthatunk egy CRAN-t
ukoroldalt, amit csomagok teleptesehez vagy frisstesehez kvanunk hasznalni.
A megjeleno u
rlap (39. abra) segtsegevel beallthatjuk
a munkafolyamat soran hasznalni kvant internetes tarhelyeket.
Ha korabban nem alltottunk be a 38. abran lathato u
rlapon CRAN-t
ukoroldalt, akkor eloszor ezt kell megtenn
unk a megjeleno fel
uleten. A megjeleno u
rlap (40. abra)
segtsegevel az aktualis tarhelyen elerheto csomagokat
telepthet
unk.
A mar teleptett csomagok frissthetok az aktualis tarhelyrol. Utastasa az update.packages().
Select repositories. . .
Install package(s). . .
Update packages. . .
Windows
Cascade
Tile
Arrange Icons
1 R Console
X2 Untitled - R Editor
Console
FAQ on R
FAQ on R for Windows
Manuals (in PDF)
Help
R functions (text). . .
Html help
Search help. . .
search.r-project.org. . .
Apropos. . .
About
WINDOWS RGUI
95
Popup menu
Undo
Cut
Copy
Paste
Delete
Select all
Ctrl+R
Ctrl+Z
Visszavonas.
Ctrl+X
Ctrl+C
Ctrl+V
Ctrl+A
Grafikai ablak
A grafikai ablak eszkoztara
Print. . .
CTRL+P
A grafika nyomtatasa.
close Device
A grafikai ablak bezarasa.
History
Recording
Add
INS
Replace
Previous
PgUp
Next
PgDown
Save to variable. . .
Get from variable. . .
Ha a X-jellel megjelolt
uk, akkor az R-kornyezet automatikusan rogzti a
grafikus ablak tartalmat a tortenet-be.
GRAFIKUS FELULETEK
96
Clear history
Resize
XR mode
Fit to window
Fixed size
Windows
Cascade
Tile
Arrange Icons
1 R Console
X2 2 R Graphics: Device 2
(ACTIVE)
Popup menu
Arrange Icons
Copy as metafile
Copy as bitmap
Save as metafile. . .
Save as postscript. . .
Stay on top
Print. . .
A grafika nyomtatasa.
Adatszerkeszt
o
menu
rendszer
File
Close
Az adatszerkeszto bezarasa.
Windows
Close
Cascade
Tile
Arrange Icons
1 R Console
X2 Data Editor
Az adatszerkeszto bezarasa.
Az ablakokat lepcsozetesen rendezi.
Az ablakokat mozaikszer
uen rendezi.
A minimializalt ablakokat egymas melle rendezi.
Copy
Paste
Delete
Cell widths. . .
Ctrl+C
Ctrl+V
DEL
Data editor
Edit
A kijelolt cellak tartalmat a vagolapra helyezi.
A vagolapon levo adatokat, a kijelolt cellakba illeszti.
A kijelolt cella tartalmat torli.
A cellak szelesseget allthatjuk be (36. abra).
Help
R COMMANDER
97
31.
abra. Windows-os RGui bealltasait modosto fel
ulet
Help
Copy selected cell
Pate to selected cell
Autosize column
Stay on top
Close
Adatszerkeszto bezarasa.
R Commander
Azok reszere, akik a grafikus fel
ulet
u statisztikai szoftverekhez szoktak, tobben is fejlesztenek GUI-kat (Graphical User Interface). Az R commander ezek koz
ul egy ingyenes megoldas, ami reszben hasonlt az S-Plus felhasznaloi fel
uletehez. Tulajdonkeppen a Rcmdr is egy csomag, ami letoltheto es/vagy teleptheto a CRAN-rol. Ahhoz,
hogy hibatlanul fusson a Rcmdr, telepten
unk kell meg mas csaomagokat is, ezek a kovetkezok: Hmisc, quadprog,
GRAFIKUS FELULETEK
98
33.
abra. A munkakonyvtar bealltasat segto u
rlap
34.
abra. Adatszerkeszt
obe beolvasando adatallomany megadasat segto u
rlap
35.
abra. Adatszerkeszto u
rlap
36.
abra. A cell
ak szelessegenek bealltasat segto u
rlap
SCIVIEWS-R GUI
99
37.
abra. Csomagbetoltest segto u
rlap
oz, leaps, chron, fBasis, its, tseries, quantreg, DAAG, abind, car, effects, lmtest, multcomp, mvtnorm,
relimp, rgl, sandwich, strucchange, zoo. A library(Rcmdr) paranccsal tolhetj
uk be az R commandert es a
hozza sz
ukseges csomagokat.
A 45. abran lev
o fel
uleten l
athat
o ket sz
oveges ter
ulet. A felso k
odszerkeszt
o ter
uleten bel
ul tudjuk megszerkeszteni a kodunkat, amib
ol a kijel
olt k
odreszeket a Submit gomb megnyomasaval k
uldj
uk el az ertelmezonek.
Sajnos hianyzik bel
ole az R-nyelv szintaxis-kiemelese. A lefuttatott kodok es azok eredmenyei az also eredmenyszerkeszt
oben jelennek meg. A GUI fels
o szegelyen egy men
urendszer talalhato, amibol tobb statisztikai, grafikai
es kisegto eljarashoz erhet
unk el egyszer
u m
odon parbeszedablakokat (46. abra).
SciViews-R GUI
A SciViews-R olyan alkalmaz
asgy
ujtemeny, amely grafikus felhasznaloi fel
uletet (GUI) biztost az R-kornyezethez.
A gy
ujtemenyben a SciViews R Console, a SciViews R Report es a Tinn-R alkalmazasok talalhatok. Jelenleg
csak Windowson haszn
alhat
o.
Telept
es
Az ingyenesen let
olthet
o35 telept
o
allom
any futtatasa soran egy varazslo vezeti a felhasznalot a folyamaton
kereszt
ul. Az aktu
alisan legfrisebb verzi
o teleptesekor figyelemmel kell lenni arra, hogy milyen R-verziokkal tud
egy
uttm
ukodni a SciViews-R. Az itt bemutatott peldakban a 0.8-8 verziot hasznaltam, ami az R-kornyezet
2.1.X verzioival tud egy
uttm
uk
odni. Tov
abb
a az R-kornyezettel valo egy
uttm
ukodeshez az R-teleptesnek a
C:\Program Files\R\rw2011 k
onyvt
arban kell lennie. A SciViews-R alapertelmezett teleptesi konyvtara pedig a C:\Program Files\SciViews, amit jobb gy hagyni. A SciViews-R teleptesi folyamat befejezese utan a
teleptesi konyvt
arban, a bin alk
onyvt
aron bel
ul talalhato a RConsole.exe, a RReport.exe es a Tinn-R.exe
alkalmazas. Ha elindtjuk a RConsole.exe futtathato allomanyt, akkor megjelenik egy SDI-stlus
u RGui es
a 47. abran lathat
o p
arbeszedablak. Arra kerdez ra, hogy telepteni kvanjuk-e a SciViews csomagot. Ennek
teleptese nelk
ul nem fog m
uk
odni a SciViews-R. Ha az Igen gombra kattintunk, akkor megjelenik a 48. abran
lathato lista, amib
ol kiv
alaszthatjuk azt a forrast, ahonnan a teleptendo csomagot be szeretnenk szerezni. Az
35 http://www.sciviews.org/SciViews-R/
GRAFIKUS FELULETEK
100
38.
abra. CRAN t
ukoroldal bealltasat segto u
rlap
SCIVIEWS-R GUI
101
39.
abra. Select repositories. . .
40.
abra. A CRAN-rol valo csomagteleptest segto u
rlap
GRAFIKUS FELULETEK
102
41.
abra. Apropos keresest segto u
rlap
42.
abra. F
uggveny kereseset segto u
rlap
43.
abra. Szoveg kereseset segto u
rlap
44.
abra. search.r-project.org. . .
SCIVIEWS-R GUI
103
45.
abra. Az R Commander indulo kepernyoje
OK gomb lenyom
asa ut
an az adott forr
asb
ol telepti a csomagot a rendszer. Termeszetesen a csomagteleptest
az R-kornyezetbol is elvegezhetj
uk, a szok
asos modokon.
A megfelelo m
uk
odeshez sz
ukseges, hogy telepts
uk a R2HTML-csomagot is, ha az aktualis R-kornyezet
unkben az
ehhez a csomaghoz sz
ukseges egyeb k
onyvt
arak (acepack, chron) nincsenek meg meg, akkor azokat is telepten
unk kell.
Tovabbi teleptesre aj
anlott csomagok: Rcmdr, tcltk2, wxPython, RSPython, Hmisc, valamint ezek m
ukodesehez
sz
ukseges tovabbi csomagok.
SciViews R Console
A SciViews R Console elindt
asa ut
an r
ovid idore eloszor a 49. abran lathato konzol jelenik meg, ami a
Windows RGui SDI-stlus
u konzolja. Amint ezen a konzolon lathato, az R betolti az osszes sz
ukseges konyvtarat,
elt
unik az elobbi fel
ulet es megjelenik az SciViews R Console (50. abra). A SciViews R Console elindthato
u
gy is, ha az Windows RGui-t SDI-m
odra
alltjuk es egyszer
uen a terminalban toltj
uk be az svGUI csomagot
(library(svGUI)). Ha ezt MDI m
odban pr
obaljuk meg, akkor nem jelenik meg eredmenykent a SciViews R
Console.
Az 50. abran lathat
o SciViews R konzolon elerheto elemek:
Men
urendszer, mely nagyreszt megegyezik a Windows RGui konzol-men
ujevel.
Eszkoztar, ami szinten megegyezik a Windows RGui konzol-eszkoztaraval.
Terminal, ami nem k
ul
onb
ozik az egyeb kornyezetekben megszokottaktol. Popup-men
uje megegyezik a
Windows RGui-n
al l
atottal.
Kodszerkeszt
o. Ez az elem igaz
an nagy segtseget jelent rovidebb szkriptek szerkeszteseben. Egyetlen
hatranya, hogy egyszerre csak egy szkriptallomanyt tudunk kezelni vele.
GRAFIKUS FELULETEK
104
46.
abra. Sz
oveges allomanyok beolvasasat segto ablak
47.
abra. SciViews-csomag teleptese I.
Dokknak nevezz
uk a konzol jobb fels
o reszen lathato ter
uletet, amiben hasznos segedletek erhetok el, ezzel
megkonnytve a munk
at.
K
odszerkeszt
o
A kodszerkeszt
o ismeri az R-nyelv szintaxisat, illetve az egyes teleptett f
uggvenyek argumentumlistajat. Ebbol kovetkezik, hogy amikor berjuk egy f
uggveny nevet, es nyitunk egy zarojelet, akkor a f
uggveny neve mellett
megjelenik a f
uggveny es a hozz
a tartoz
o argumentumnevek. Alapertelmezesben a kodszerkeszto a SciViews
R konzolba van agyazva, viszont ha jobban szeret
unk k
ulon ablakokban dolgozni, akkor abbol ki is emelheto.
Ennek elonye, hogy az egyes ablakokban nagyobb fel
uletet lathatunk egyszerre, hatranya, hogy az egyes ablakok
fedhetik egymast. Az eszk
ozt
arb
ol elerhet
o m
uveletek koz
ul a kovetkezok m
ukodnek a jelenlegi verzioban (0.8.8):
New R Script CTRL+SHIFT+N
Open R Script. . . CTRL+SHIFT+O
Save Script. . . CTRL+SHIFT+S
Execute (F5)
A k
odszerkeszt
o popup men
uje:
Cut
Copy
Paste
Find. . .
Replace. . .
Show Whitespace
Make Uppercase
A kijel
olt szovegreszt kivagja es a vagolapra helyezi.
A kijel
olt szovegreszt a vagolapra helyezi.
A v
ag
olapr
ol a kurzor helyetol kezdodoen beilleszti.
A szkripten bel
ul lehet keresni karakter(sor)t.
Adott karakter(sor)t felcserelhet
unk egy masikkal.
Nagybet
usse alaktja a kijelolt szakaszban levo bet
uket.
SCIVIEWS-R GUI
105
48.
abra. SciViews-csomag teleptese II.
Make Lowercase
Kisbet
usse alaktja a kijelolt szakaszban levo bet
uket.
Undo
M
uvelet visszavonasa.
Redo
Visszavon
as visszavonasa.
Properties. . .
Dokk
A dokk(ok)ban sokfele gyors segedletet helyeztek el. Egyzerre ot dokkot nyithatunk meg, es mindegyikben
k
ulonbozo eszkozt
arakat tehet
unk k
ozvetlen
ul elerhetove. A dokkok (a szkripszerkesztohoz hasonloan) hasznalhatok a konzolba
agyazva vagy k
ul
on ablakokban. Egyes szkoztarakbol kivalaszthatunk elemeket (pl.: f
uggvenyek), amelyek ber
odnak vagy a szkriptszerkeszt
obe vagy a termin
alba. Hogy melyik reszbe illesztodnek be az
adott objektumok, att
ol f
ugg, hogy a kurzor hol all, a szkriptszerkeszt
on vagy a termin
alon. Az egyes eszkoztarakat a dokk fels
o szegelyen tal
alhat
o list
ab
ol valaszthatjuk ki, nev szerint:
GRAFIKUS FELULETEK
106
51.
abra. SciViews szkriptszerkeszto beallto fel
ulet
SCIVIEWS-R GUI
Libraries(about)
Default
R Commander menu
R reference card
Colors
Web Links
Documentation
Objects explorer
Session explorer
Files explorer
Scratchpad (common)
User scratchpad
Session scratchpad
107
Nevjegy (50. abra).
SciViews dokumentaciok erhetok el a megnylo fel
uletrol.
Az R-kommander men
ujebol elerheto grafikus fel
uleteket hvhatunk meg
ezen men
upontok segtsegevel, anelk
ul, hogy az R-kommander konzolat is
megnyitn
ank.
Gyakrabban hasznalt R-f
uggvenyek tema szerint csoportostott gy
ujtemenye jelenik meg, ha ezt a listaelemet valasztjuk ki. Ha valamely f
uggveny
nevere kattintunk, akkor az aktv egysegbe beilleszti a f
uggveny nevet, illetve egyes f
uggvenyeknel argumentumokat is.
Egy sznsk
alabol grafikusan valaszthatunk szneket, ezek sznkodkent rodnak be az aktv ter
uletre.
Az R nyelvvel es kornyezettel kapcsolatos keresesi fel
ulet, valamint hasznos
internetes kapcsolatok, illetve pdf-dokumentumok gy
ujtemenye.
A munkafolyamatban letrejott, illetve a betoltott csomagok reszet kepezo
objektumok listajabol valaszhatunk.
A munkafolyamatban letrehozott fajlok (pl.: jegyzetek) kozott lehet tallozni.
F
ajlkezel
ot nyit meg.
K
oz
os jegyzetf
uzetet nyit meg, aminek a tartalma egy RTF-fajlba lesz kirva.
A felhaszn
alo altal jegyzet hozhato letre, ami RTF-allomanyba rodik ki.
A munkafolyamatban soran jegyzet hozhato letre, ami RTF-allomanyba rodik ki.
nyithatunk u
jabb grafikai ablakot, illetve az egyes grafikai ablakok aktivitasat az ablakokbol iranythatjuk. Uj
grafikus ablakot a File men
u New Graph CTRL+N opciojaval nyithatunk. Az adott grafikai ablakot pedig az
Edit men
u Activate CTRL+A men
upontj
aval aktivizalhatjuk, aminek termeszetesen az a kovetkezmenye, hogy
az addig aktv grafikai ablak inaktv lesz. Ugyanezt erthetj
uk el az eszkoztar negyedik es otodik gombjanak
lenyomasaval is.
52.
abra. SciViews R grafikai ablak
GRAFIKUS FELULETEK
108
SciViews R Report
A SciViews R Report egy HTML-szerkeszto, amibe kozvetlen
ul tudunk beilleszteni a SciViews R grafikai
ablakbol, illetve a SciViews R-konzolb
ol kepeket, tablazatokat (53. abra). Az R-kornyezetbol szarmazo abrakhoz,
szamszer
u eredmenyekhez magyar
azatokat f
uzhet
unk, gy teljes jelentesek keszthetok.
53.
abra. SciViews R jelentesszerkeszto
SciViews R Bundle fu
enyek
ggv
Az alabbi f
uggvenyek a SciViews R Bundle reszei. Parancssorbol hvhatjuk meg oket.
export
Segtsegevel egyes R-objektumokat tudunk exportalni, k
ulonbozo kimeneti formakban.
export(x, type = "raw", file, append = FALSE,
objname = deparse(substitute(x)), ...)
Az x az exportaland
o objektum, type argumentumnak pedig megadhatjuk a raw, az ascii, a html, a latex
vagy a sascode valamelyiket.
SCIVIEWS-R GUI
109
R-objektumtol f
ugg. A view(iris) utast
as eredmenyet mutatja az 54. abra. Az R view ablak megjelenesenek
stlusat megvaltoztathatjuk (<default>, Pastel, R2HTML, Report, SciViews), tartalmat elmenthetj
uk, illetve
atadhatjuk a SciViews R Report-nak.
clippaste
A copy utast
assal a v
ag
olapra helyezett objektumot egy masik objektumba illeszti be.
clippaste(name = "newobj", type = "ascii", objclass = "data.frame", pos = 1, ...)
110
GRAFIKUS FELULETEK
report
A report f
uggvenyt jelentesgener
al
asra hasznalhatjuk. Peldaul a report(iris) general egy tablazatot az
iris adatokbol, amit a SciViews R Report-ban jelent meg.
ODBC-kapcsolat l
etrehoz
asa
A kovetkezokben (kezd
o felhaszn
al
ok reszere) nehany ODBC-kapcsolat letrehozasat mutatom be Microsoft
Windows kornyezetben. A m
uveletek egy resze a k
ulonbozo adatforrasokhoz megegyezik:
A Start men
ub
ol kiv
alasztjuk a Be
allt
asok men
un bel
uli Vezerl
opult almen
ut.
A megjelen
o f
ajlkezel
ob
ol kiv
alasztjuk a Fel
ugyeleti eszk
oz
ok parancsikont
A megjelen
o indt
oikonok k
oz
ul kiv
alasztjuk az ODBC adatforr
asok elnevezes
ut
Az 55. abran l
athat
o p
arbeszed-ablakon a Felhaszn
al
oi DSN f
ulecskevel ellatott fel
uleten a Hozz
aad
as. . .
adatforr
gombra kattintva megjelenik az Uj
as letrehoz
asa elnevezes
uu
rlap, amelyen az egyes meghajtoknak
megfeleloen folytatjuk a kapcsolat felepteset.
Az adott adatforr
asnak megfelel
o illeszt
oporogramot kivalasztjuk az u
rlap listajabol (56. abra)
Microsoft Excel
Az Excel eseteben az adott munkaf
uzethez az alabbi illesztoprogramok koz
ul valaszthatunk :
Driver do Microsoft Excel (*.xls)
Microsoft Excel Driver (*.xls)
Microsoft Excel-Treiber (*.xls)
A fentiek koz
ul valamelyiket kiv
alasztva es a Befejezes gombra kattintva megjelenik az 57. abran lathato u
rlap.
Ezen elso lepesben nevezz
uk el a letrehozando kapcsolatot (a peldaban: ODBCexcel). Ezutan tanacsos kivalasztani a Verzi
o leg
ord
ol
o men
ub
ol az adott Excel munkaf
uzet verziojat. Kovetkezo lepeskent a Munkaf
uzet
v
alaszt
asa. . . gomb megnyom
asa k
ovetkezteben megjeleno fajlkezelo segtsegevel kivalasztjuk azt az Excel munkaf
uzetet, amelyhez a kapcsolatot eptj
uk. Veg
ul nincs mas dolgunk, mint az OK gombra kattintani, gy az 55.
abran lathato Felhaszn
al
oi adatforr
as list
aj
aban megjelenik az u
j ODBC-kapcsolat neve.
Microsoft Access
Az Access eseteben az adott munkaf
uzethez az alabbi illesztoporogramok koz
ul valaszthatunk :
Driver do Microsoft Access (*.mdb)
Microsoft Access Driver (*.mdb)
Microsoft Access-Treiber (*.mdb)
Az 58. abran lathat
ou
rlapon az Excelhez hasonloan el kell nevezn
unk a kapcsolatot (a peldaban: ODBCaccess).
A Kiv
alaszt
as. . . gomb megnyom
asa ut
an megjeleno fajlkezelovel megkeress
uk a Microsoft Access (.mdb) adatbazist, amihez kapcsolatot szeretnenk kiepteni. Az OK gombra kattintva a az 55. abran lathato Felhaszn
al
oi
adatforr
as listajaban m
aris megjelenik az u
j ODBC-kapcsolat neve.
111
112
ODBC-KAPCSOLAT LETREHOZ
ASA
55.
abra. ODBC meghajto kivalasztasa
56.
abra. ODBC illesztoprogram kivalasztasa
MICROSOFT ACCESS
113
57.
abra. Az illeszto bealltasa Excel munkaf
uzethez
58.
abra. Az illeszto bealltasa Access adatbazishoz
ODBC-KAPCSOLAT LETREHOZ
ASA
114
59.
abra. Az illeszto bealltasa MySQL adatbazishoz I.
60.
abra. Az illeszto bealltasa MySQL adatbazishoz II.
MySQL
Ahhoz, hogy ODBC-kapcsolatot tudjunk letrehozni egy MySQL-adatbazishoz, elotte telepteni kell a MySQL
Connector/ODBC 36 meghajt
ot. Az 56.
abra illesztoprogram listajabol kivalasztjuk a MySQL ODBC 3.5137
Driver -t es a Befejezes gombra kattintva az 59. abran lathato u
rlap jelenik meg. Az u
rlapon legalabb ket mezot
ki kell tolten
unk: a Data Source Name lesz az adatforras neve (ODBCMySQL), a Database Name pedig az az
adatbazis (minta), amihez az interfeszt akarjuk kiepteni. Tovabbi mezok is kitoltendok, ha sz
ukseges (a User
es a Password ), de ez
altal
aban nem kell. A kapcsolat bealltasainak ellenorzesere erdemes a Test Data Source
gombra kattintanunk. Ha minden rendben van, akkor a 60. abrahoz hasonlo u
zenetet kapunk. A korabbi ket
kapcsolattpushoz hasonl
oan, az 59.
abra OK gombjara kattintva az 55. abran lathato Felhaszn
al
oi adatforr
as
listajaban megjelenik az u
j ODBC kapcsolat neve.
PostgreSQL
A PostgreSQL szerver telepteset nem kell kiegeszten
unk k
ulon ODBC-meghajto installalasaval. Az 56.
abra altal jelzett u
rlapr
ol kiv
alasztjuk a PostgreSQL listaelemet. A Befejezes gombra kattintva a 61. abran
lathato u
rlap jelenik meg. Ezen a fel
uleten mindenkeppen ki kell tolteni a kovetkezo mezoket: Data Source,
Database, Server, User Name es Password. Az elso elem lesz a Felhaszn
al
oi adatforr
as listajaba bejegyzett
36 http://www.mysql.com/products/connector/odbc/
37 A
verzi
osz
am term
eszetsen a teleptett verzi
ot
ol f
ugg.
POSTGRESQL
115
61.
abra. Az illeszto bealltasa PostgreSQL adatbazishoz
nev (ODBCpgSQL). A m
asodik pedig az adatb
azis neve (minta), amivel a kapcsolatot szeretnenk letrehozni. A
harmadik elem a szerver neve, ami ha nem h
alozati, akkor valoszn
uleg localhost lesz. Az adott adatbazishoz
jogosultsaggal rendelkez
o felhaszn
al
onevet is meg kell adni, illetve annak jelszavat is. Ha mindent jol adtunk
meg, akkor a Save gombra kattintva kattintva az 55. abran lathato Felhaszn
al
oi adatforr
as listajaban megjelenik
az u
j ODBC kapcsolat neve.
Szoftverintegr
aci
o
Nehany egyszer
u peld
an kereszt
ul mutatom be annak lehetosegeit, hogy egyeb szoftverekkel, programozasi
nyelvekkel hogyan lehet
osszekapcsolni az R-kornyezet kepessegeit.
R (D)COM Server
Microsoft Windows oper
aci
os rendszerre elerheto egy COM szerver (R (D)COM Server 38 ), ami lehetove
teszi, hogy kliens-szoftverek kapcsolatot teremthessenek az R-kornyezettel.
Microsoft Excel
Ha az R (D)COM Server teleptese sor
an az Excel Add-In jelolonegyzetet bejelolj
uk, akkor a Microsoft
Excel men
urendszereben az Ablak es a S
ug
o men
upontok kozott megjelenik egy RExcel men
upont. Az RExcel
62.
abra. R (D)COM Server telepto kepernyo
almen
upontjai k
oz
ott tal
alhat
o az R Start opcio, amivel az ExcelR kapcsolatot megnyitjuk. Ennek kovetkezteben az Excelen bel
ul haszn
alhatunk R-f
uggvenyeket, -objektumokat. Harom k
ulonbozo modon dolgozhatunk
az R-rel az Excelen bel
ul: jegyzetf
uzet-m
od, makr
o-m
od es munkaf
uzet-m
od.
A jegyzetf
uzet-m
odban az R-k
odokat k
ozvetlen
ul hasznalhatjuk az Excel munkaf
uzeten bel
ul, illetve adatobjektumokat tudunk a ket k
ornyezet k
oz
ott
atadni. Az RExcel men
ubol elerheto parancsokat hasznalhatjuk: R
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
o-m
odban VBA-nyelven rhatunk makrokat, a kovetkezo eljarasok es f
uggvenyek felhasznalasaval:
RInterface.StartRServer(),
RInterface.StopRServer(),
RInterface.RRun(commandstring),
RInterface.PutArray(varname,range),
RInterface.GetArray(varname,range).
A munkaf
uzet-m
odban k
ozvetlen
ul hvhatunk meg R-f
uggvenyeket az Excel-cellakban. Ehhez a kovetkezo
f
uggvenyeket haszn
alhatjuk:
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).
Python
Az R-kornyezet haszn
alhat
o Python-nyelv alkalmazasaval is, ezaltal a Python-szoftverek kihasznalhatjak az
R-nyelv statisztikai, grafikai kepessegeit. Ahhoz, hogy az R (D)COM-ot elerhess
uk a Pythonnal, telepten
unk
kell a win32com interfeszt39 . Ezek ut
an m
ar meghvhatjuk az R-f
uggvenyeket a Python-ertelmezon is, peldaul
a kovetkezo modon:
39 http://www.python.org/windows/win32com/
118
SZOFTVERINTEGRACI
RPy
Az RPy-csomag teleptesevel40 letrehozunk egy interfeszt a Python es az R-kornyezet kozott. Ez az interfesz
lehetove teszi, hogy platformf
uggetlen m
odon rhassunk olyan programokat, amelyek mind Python, mind pedig R-kodokat tartalmaznak. A telept
ocsomag kivalasztasanal nagyon figyelj
unk, hogy mind a rendszer
unkon
teleptett Python-nak, mind az R-nek megfelelo verziot szerezz
unk be. Egy nagyon egyszer
u pelda lathato az
alabbiakban:
from rpy import *
r.sum(r.rnorm(300))
Az r. elotaggal jelezz
uk azt, hogy az R-k
ornyezet f
uggvenyet hvjuk meg.
40 http://rpy.sourceforge.net/
Irodalomjegyz
ek
119
T
abl
azatok jegyz
eke
1.
2.
3.
4.
5.
6.
7.
8.
9.
Foreign csomag f
uggvenyek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
A read.table f
uggvenycsoport k
ul
onbsegei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
A formatC ertekform
al
o k
odjai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
10.
Grafikai meghajt
ok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11.
12.
13.
14.
15.
Osszehasonl
t
o oper
atorok
Logikai oper
atorok . . . .
String-f
uggvenyek . . . . .
Specialis karakterek . . .
Altal
anos f
uggvenyek . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
120
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
20
20
24
38
40
53
. 65
. 66
. 69
. 70
. 70
T
argymutat
o
.RData, 10
.Rhistory, 10
<-, 9
abind, 99
abs, 70
acos, 70
adatbazis, 46
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.off(), 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
effects, 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
fig, 59
figs, 57
fin, 59
fix, 26, 36, 91
floor, 70
font, 59
font.axis, 59
font.lab, 59
font.main, 59
121
TARGYMUTAT
O
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
indexeles, 31
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
magyartas, 45
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
proba, 6
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
TARGYMUTAT
O
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
specialis karakterek, 69
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
123
update.packages, 92, 94
usr, 61
var, 70
vector, 25, 31
view, 109
which.max, 70
which.min, 70
while, 65
widths, 55
win.metafile(), 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
xfig(), 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