You are on page 1of 123

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

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.

Solymosi Norbert, 2005

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.

Budapest, 2005. szeptember 27.


Solymosi Norbert
Biomatematikai es Sz
amt
astechnikai Tanszek

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

elobbieknel tobb, a men


urendszerb
ol elerhet
o funkcioval rendelkezik.
1 http://www.gnu.hu/
2 http://www.gnu.org/copyleft/lgpl.html
3 http://www.insightful.com/
4 http://www.plt-scheme.org/
5 http://cran.r-project.org/
6 http://www.bioconductor.org/

OD
ENEK

ES
AZ R MUK
ALAPELVEI

1. abra. Linux-os terminal

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

& Keywords resz csak akkor m


uk
odik ha teleptett Java-val rendelkez
unk valamint ha a browser
unk Java es
JavaScript tamogat
assal rendelkezik.
A help() utastast csak akkor tudjuk haszn
alni, ha pontosan ismerj
uk a keresett f
uggveny nevet. Ha nem helyes adjuk meg a f
uggveny nevet, mint a k
ovetkezo peldaban, akkor nem jutunk a vart informaciohoz: Ha pl.
szeretnenk a t-teszt alkalmaz
as
aval kapcsolatos informaciokat es nem tudjuk a f
uggveny pontos nevet, megprobalhatjuk a help(t-test) utast
ast.
> help(t-test)
No documentation for 't - test' in specified packages and libraries:
you could try 'help.search("t - test")'
Az u
ozli vel
unk az R, hogy a bet
olt
ott csomagok kozott nem talalt ilyen f
uggvenyt, es felajanlja,
zenetben k
hogy a help.search() f
uggvennyel pr
ob
aljuk megtalalni azokat a csomagokat, illetve f
uggvenylerasokat, amelyekben ez a szo
osszetetel szerepel. Mg az alapbealltasokkal a help() csak az aktualisan bet
olt
ott csomagok
kozott keres, addig a help.search() az
osszes teleptett R konyvtarban. Amennyiben a help() f
uggvenyben
a try.all.packages argumentumot TRUE-ra alltjuk, akkor nem csak a betoltott, hanem az osszes teleptett
csomagban keres az objektum nevere. Hozz
ateve azt, ha eppen nincsen betoltve a teleptett csomag az R-be,
akkor nem fogja megjelenteni az objektumhoz tartozo lerast, csak azt adja meg, hogy mely csomag tartalmazza
azt.
> help(glh.test, try.all.packages=T)
Help for topic 'glh.test' is not in any loaded package but can be
found in the following packages:
Package
gmodels

Library
C:/PROGRA~1/R/rw2011/library

A jelzett csomag bet


oltese ut
an a s
ug
o kirja a hasznalattal kapcsolatos informaciokat. Masik lehetoseg az
informacio megszerzesere, ha az intez
o segtesevel megnyitjuk a megjelolt konyvtarat, vagyis a fenti pelda szerint
a C:\Program Files\R\rw2001\library k
onyvtaron bel
ul a gmodels alkonyvtarat. Itt a 24. abrahoz hasonlo
szerkezetet lathatunk, amelyen bel
ul van egy chtml| alkonyvtar. Ez tartalmaz egy gmodels.chm fajlt, ami egy
allomanyban tartalmazza a csomag teljes dokumentaciojat. Lathato, hogy az altalunk megadott t-test sz
oveget
az R atalaktotta t - test-e. Most pr
ob
aljuk megkeresni a help.search("t - test") utastassal a keresett
f
uggvenyt.
> help.search("t - test")
No help files found with alias or concept or title matching 't - test'
using fuzzy matching.
Sajnos gy sem tudtunk meg semmit a t-teszt hasznalatarol. Most probaljuk meg u
gy, hogy a kotojel ket vegerol
a szokozoket elhagyjuk.
> help.search("t - test")
bartlett.test(stats)
fisher.test(stats)
pairwise.t.test(stats)
power.t.test(stats)
t.test(stats)

Bartlett Test for Homogeneity of Variances


Fisher's Exact Test for Count Data
Pairwise t tests
Power calculations for one and two sample t
tests
Student's t-Test

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"

Amennyiben csak azokat az objektumok keress


uk, amelyek nevenek a vegen szerepel a keresett karakterlanc, a
kovetkezo szerint vegezhetj
uk el:
> apropos("*.test")
[1]
[4]
[7]
[10]
[13]
[16]
[19]
[22]
[25]
[28]

"ansari.test"
"Box.test"
"fisher.test"
"kruskal.test"
"mcnemar.test"
"pairwise.prop.test"
"power.anova.test"
"PP.test"
"quade.test"
"var.test"

"bartlett.test"
"chisq.test"
"fligner.test"
"ks.test"
"mood.test"
"pairwise.t.test"
"power.prop.test"
"prop.test"
"shapiro.test"
"wilcox.test"

"binom.test"
"cor.test"
"friedman.test"
"mantelhaen.test"
"oneway.test"
"pairwise.wilcox.test"
"power.t.test"
"prop.trend.test"
"t.test"

Amennyiben csak azokat az objektumok keress


uk, amelyek nevenek az elejen szerepel a keresett karakterlanc,
gy tehetj
uk meg:
> apropos("^test")
[1] "testVirtual"

"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

Explore some properties of R objects and


is.FOO() functions. Not for newbies!
Using recursion for adaptive integration
An illustration of lexical scoping.

Demos in package 'graphics':


Hershey
Japanese
graphics
image
persp
plotmath

Tables of the characters in the Hershey vector


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

Demos in package 'stats':


glm.vr
lm.glm

nlm
smooth

Some glm() examples from V&R with several


predictors
Some linear and generalized linear modelling
examples from `An Introduction to Statistical
Modelling' by Annette Dobson
Nonlinear least-squares using nlm()
`Visualize' steps in Tukey's smoothers

Ha az osszes teleptett csomaghoz tartoz


o bemutatoszkriptet ki szeretnenk listazni, akkor a fenti forma helyett
a demo(package = .packages(all.available = TRUE)) utastast hasznaljuk. A listakbol kivalasztva egy demot, pl. a graphics csomagb
ol az image bemutatot, a demo(image) utastassal futtathatjuk le.

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

adott elem(ek)re. Az adott objektumb


ol kiolvashatjuk a neveket a names f
uggvennyel. Ugyanakkor a <-names
formaban rhajuk is azokat, termeszetesen ekkor u
gyelni kell a tpusra es a meretekre. Egy dimenzios tombok
eseteben a names attrib
utum tulajdonkeppen a dimnames[[1]]-el egyezik meg.

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

Fontosabb typeof visszateresi ertekek


jelentese
Null
v
altozo neve
f
uggveny
logikai ertekekbol allo vektor
egesz szamokbol allo vektor
lebegopontos szamokbol allo vektor
komplex adatokbol allo vektor
karaktervektor
lista
binaris vektor
19

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

> a <- 1:10


> a
[1]

9 10

> a <- 1:10 - 1


> a
[1]

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]

Ez utobbi esetben a sorozat kezd


o erteke 1 lett, mivel nem a vektor mindegyik elemebol vontunk ki egyet, hanem
a szekvencia maxim
alis ertekeb
ol, amit a : ut
ani zarojellel adtunk meg.
> a <- seq(1, 5, 0.5)
> a
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
, ahol az seq f
uggveny els
o argumentuma a kezdete, a masodik a vege, a harmadik pedig a novekvenye a
sorozatnak. Mas m
odon is el
oa
llthat
o az el
oz
o sorozat:
> a <- seq(length = 9, from = 1, to = 5)
> a
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
, ahol a length a sorozat elemsz
am
at, a from a kezdetet, a to pedig a veget jelenti.
rep
Vektorok vagy list
ak elemeit ismetli es ez
altal hoz letre sorozatot. Az altalanos rep f
uggvenynel gyorsabb az
egyszer
ustett rep.int v
altozat.
rep(x, times, ...)
## Default S3 method:
rep(x, times, length.out, each, ...)
rep.int(x, times)
A rep f
uggveny argumentumainak ler
asa:
x
times

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.

> a <- gl(3, 5)


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

24

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

Female Female Female Female

> a <- gl(2, 10)


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

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.

A letrehozott vektor ertekei att


ol f
uggenek, hogy milyen m
od ot alltottunk be: 0 ha numerikus, FALSE ha logikai
vagy "" ha karakteres. A vector f
uggveny, aminek ket argumentuma van (mode es length), letrehoz egy vektort,
> a <- vector(mode = "numeric", length = 5)
> a
[1] 0 0 0 0 0
> a <- vector(mode = "logical", length = 5)
> a
[1] FALSE FALSE FALSE FALSE FALSE
> a <- vector(mode = "character", length = 5)
> a
[1] "" "" "" "" ""
Ugyanezt erhetj
uk el egyetlen argumentum (length) megadasaval, ha a numeric, a logical vagy a character
f
uggvenyeket haszn
aljuk.
> a <- numeric(length = 5)
> a
[1] 0 0 0 0 0
> a <- logical(length = 5)
> a
[1] FALSE FALSE FALSE FALSE FALSE
> a <- character(length = 5)
> a
[1] "" "" "" "" ""

Faktor
A faktorokat 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

Vektor, karakter vagy numerikus.


Vektor, amely azon ertekekbol allhat, amelyekbol a x felep
ul. (Alapertelmezesben
a x vektor n
ovekv
o sorba alltott egyedi ertekei.)

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

Most letrehozunk egy vektort es azt faktorr


a alaktjuk:
> a <- rep(c(1, 2, 3), 3)
> a
[1] 1 2 3 1 2 3 1 2 3
> r <- factor(a)
Vess
unk egy pillant
ast az eredmeny
ul kapott r faktor belso szerkezetere, a fix(r) utastassal:
structure(as.integer(c(1, 2, 3, 1, 2, 3, 1, 2, 3)), .Label = c("1", "2", "3"),
class = "factor")
> r <- factor(x, levels = 1:5)
> r
[1] 1 2 3 1 2 3 1 2 3
Levels: 1 2 3 4 5
> r <- factor(a, labels = c("a", "b", "c"))
> r
[1] a b c a b c a b c
Levels: a b c
> r <- factor(a, exclude = 3)
> r
[1] 1
2
Levels: 1 2

<NA> 1

<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,]

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


1
3
2
1
2
1
3
2

> nevek <- list(c(1, 2), c("a", "b", "c", "d"))


> r <- array(data = a, dim = c(2, 4), dimnames = nevek)
> r
a b c d
1 1 3 2 1
2 2 1 3 2
A tobbdimenzios t
omb
ok sk kontingencia-t
ablazatta alaktasara egyszer
u eszkoz a ftable f
uggveny.

> ftable(Titanic, row.vars = 1:3)


Survived
Class Sex
1st
Male
Female
2nd

Male
Female

3rd

Male
Female

Crew

Male
Female

Age
Child
Adult
Child
Adult
Child
Adult
Child
Adult
Child
Adult
Child
Adult
Child
Adult
Child
Adult

No Yes
0
5
118 57
0
1
4 140
0 11
154 14
0 13
13 80
35 13
387 75
17 14
89 76
0
0
670 192
0
0
3 20

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

Az adatokat tartalmazo vektor. Ha nem adjuk meg, akkor egy u


res matrixot hoz
letre.
A sorok sz
am
at adhatjuk meg vele. Rovidtese nr.

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.

A matrix kepzesenel a sorok sz


am
at az nrow (rovidtve nr), az oszlopok szamat az ncol (rovidtve nc) argumentummal adjuk meg. Legal
abb az egyiket meg kell adnunk.
> a <- 1:6
> m <- matrix(a, nr = 3)
> m
[1,]
[2,]
[3,]

[,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

ez e nev fog szerepelni a tablazat fejleceben.


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)

> r <- data.frame(x, M)


> r
1
2
3
4

x
1
2
3
4

M
10
35
10
35

Ha viszont a hosszabb nem oszthat


o a r
ovidebbel, akkor hibat general a f
uggveny.
r<-data.frame(x,y)
Error in data.frame(x, y) : arguments imply differing number of rows: 4, 3
Amennyiben az adatt
abla egy oszlopa nem vektor, hanem faktor, arra is vonatkozik, hogy azonos hossz
usag
unak
kell lennie. Az adatt
abl
aba beep
ul
o vektorok oszlopok lesznek, amiknek a neve alapertelmezesben a vektor neve
lesz (ezt modosthatjuk).
> r <- data.frame(oszlop1 = x, oszlop2 = n)
> r
1
2
3
4

oszlop1 oszlop2
1
10
2
10
3
10
4
10

A rows.names argumentum segtsegevel a sorokat is elnevezhetj


uk, a bemeneti objektum vektorkent adando
meg, es a hosszanak meg kell egyeznie a t
abl
azat oszlopainak hosszaval.
> r <- data.frame(oszlop1 = x, oszlop2 = n, row.names = c("a",
+
"b", "c", "d"))
> r
a
b
c
d

oszlop1 oszlop2
1
10
2
10
3
10
4
10

30

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.

> lista1 <- list(x, y)


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

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

numerikus vektor vagy matrix. Amennyiben data.frame a bemeno adat, akkor a


data.matrix f
uggvennyel numerikus f
ugvennye alaktja a ts f
uggveny
az els
o megfigyeles idopontja. Akar egy egesz szam, akar egy ket szambol allo vektor, amely megad egy termeszetes idoegyseget es egy 1-gyel kezdodo mintaszamot
az utols
o megfigyeles idopontja, start-hoz hasonloan.
az id
oegysegen bel
uli megfigyelesek szama.
ket megfigyelesi id
opont kozti mintaveteli resze (pl.: 1/12 a havonkenti adatokhoz).
Vagy csak a frequency, vagy csak a deltat adhato meg.
az id
osor
osszehasonltasi toleranciaja. A gyakorisagok egyenlonek tekintendok, ha
az abszol
ut k
ul
onbsegeik kisebbek, mint ts.eps erteke.
az eredmenyhez rendelt osztaly. Az alapertelmezett ertek ts egy egyszer
u idosorhoz, vagy c("mts", "ts") tobbszoros idosorhoz.
karaktervektor, ami a tobbszoros idosorok neveit adja meg, az alaperteke a data
oszlopnevei vagy Series 1, Series 2, . . .

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

> ts(1:20, start = c(1974, 8), frequency = 4)


1975
1976
1977
1978
1979
1980

Qtr1 Qtr2 Qtr3 Qtr4


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

> ts(1:20, start = c(1974, 8), frequency = 12)


1974
1975
1976

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17
18 19 20

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

> x <- matrix(1:9, nc = 3)


> x

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

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


1
4
7
2
5
8
3
6
9

> 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]


2
5
8
3
6
9

> x[, -1]

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

[,1] [,2]
4
7
5
8
6
9

> x[-1, -1]

[1,]
[2,]

[,1] [,2]
5
8
6
9

> x[-c(1, 3), ]


[1] 2 5 8
Ahogy lathato a peld
ab
ol, az objektumb
ol elt
avolthatunk elmeket, sorokat, oszlopokat. Az objektumok elemei
koz
ul lekerdezhetj
uk a bizonyos felteteleknek megfeleloket.
> x[x >= 5]
[1] 5 6 7 8 9
A matrixbol azokat az ertekeket gy
ujti ki, amelyek ottel egyenlok vagy nagyobbak.
> which(x >= 5)
[1] 5 6 7 8 9
A feltetelnek megefelel
o elemek indexeit is kigy
ujthetj
uk, latszolag ugyanaz az eredmeny, de mg az elozo peldaban az ertekeket, itt az idexeket gy
ujt
ott
uk ki. Az egyes felteteleknek megfelelo elemeket fel
ul is rhatjuk.
> x[x >= 5] <- 10
> x


OBJEKTUMOK
ADATTAROL
O

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

33

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


1
4
10
2
10
10
3
10
10

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,]

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


1
4
7
2
5
8
3
6
9

Ha huzamosabban dolgozunk egy adatt


arol
o objektummal, akkor a nevvel valo hivatkozas soran az objektum
nevenek es a $ t
obsz
or
os begepelese feleslegesnek t
unhet. Ezert lehetoseg van arra, hogy az adott objektumra
rakapcsolodhassunk, es gy a munka sor
an az objektum nevet nem kell minden alkalommal megadnunk. Erre

szolgal az attach f
uggveny. Az el
oz
o pelda az attach f
uggveny hasznalataval:
> attach(lista)
> r

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

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


1
4
7
2
5
8
3
6
9

Egyszerre egy adatt


arol
o objektumra kapcsol
odhatunk, egy u
jabbara valo kapcsolodas az elozorol valo automatikus lekapcsolast is jelent. A lekapcsol
asra hasznalhatjuk a detach f
uggvenyt is.

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

Ahogy peldank mutatja a valtozo.lista ler


o adatai koz
ul kiolvashato, hogy az egyes vektorok milyen hossz
uak,
illetve milyen m
od
uak.
str
Az str f
uggveny teljesen reszletes kepet ad az adott R-objektum str ukt
urajarol. A summary f
uggvenyhez kepest
alternatv diagnosztikai elj
ar
askent haszn
alhato.
> str(valtozo.lista)
List
$ :
$ :
$ :

of 3
chr [1:5] "y" "x" "c" "v" ...
num [1:3] 1 2 3
num [1:2] 1.2 2.3

A str az 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)

Adatbevitelhez a valtozo.lista lista form


atum
u objektumaba gepelj
uk be a kovetkezot:
> de(valtozo.lista, Names=c('i','j','k'))
Ha a megjeleno t
abl
azatban berunk a j oszlopba egy u
j erteket, mondjuk 4-et, akkor az alabbi lista rodik ki a
terminalba:


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

Most probaljuk ki a de helyett a data.entry f


uggvenyt az u
j ertek berasahoz:
> data.entry(valtozo.lista, Names=c('i','j','k'))
$valtozo.lista
$valtozo.lista$i
[1] "y" "x" "c" "v" "b"
$valtozo.lista$j
[1] 1 2 3 4
$valtozo.lista$k
[1] 1.2 2.3
Az str f
uggvennyel ellen
orizz
uk, hogy a valtozo.lista objektumban tortent-e valtozas.
> str(valtozo.lista)
List of 3
$ i: chr [1:5] "y" "x" "c" "v" ...
$ j: num [1:4] 1 2 3 4
$ k: num [1:2] 1.2 2.3
Lathato, hogy (az el
oz
o peld
aval ellentetben) a bert u
j ertek beker
ul a valtozo.lista objektumba. A f
uggvenycsoport harmadik tagja a dataentry, aminel a lista formaj
u adatok mellett mindenkeppen meg kell hatarozni
(ugyancsak lista form
aj
aban) az egyes vektorok m
od jat is.
> dataentry(valtozo.lista,list('character','numeric','numeric'))
Az elozoekhez kepest a megjelen
o t
abl
azat mezofeliratai: var0,var1,var2. Ha egy u
j erteket adunk a var1
oszlophoz, a tabl
azat bez
ar
asa ut
an a termin
alba (az alabbiak szerint) kirodik:
$var0
[1] "y" "x" "c" "v" "b"
$var1
[1] 1 2 3 4
$var2
[1] 1.2 2.3
Az str f
uggvennyel ellen
orizz
uk, hogy a valtozo.lista objektumban tortent-e valtozas.
> str(valtozo.lista)
List of 3
$ i: chr [1:5] "y" "x" "c" "v" ...
$ j: num [1:4] 1 2 3
$ k: num [1:2] 1.2 2.3
Vagyis az eredmeny hasonl
o, mint a de eseteben, az objektum nem valtozott meg.

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 adatobjektum, amibol a levalogatast vegeznenk.


Logikai kifejezes.
E kifejezes meghat
arozza, hogy mely oszlopok adatait valogassa le a f
uggveny.
Ha TRUE, akkor a leheto legalacsonyabb dimenzionak megfeleloen fogja ossze az
eredmenyt.
Tov
abbi argumentumok.

> a <- 1:20


> subset(a, a > 10)
[1] 11 12 13 14 15 16 17 18 19 20
Az a vektorbol lev
alogattuk a 10-nel nagyobb ertek
u elemeket. A tovabbiakban a data.frame-et hasznalo peldakban az airquality adat
allom
anyt fogjuk hasznalni. Az alaptablazat 6 oszlopbol es 153 rekordbol all:
> dim(airquality)
[1] 153

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

o ertekek a sor vegere, ha FALSE, akkor az elejere ker


ulnek. Ha az erteke NA,
akkor a hi
anyz
o ertekeket eltavoltja.
method
A reszleges rendezes modszere.
Peldak: A korabban el
o
alltott lekerdezes t
ablazat rekordjai nem rendezettek:
x
partial
decreasing

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

Az alabbi peldaban az Ozone oszlop alapj


an novekvo sorrendbe rendezz
uk a tablat:
> lekerdezes[sort.list(lekerdezes$Ozone),]

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 kialaktott kapcsolaton kereszt


ul az al
abbi ket modon is kiolvashatjuk az egyes munkalapokban tarolt adatokat.
> adat <- sqlQuery(kapcsolat,"select * from [Munka1$]")
> adat <- sqlFetch(kapcsolat,"Munka1")
Mindket peldaban a Munka1 nev
u munkalap adattartalmat olvastuk ki es adtuk at az adat objektumnak.
Az elso pelda azt mutatja be, hogy egy SQL-lekerdezes segtsegevel hogyan olvashatjuk az adott munkalapot.
Nagyon fontos, hogy az SQL-k
odban a $-jelnek es a szogletes zarojeleknek a fenti peldaban megadott szintaxis
szerint jelen kell lennie.
A masodik megold
as szintaktikailag egyszer
ubben adja ugyanazt az eredmenyt.
bla
zatok nem mo
dostFontos megjegyezni, hogy az ODBC-kapcsolaton kereszt
ul az Excel ta
k, csak olvashato
k!
hato
A gregmisc k
onyvt
ar read.xls fu
eny
enek segts
eg
evel
ggv
Ahhoz, hogy ezt a f
uggvenyt tudjuk hasznalni, nem elegendo a gregmisc csomagot telepteni, sz
ukseg van
arra, hogy Perl is legyen teleptve gep
unk
on. Az ActivePerl 13 teleptese utan a gep
unkon lesz egy hasznalhato
Perl.
> library(gregmisc)
> adat <- read.xls("d:/excel.xls', 1, perl="C:/perl/bin/perl.exe")
A f
uggveny elso argumentum
aval megadjuk az adott excel fajlt, a masodikkal a munkalap sorszamat, a harmadikkal pedig a perl.exe eleresi u
tvonal
at hat
arozzuk meg.
Excel-
allom
any CSV-form
atumba alakt
asa
Ahogy a kesobbiekben l
atni fogjuk, az R tobb f
uggveny segtsegevel is kepes a comma separeted value (.csv)
allomanyok olvas
as
ara. Igy az Excel-
allom
anyok hasznalatanak az egyik lehetosege az, ha atalaktjuk .csv allomannya.
Ha a gep
unkon fut Microsoft Excel, Open Office vagy mas irodai programcsomag, amelyeknek van tablazatkezelo
alkalmazasa, akkor annak segtsegevel elmenthetj
uk .csv kiterjesztessel az adott .xls allomanyt.
A xls2csv14 alkalmaz
as segtsegevel szinten elvegezhetj
uk az allomany atalaktasat. Mivel nem kell telepteni,
csupan a tomortett
allom
anyt kell kicsomagolni, olyan gepeken is hasznalhato, amin nincsen teleptesi jogosultsagunk. A kovetkez
o k
oddal (DOS) egy .xls allomanyt alakthatunk at .csv fajlla.
D:\catdoc-0.94>xls2csv.exe -q 1 -c ; d:\excel.xls > d:\excel.csv
Az itt lathato parameterezesnel t
obb is lehetseges, de az R-hez valo atalaktasnak ez is teljesen megfelel. A -q
utan allo 1 azt jelenti, hogy csak a sz
oveges cellak lesznek idezojelek koze foglalva. A -c utan allo ; az oszlopokat
elvalaszto karakter megad
as
ara szolg
al.

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.

Az alapertelmezett TRUE-ertek mellett a mezoneveket ellenorzi, hogy megfelelnek-e


a v
altoz
ok elnevezesi szabalyainak.
Ha ezt TRUE-ra
alltjuk, akkor (ha van olyan sora forrasallomanynak, ami kevesebb
mez
ot tartalmaz) a f
uggveny feltolti u
res cellakkal, a sor vegere illesztve azokat.
Alapertelmezesben !blank.lines.skip.
Ha a sep argumentumot bealltottuk, es ha ennek az erteket TRUE-ra alltjuk, akkor
a sz
oveges mez
ok elejen, illetve vegen levo szokozoket torli. Alapertelmezesben
FALSE
Ha az alapertelmezett TRUE ertekre van alltva, akkor a forrasfajlbol nem olvassa
be az u
res sorokat, atugorja oket.
A megjegyzeseket megelozo, jelolo karaktert hatarozhatjuk meg vele. Alapertelmezesben #.

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

A megadott objektumot (x) ASCII-


allom
anyba rja ki. Altal
aban matrixokra hasznalatos, amiket erdemes
transzponalni a kir
as el
ott.
write(x, file = "data",
ncolumns = if(is.character(x)) 1 else 5,
append = FALSE)
A write f
uggveny argumentumainak ler
asa:
x
files

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.

> x <- matrix(1:10,ncol=5)


> x <- t(x)
> write(x,"write-al_kirva.txt")
Ha data.frame-re haszn
aljuk, el
otte erdemes
atalaktanunk matrixsza.
>
>
>
>

adat <- read.table("tabla.txt")


adat <- as.matrix(adat)
adat <- t(adat)
write(adat,"write-al_kirva.txt")
17 http://www.sqlite.org/
18 http://www.mysql.com/
19 http://sqlitebrowser.sourceforge.net/
20 http://www.openoffice.org/
21 http://dba.openoffice.org/drivers/sqlite/index.html

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

anyban. Az alapertelmezett "escape" C-stlusban \" formaban rja ki. A


m
asik lehet
oseg a "double" megduplazza a jeleket. Mindket ertek rovidtheto is
az els
o bet
uikkel.

> adat <- read.table("tabla.txt")


> write.table(adat,"write.table-val_kirva.txt")
save
A save f
uggvennyel a megadott objektumokat binaris allomanyba lehet kiratni, elmenteni egy kesobbi R munkafolyamathoz. Az eredmenykent kapot f
ajlt a load f
uggvennyel tolthej
uk be egy u
jabb munkafolyamatba.
save(..., list = character(0),
file = stop("'file' must be specified"),
ascii = FALSE, version = NULL, envir = parent.frame(),
compress = FALSE)
A save f
uggveny argumentumainak ler
asa:
...
list
file
ascii

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

NULL, akkor a fut


o verzio szerint menti el. Erteke
1 az R 0.99.0 verziojatol az
1.3.1-ig. Az alapertelmezett ertek 2 (az R 1.4.0 verzioszamtol kezdodoen).
Azt hat
arozhatjuk meg vele, hogy mely kornyezetben keresse a mentesre kijelolt
objektumokat.
Ha f
ajlba ment
unk, akkor lehetoseg van a kirt allomany tomortesere ezzel a logikai
argumentummal. Ha kapcsolaton kereszt
ul runk ki, vagy a version erteke 1, akkor
nincs lehet
oseg a t
omortesre.


ADATOK KIIRATASA

49

> save(adat, file="save-vel")


> load("save-vel")
save.image
Az elozo f
uggvenyhez hasonl
oan bin
aris
allomanyba rja ki az objektumokat, de nem csak az argumentumkent
megadottakat, hanem minden objektumot, ami a munkakornyezetben talalhato.
save.image(file = ".RData", version = NULL, ascii = FALSE,
compress = FALSE, safe = TRUE)
A save.image f
uggveny save f
uggvenyt
ol eltero argumentumainak lerasa:
safe

Az alapertelmezett TRUE bealltas eseten eloszor kesz


ul egy atmeneti allomany, es
ha a kir
as ebbe sikeres, akkor ez nevezodik at a vegleges allomannya. Bar ez tobb
lemezter
uletet vesz igenybe, a munkafolyamat adatait biztonsagosan kezeli.

A save(list = ls(all=TRUE), file = "minden_objektum.RData") utastassal save.image f


uggveny
eredmenyevel egyez
o eredmenyt erhetj
uk el. Amennyiben az R-bol q("yes") utastassal lep
unk ki, akkor is
hasonlo mentes t
ortenik, de akkor egy .RData fajlba rodik ki minden objektumunk. Ez a fajl a kovetkezo R
indtaskor automatikusan be is t
olt
odik! Ha Windows RGui-t hasznalunk, akkor a kilepeskor az R rakerdez,
hogy akarjuk-e menteni a munkak
ornyezetet (32. abra), amennyiben jovahagyjuk, akkor egy (a kesobbiekben
automatikusan bet
olt
od
o) .RData f
ajlba menti el a munkakornyezet objektumait.
dput
R-objektumot tudunk vele kirni egy ASCII-
allomanyba. Az objektum olvasasara hasznalhato a dget(file)
f
uggveny.
dput(x, file = "", control = "showAttributes")
A dput f
uggveny argumentumainak ler
asa:
x
file
control

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.)

> dput(adat, file="dput-tal")


> adat2 <- dget("dput-tal")
dump
A list argumentumban megadott objektumokat egy ASCII-fajlba rja ki, amit a source f
uggveny forrasakent
lehet hasznalni. Ha a list argumentumnak ls() erteket adunk, akkor a munkakornyezet osszes objektumat
kirja az .R fajlba.
dump(list, file = "dumpdata.R", append = FALSE,
control = "all", envir = parent.frame(), evaluate = TRUE)
A dump f
uggveny (el
oz
oekben meg le nem rt) argumentumai:
list
evaluate

List
aban meghat
arozott egy vagy tobb kirando objektum neve.

> dump(ls(), file = "dump-pal.R")


> adat2 <- source('dump-pal.R')
sink
E f
uggveny segtsegevel az R-utast
asok outputjai egy ASCII-fajlba rodnak ki.
sink(file = NULL, append = FALSE, type = c("output", "message"),
split = FALSE)
sink.number(type = c("output", "message"))

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.

Ha erteke FALSE, akkor a parancsok futtatasanak sorrendjeben listazza ki azokat,


ha TRUE, akkor visszafele. Ez utobbi esetben azonban hibasan jelenhetnek meg a
t
obbsoros utast
asok.

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

...

Olyan R -objektum, amelynek osztalya a methods(xtable)-ban megtalalhato.


A t
abl
azat cmet megado karakterlanc. Ha az alapertelmezett NULL, akkor nem ad
cmet.
A LATEX-t
abl
azat eseten a cmkeben szereplo elnevezes. Az alapertelmezett NULL
nem hoz letre cmket.
E karaktervektorral azt hatarozzuk meg, hogy az egyes oszlopok hogyan legyenek
rendezve. A jobbra igaztast a r, a balra igaztast a l, a kozepre igaztast pedig a
c karakter jelzi. Az oszlopok f
uggoleges elvalasztasara hasznalhato a jel.
Karaktervektor, aminek a hossza vagy egy, vagy pedig az oszlopok szama plusz 2
(egy a bal, egy pedig a jobb szelehez a tablanak). Barmelyik, a LATEX-ben elfogadott elv
alaszt
o karakter hasznalhato. HTML-modban nem m
ukodik.
Numerikus vektor, aminek hossza megyegyezik az oszlopok szamaval. Mindegyik
elem az adott oszlopban levo lebegopontos szamok tizedeshelyeinek a szamat jelzi.
Ha data.frame az x, akkor mivel a sornevek egy plusz oszlopot kepeznek, a vektor
hossza eggyel t
obb, mint a ncol(x).
Karaktervektor, aminek a hossza megegyezik az oszlopok szamaval, illetve
data.frame eseten eggyel tobb, mint az ncol(x) erteke. Az egyes karaktereket
a formatC f
uggveny ertelmezi (9. tablazat).
Kiegeszt
o argumentumok (jelenleg nincs ilyen).


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

Azt hogy eppen melyik grafikus eszk


oz aktv, a dev.cur() utastassal tudjuk lekerdezni.
> dev.cur()
windows
8
Ha az aktv eszk
oz
unk egy grafikus ablak, akkor annak cmsoraban a R Graphics: Device 8 (ACTIVE) felirat
is jelzi aktv volt
at. Arra is van m
od, hogy egy adott grafikus eszkoz elotti, illetve utani eszkozt lekerdezz
uk,
erre szolgal a dev.prev(), illetve a dev.next() utastas. Ha az atkv statuszt egy masik eszkozre szeretnenk
atalltani, akkor a dev.set(which = k) f
uggvenyt hasznaljuk. A k argumentumban adhatjuk meg az aktivizalando eszkoz sz
am
at. Azonban a konkret szam helyett hasznalhatjuk az elotte (dev.prev()), illetve utana
(dev.next()) relatv hivatkoz
ast is.
> dev.set(which = dev.next())
windows
2
Ahogy lathato, a 2. sz
am
u eszk
oz lett az aktv. Ez azt is bemutatja, hogy ha az utolso eszkozrol a kovetkezore
ugrunk, akkor az az els
o lesz. Ha egy eszk
ozre mar nincs sz
ukseg
unk, bezarhatjuk a dev.off(k) utastassal,
amiben a k argumentum az eszk
oz sz
am
ara utal.
> dev.off(2)
pdf
3
A torles utan a sorban k
ovetkez
o eszk
oz lesz az aktv. Ha nem grafikus ablak a bezart eszkoz, akkor annak
tartalma fajlkent lesz mentve a bez
ar
as ut
an. Ezek a fajlok a munkak
onyvt
arba lesznek mentve.
Az adott eszkoz tartalm
at
at tudjuk m
asolni a dev.copy(device, ..., which = dev.next()) utastassal egy
altalunk meghat
arozott eszk
ozre. Hasonl
o eredmenyt erhet
unk el a dev.print(device = postscript, ...)
paranccsal is, azzal a k
ul
onbseggel, hogy ebben az esetben a forraseszkoz be is zarodik. A dev.copy2eps(...)

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

> m <- matrix(c(2, 0, 1, 3), 2, 2, byrow = TRUE)


> m

[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

x <- pmin(3, pmax(-3, rnorm(50)))


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

= FALSE)
= FALSE)

"", ylab = "")


top), space = 0)
top), space = 0,

9.
abra. A grafikai fel
ulet atszabasa a layout f
uggvennyel II.

GRAFIKAI FUGGV

AZ ALAPTELEPITES
ENYEI

57

split.screen(figs, screen, erase = TRUE)


screen(n = , new = TRUE)
erase.screen(n = )
close.screen(n, all.screens = FALSE)
A f
uggvenyek argumentumainak r
ovid ler
asa:
figs

screen

erase
n
new
all.screens

Az oszlopok es a sorok szamat meghatarozo, ketelem


u numerikus vektor. Negyoszlopos m
atrixkent is megadhato a kepernyo szerkezete. Ha matrix, akkor minden
sora ler egy kepernyot, annak bal- es jobb oldalara, tetejere es aljara vonatkozo
ertekekkel. A cell
ak erteke NDC egysegben ertendo, vagyis a bal also sarok 0 es a
jobb fels
o 1.
E sz
ammal hat
arozzuk meg azt, hogy mely kepernyot vagja u
jabb kepernyokre a
f
uggveny. Ha ezt nem hatarozzuk meg, akkor az egesz grafikai eszkozre vonatkozik
a m
uvelet.
Logikai ertek, ami arra vonatkozik, hogy a kivalasztott kepernyo torlodjek-e.
E sz
ammal meghatarozzuk, hogy melyik ablakot kesztse elo a rendszer a rajzol
asra, t
orlesre vagy defincio torlesre.
Logikai ertek, ami ha TRUE, akkor a rajzolas elott az ablak torlodik.
Logikai ertek arra vonatkozoan, hogy az osszes kepernyodefincio torlodjon-e.

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

Ha erteke TRUE, akkor lehetove teszi, hogy alacsony szint


u grafikai f
uggvenyekkel
az
abr
at elerj
uk. Nem minden eljarast tesz lehetove.
Ha FALSE erteket adunk meg, akkor nem general tengelyeket az abrankhoz, gy
lehet
oveteve, hogy magunk szerkeszette tengelyekkel (axis) lassuk el a kesobbiekben. Alapertelmezesben TRUE.
Az
altala meghat
arozott tengely(eke)t log-transzformalja. Ha erteke "x", akkor
az x-en, ha "y", akkor az y tengelyen vegzi el az atalaktast. Ha "xy", akkor
mindkett
on. Sok de nem minden abratpuson m
ukodik.
Az
abra cme, ami fel
ulre es kozepre lesz kirva (nagybet
ukkel).
Alcm, ami az x tengely ala ker
ul kisebb bet
ukkel.
ekevel a grafik
Ert
ank rajzat allthatjuk be:
"p"
pontokat rajzol
"l"
vonalakat rajzol
"b"
vonalakkal osszekotott pontokat rajzol
"o"
a pontok fole rajzolja a vonalakat
"h"
a pontokbol f
uggoleges vonalat h
uz az x tengelyhez
"s", "S" lepcs
ozetes vonalrajz
"n"
Nem rajzol abrat. A tengelyeket ugyan felrajzolja, de azon kv
ul
nincs semmi a grafikus eszkozon. Viszont lehetoseget ad arra, hogy
alacsony szint
u grafikai eljarassal rajzoljunk ra.
Az x, illetve y tengely feliratat hatarozhatjuk meg, alapertelmezesben a megjelentett objektum neve.

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

Interaktv grafikai lehet


os
egek
Az elozo ket grafikai f
uggvenycsoportn
al az egyes rajzelemek megjelenteset parancsok segtsegevel tudjuk
elerni. Az alapteleptesben vannak olyan f
uggvenyek, amelyek segtsegevel az abrankrol informaciokat tudunk
leolvasni, illetve kiegeszthetj
uk feliratokkal, rajzelemekkel.
identify
E f
uggveny segtsegevel az egermutat
o pozciojat tudjuk kiolvasni, ha a bal egergombot megnyomjuk. Ha az
adott x, y koordin
at
ahoz k
ozel van rajzolt pont, akkor annak indexet jelenti meg a pont mellett.
identify(x, y = NULL, labels = seq(along = x), pos = FALSE,
n = length(x), plot = TRUE, offset = 0.5, ...)
Egy sz
or
asdiagram pontjainak koordinatai. Meg lehet adni objektumot is, ami a
koordin
at
akat tartalmazza.
labels
Lehet
oseg van arra, hogy a koordinatakkal megegyezo elemszam
u vektorban megadjunk cmkeket a pontokhoz.
pos
Ha az erteke TRUE, akkor a visszateresi ertekhez hozzarendelodik egy ertek, ami a
cmke relatv pozciojat adja meg (1 = alatta, 2 = balra, 3 = felette, 4 = jobbra).
n
Az azonostand
o pontok maximalis szama.
plot
Ha az erteke TRUE, a cmkek megjelennek az abran, k
ulonben nem.
offset
A cmkeket elv
alaszto tavolsag karakter-szelessegben megadott merteke.
...
Tov
abbi grafikai parameterek
Az alabbi peldaval letrehozunk egy
abr
at, amelyen veletlen pontok lathatok. Ha valamelyik kozelebe kattintunk,
akkor az adott pont indexehez tartoz
o nagybet
u jelenik meg mellette.
x,y

>
>
>
>

x <- rnorm(26,0,1)
y <- rnorm(26,0,1)
plot(x,y)
identify(x,y,labels=LETTERS)

Ha meghataroztuk a n argumentumot, akkor annak elerese utan a kurzor u


jra aktv lesz a konzolon. Ha nem
hataroztunk meg ilyen korl
atot, akkor u
gy nyerhetj
uk vissza a kurzorunkat, hogy a konzolra kattintunk (a
fokuszt athelyezz
uk) es megnyomjuk a ESC billenty
ut.
locator
A bal egergombbal val
o kattint
assal megadott pozciot adja vissza, illetve ezen adatok felhasznalasaval az abrat
pontokkal, szimb
olumokkal vagy vonalakkal egeszthetj
uk ki.
locator(n = 512, type = "n", ...)
n
type
...
>
>
>
>

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)

A fenti peldaval a veletlen pontokb


ol
all
o
abr
ankra harom pontot rajzolhatunk az eger bal gombjat hasznalva.
A pontok pch=13 k
od
u szimb
olumkent jelennek meg (11. abra)

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

uletet az eszkozon. Ha bealltjuk, akkor u


j rajz jon letre. Igy, ha egy mar
meglev
oh
oz szeretnenk hozzaadni, akkor a new=TRUE bealltasra is sz
ukseg
unk lesz.
Az
abrater
ulet dimenzioi (szelesseg, magassag) h
uvelykben. Ha bealltjuk, akor u
j
rajz j
on letre.
Egesz sz
am, ami meghatarozza, hogy milyen bet
ut hasznalunk a szoveg
unkben.
Az 1 norm
al, a 2 vastag, a 3 dolt es a 4 vastag dolt bet
ut eredmenyez.
A tengelyfeliratokhoz hasznalt bet
u.
A cmkekhez hasznalt bet
u.
A f
ocmhez haszn
alt bet
u.
Az alcmhez haszn
alt bet
u.
Gamma korrekci
o. (A reszletek a hsv f
uggvenynel talalhatok.)

60

GRAFIKA
lab

las

lend

lheight
ljoin

lmitre
lty

lwd
mai
mar

mex

mfcol, mfrow

mfg

mgp
mkh
new

oma
omd
omi

Egy c(x, y, len) formatum


u numerikus vektor, ami a tengelyfeliratokat modostja. Az x es y elemben azt hatarozzuk meg, hogy kozeltoleg hany jel legyen
az egyes tengelyeken. Az alaertelmezett ertek c(5, 5, 7). Jelenleg a len nem
m
uk
odik.
A tengelyek cmkeinek elhelyezkedesi iranyat hatarozhatjuk meg a numerikus ertekenek be
allt
as
aval:
0
mindig p
arhuzamos a tengellyel, ez az alapertelmezes
1
mindig horizontalis a felirat
2
a felirat mindig meroleges a tengelyre
3
a felirat mindig f
uggoleges
A vonalveg stlus
at hatarozhatjuk meg. Vagy szamkent (0 = lekerektett, 1 =
v
agott, 2 = sz
ogletes), vagy karakterlanckent (("round" = lekerektett, "butt" =
v
agott, "square" = sz
ogletes)) adhatjuk meg.
A sz
ovegsorok magassagszorzoja. Az alapertek 1.
A vonalak tal
alkozasat beallto atgumentum, ami lehet szam (0 = lekerektett, 1
= feldereksz
og, 2 = ferde), vagy karakterlanc ("round" = lekerektett, "mitre" =
feldereksz
og, "bevel" = ferde).
A vonal sz
ogellesenek limitje. Az ertekenek 1-nel nagyobbnak kell lennie, alapertelmezetten 10. Nem mindegyik grafikus eszkoz fogadja el.
A vonal tpus
at hatarozhatjuk meg a segtsegevel. Megadhatjuk szamkent (0 = l
athatatlan, 1 = folyamatos, 2 = szaggatott, 3 = pontozott, 4 = pontozott-szaggatott, 5
= hossz
u-szaggatott, 6 = hossz
u-r
ovid szaggatott), illetve karakterkent ("blank" =
l
athatatlan, "solid" = folyamatos, "dashed" = szaggatott, "dotted" = pontozott,
"dotdash" = pontozott-szaggatott, "longdash" = hossz
u-szaggatott, "twodash"
= hossz
u-r
ovid szaggatott) kodolva. A vonalreszek hosszat meg lehet hatarozni
egy maxim
alisan 8 karakterbol allo karakterlanccal is. A c(1:9,A:F) karakterek
k
oz
ul
allthatjuk
ossze a karakterlancot.
Vonal vastags
ag
at megado pozitv szam, ami alapertelmezesben 1.
A rajzter
ulet margomereteit h
uvelykben meghatarozo vektor. A 7. abran a belso
marg
ok jel
olesenek megfeleloen kell megadni: c(bm1 , bm2 , bm3 , bm4 ).
A rajzter
ulet margomereteit sorsz
amban meghatarozo vektor. A 7. abran a belso
marg
ok jel
olesenek megfeleloen kell megadni: c(bm1 , bm2 , bm3 , bm4 ). Az alapertelmezett erteke c(5, 4, 4, 2) + 0.1.
A mex a marg
okon hasznalatos koordinatak lerasara szolgalo karakter meretet
n
ovel
o faktor. Nem a karakter meretet valtoztatja, hanem a mai es mar, illetve az
oma es omi k
oz
otti konverziot hatarozza meg.
A grafikus fel
ulet felosztasara hasznalhatjuk, a vektor formaban (c(nr, nc)) megadott ertekek segtsegevel. Eredmenyekent az nr*nc tombnek megfelelo sor- es oszlopsz
am
u keperny
oszerkezet jon letre. A tomb cellaiba k
ulon-k
ulon helyezhet
unk
el
abr
akat.
Az mfcol es mfrow parameterek altal meghatarozott tomb elemeire hivatkozhatunk
a c(i, j) form
aj
u vektor segtsegevel. A meghatarozott cellanak megfelelo fel
uletre ker
ul a k
ovetkezo rajz. Az S-el valo kompatibilitas vegett a c(i, j, nr, nc)
forma is haszn
alhato.
A tengelycm, tengelycmke es a tengelysor margosora mex egysegben. Az alapertelmezes c(3, 1, 0).
Ha a rajzoland
o szimbolum pch erteke szam, akkor ezzel az argumentummal hat
arozhat
o meg a magassaga h
uvelykben merve. Jelenleg nem m
ukodik.
Logikai ertek, meylet ha az alapertelmezett FALSE ertekrol TRUE-ra alltunk, akkor
a k
ovetkez
o, magasszint
u f
uggvennyel kesztett abra rarajzolodik az aktv eszkozon
m
ar meglev
o rajzra. Ellenkezo esetben, minden magasszint
u rajzolas elott torlodik
a fel
ulet.
A k
uls
o marg
okat sorsz
amban meghatarozo vektor (7. abra). A vektort c(km1 ,
km2 , km3 , km4 ) formaban kell megadni.
A k
uls
o marg
okat NDC (normalized device coordinates) egysegben megado vektor,
amit a c(x1, x2, y1, y2) formaban kell megadni (7. abra).
A k
uls
o marg
okat h
uvelykben meghatarozo vektor (7. abra). A vektort c(km1 ,
km2 , km3 , km4 ) formaban kell megadni.

INTERAKTIV VIZUALIZACI
pch
pin
plt
ps
pty

smo
srt
tck

tcl

tmag
type
usr

xaxp

xaxs

xaxt

xlog
xpd
yaxp
yaxs
yaxt
ylog

61

Vagy egy szimb


olumkodot hasznalunk (0-25), vagy egy karaktert adunk meg pont
jel
olesere. A 0-24 kozotti kodok es a megfelelo szimbolumok a 11. abran lathatok.
Az aktu
alis rajzter
ulet dimenzioi (szelesseg, magassag), h
uvelykben megadva.
Segtsegevel az aktualis abrater
uleten koordinatakkal hatarozhatjuk meg a rajzter
uletet. Vektor formaban kell megadni c(x1, x2, y1, y2).
Egesz sz
ammal adhatjuk meg a karakterek vagy szimbolumok pontmeretet.
A rajzter
ulet alakjat hatarozhatjuk meg. Ha "s" erteket vesz fel, akkor negyzet
alak
u, ha "m" ertek
u, akkor a maximalis rajzter
uletet biztosto tegla alak
u rajzter
uletet kapunk.
A k
or
ok es k
orvek simtasaval kapcsolatos argumentum. Nem m
ukodik.
Karakterl
ancok elforgatasat adhatjuk meg fokban (lasd meg crt).
A rajzter
ulet szelessegehez, illetve magassagahoz viszonytva adhatjuk meg a racsjelek hossz
at. Ha erteke 1, akkor a teljes rajzter
uletet behalozza, egy grided hoz
letre, az alapertelmezett ertek NA. Ha pozitv szamot adunk meg, akkor a rajzter
uletre, ha negatvot, akkor azon kv
ulre h
uzza a vonalakat.
A r
acsjelek meretet a szovegsor magassaganak aranyaban adhatjuk meg. Az alapertelmezett ertek -0.5. Ha NA erteket adunk meg, akkor annak kovetkezteben a
tck = -0.01 ertek
u lesz (S alapertelmezett).
A f
ocm meretenek a rajz egyebb felirataihoz viszonytott noveleset meghatarozo
sz
am.
E karakterrel megadhatjuk a rajzol
as tpusat. A reszleteket lasd az 57. lapon.
A rajzter
ulet felhasznalo altal beallthato szelso koordinatai, amiket
ac(x1, x2, y1, y2) formaban kell megadni. Ha a xlog erteke TRUE, akkor
az x hat
arertekei 10par(usr)[1:2] .
Az x tengely szels
o ertek
u jeloloinek koordinatait adja meg c(x1, x2, n) formaban. Ha az xlog erteke FALSE, az n egesz szam, ami azt adja meg, hogy a ket
megadott x ertek kozott hany szakasz legyen.
Az x tengely intervallumanak szamtasi stlusat meghatarozo argumentum. A lehetseges ertekek: "r", "i", "e", "s", "d". Azonban jelenleg csak az "r" es az "i"
haszn
alhat
o. A stlusok mindegyike az adattartomanyon vagy a xlim ertekeken
alapszik. Az "r" (regularis) modszer az eloszor 4%-kal megnagyobbtja az adattartom
anyt, es ehhez hoz letre egy jol illeszkedo cmkej
u tengelyt. Az "i" (internal)
az eredeti adattartomanyhoz hoz letre egy jol illeszkedo cmkej
u tengelyt.
E karakterrel meghatarozhato az x tengely stlusa. Az "s" ertek az alaertelmezes,
haszn
alhat
o az "l", illetve az "e" ertek is, de ezek eredmenye ugyanaz lesz, mint
az "s"-nel. Ha "n" erteket adunk meg, akkor letrehozza a tengelyt, de nem rajzolja
ki.
Ha a FALSE alapertelmezett erteket TRUE-ra alltjuk, akkor az x tengelyen logaritmus sk
al
at fog hasznalni.
Logikai vagy NA erteket vehet fel. Ha FALSE, akkor a rajzter
uletre, ha TRUE, az
abrater

uletre, NA eseten pedig az egesz eszk


ozfel
uletre rajzol.
A xaxp argumentumhoz hasonlo.
Az y tengely intervallumanak szamtasi stlusat meghatarozo argumentum. Reszletek az xaxs argumentumnal olvashatok.
Az y tengely stlusat meghatarozo karakter. Reszletek az xaxt argumentumnal
olvashat
ok.
Az y tengely sk
al
ajat allthatja at. Reszletek az xlog argumentumnal olvashatok.

A 10. abran lathat


o h
arom grafikai parameter atalltasa es azok eredmenye. A mfrow = c(2, 2) bealltas negy
egyenlo reszre osztja a grafikai eszk
oz fel
uletet. Ahhoz, hogy a negy rajzter
ulet negyzet alak
u legyen, a pty
erteket "s"-re valtoztattuk. A bty = "n" hat
asara a rajzter
uletek kor
ul nem jelennek meg keretek.

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

grafikai.parameterek <- par(mfrow = c(2, 2), pty = "s", bty = "n")


hist(rnorm(300, 0, 1), col = "red")
hist(rnorm(300, 0, 1), col = "red")
hist(rnorm(300, 0, 1), col = "red")
hist(rnorm(300, 0, 1), col = "red")
par(grafikai.parameterek)

Histogram of rnorm(300, 0, 1)
50
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)

10. abra. par pelda

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:

> sor <- c(1,2,1,3,1,4)


> k <- ifelse(sor < 2, 1, 2)
> k
[1] 1 2 1 2 1 2
switch
Mg a korabbi felteteles f
uggvenyek legfeljebb ket alternatva kozott tesznek k
ulonbseget, a switch tobb alternatvat is lehetove tesz.
switch(EXPR, ...)
A switch f
uggveny argumentumainak ler
asa:
EXPR
...

E kifejezes ertekeli a numerikus vagy szoveges ertekeket.


Az alternatv
ak listaja.

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:
>
+
+
+

elso.fuggvenyem <- function(x)


{
x + 1
}

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.

A sor tovabbi resze megjegyzes lesz, vagyis nem ertelmezodik. Altal


aban a dokumentacios szakasz jelolonyelven rt sz
oveg, pl. LATEX.
K
od szakasz Az els
o sora <<name>>= sz
oveggel kezdodik, a sor folytatasa szinten megjegyzes lesz es nem
ertelmezodik.
Az elso szakasz alapertelmezesben mindig dokumentacio.
27 http://www.inf.unideb.hu/matex/

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

Ebben a peldaban a LATEX dokumentumunkba ket k


odot illesztettem be.
Az alabbi kodreszben veletlen adatok gener
al
odnak es az adat objektumnak
adodnak at.
> adatok <- rnorm(800, 0, 1)

50

gyakorisg

100

150

A masodik kodresz letrehoz egy hisztogrammot.

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.

TANGLE VAGY WEAVE

77

Tangle vagy weave


A Sweave-rendszert ket S-f
uggvennyel erhetj
uk el, ezek a Stangle() es a Sweave, mindketto resze az alap
R-teleptesnek. A Stangle az .rnw
allom
anybol csak a kodszakaszokat olvassa ki es ertelmezi, majd egy vagy
t
obb fajlba kirja. A Sweave() futtatja a k
odreszeket az S-motoron es az eredmenyekkel, illetve a dokumentacios
szoveggel osszef
uzi egy
allom
anyba. A Stangle() f
uggveny a Rtangle meghajtot, mg a Sweave RweaveLatex-ot
hasznal.

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

29. abra. R az Emacs-ben

30. abra. Kate

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

szer aszerint valtozik, hogy melyik gyermekablak aktv.

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

anyba. Utastasa: save.image().


Egy kor
abbi munkater
ulet utastasait tolti be. Utastasa a loadhistory().
A munkater
ulet utastasait menti el egy fajlba, aminek az ajanlott kiterjesztese: .Rhistory. Utastasa: savehistory().
A munkak
onytvar meghatarozasat vegezhetj
uk el segtsegevel (33. abra).
Ennek megfelelo utastas a setwd().
A konzol tartalm
at nyomtatja ki.
A konzol tartalmat egy ASCII fajlba menti ki.
Kilep az RGui-bol.

Edit
Copy
Paste
Paste commands only
Copy and Paste
Select all
Clear console

Data editor. . .

GUI preferences. . .

A konzolban kijelolt szoveget a vagolapra masolja. (CTRL+C)


A v
ag
olap tartalmat a konzolba illeszti. (CTRL+V)
A konzol v
agolapra helyezett reszeibol csak az utastasokat illeszti be a
prompthoz.
A kijel
olt szoveget egy lepesben a vagolapra masolja es onnan beilleszti a
konzol promtjaba.
A konzol teljes tartalmat kijeloli. (a CTRL+A nem m
ukodik)
A konzol tartalm
at torli.
A munkater
ulet-ben tarolt dataframe vagy matrix nevet megadva (34. abra)
megnyithatjuk azt az adatszerkeszto u
rlapon (35. abra). Utastasa: fix().
Az RGui megjeleneset megvaltoztathatjuk, az erre szolgalo u
rlapot (31.
abra) hvja meg e men

upont.

Misc
Stop current computation

Buffered output

List objects
Remove all objects
List search path

Az eppen futo folyamatot lealltja.

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. . .

Set CRAN mirror. . .

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. . .

Install package(s) from local zip files. . .

Helyi .zip fajlbol telept csomagot.

Windows
Cascade
Tile
Arrange Icons

X1 R Console

Az ablakokat lepcsozetesen rendezi.


Az ablakokat mozaikszer
uen rendezi.
A minimializalt ablakokat egymas melle rendezi.

Console

FAQ on R
FAQ on R for Windows
Manuals (in PDF)

A konzolon alkalmazhato billenty


u-kombinaciok lerasat mutatja meg.

Help

R functions (text). . .
Html help
Search help. . .
search.r-project.org. . .

Apropos. . .

R Project home page


CRAN home page

About

Az R-rel kapcsolatos gyakori kerdesek es valaszok.


A Windows-on futo R-el kapcsolatos gyakori kerdesek es valaszok.
Kezik
onyvek az R hasznalataval kapcsolatban.
An Introduction on R
R Reference Manual
R Data Import/Export
R Language Definition
Writing R Extensions
R Installation and Administration
F
uggveny keresese a teljes nev alapjan (42. abra). Utastasa: help().
HTML s
ug
o megjelentese. Utastasa: help.start().
Sz
oveg keresese a cmekben, nevekben, lerasokban (43. abra). Utastasa:
help.search().
A 44.
abr
an lathato u
rlap beviteli mezojebe gepelt szoveget kereshetj
uk a
levelezesi listak es egyeb dokumentaciok szovegeiben.
Apropos keresese a f
uggvenyek neveben (41. abra). Utastasa: apropos().
Az R-projekt honlapjat nyitja meg. (http://www.r-project.org/)
A CRAN honlapjat nyitja meg. (http://cran.r-project.org/)
Nevjegy.

Popup menu

Copy
Paste
Paste commands only

CTRL+C
CTRL+V

Copy and Paste

CTRL+X

Clear window

CTRL+L

A konzolban kijelolt szoveget a vagolapra masolja.


A vagolap tartalmat a konzolba illeszti.
A konzol vagolapra helyezett reszeibol csak az utastasokat
illeszti be a prompthoz.
A kijelolt szoveget egy lepesben a vagolapra masolja es onnan beilleszti a konzol promtjaba.
Torli a konzol tartalmat.

WINDOWS RGUI

93

Select all

Buffered output
Stay on top

A konzol teljes tartalmat tartalmat kijeloli.


CTRL+W

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

A kodok szerkesztesere szolgalo R editort nyitja meg, u


j kod szerkesztesere.
Az R-editorban megnyit egy korabban szerkesztett kod-fajlt.
Az R-editor tartalmat menti ASCII fajlkent.
Az R-editor tartalmat menti maskent.

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

Kivagja es a vagolapra helyezi a kijelolt szoveget.


A vagolapra helyezi a kijelolt szoveget.
A vagolapra helyezett tartalmat beilleszti az R editorba.
T
orli a kijelolt szoveget.
Az R-editor teljes tartalmat kijeloli.
Az R-editor teljes tartalmat torli.

Az R-editor tartalmat kinyomtatja.


Bezarja az R-editort.
Kilep az RGui-bol.

Edit

Find. . .
Replace. . .
GUI preferences. . .
Packages

CTRL+A
CTRL+L
CTRL+R

Ha nincs kijelolve kodresz, akkor az aktualis sort, ha ki van jel


olve
szoveg, akkor azt illeszti a konzolba, ami ertelmezi azt.
Az R editor teljes tartalmat bemasolja a konzolba, ami azt lefuttatja.

CTRL+F
CTRL+H

Szoveg keresese az R-editorban.


Szoveg csereje az R-editorban.
Az RGui megjeleneset megvaltoztathatjuk, az erre szolgalo u
rlapot (31. abra) hvja meg a men
upont.


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.

Set CRAN mirror. . .

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. . .

Install package(s) from local zip files. . .

Helyi .zip fajlbol telept csomagot.

Windows
Cascade
Tile
Arrange Icons

1 R Console
X2 Untitled - R Editor

Az ablakokat lepcsozetesen rendezi.


Az ablakokat mozaikszer
uen rendezi.
A minimializalt ablakokat egymas melle rendezi.

Console

FAQ on R
FAQ on R for Windows
Manuals (in PDF)

A konzolon alkalmazhato billenty


u-kombinaciok lerasat mutatja meg.

Help

R functions (text). . .
Html help
Search help. . .
search.r-project.org. . .

Apropos. . .

R Project home page


CRAN home page

About

Az R-rel kapcsolatos gyakori kerdesek es valaszok.


A Windows-on futo R-el kapcsolatos gyakori kerdesek es valaszok.
Kezik
onyvek az R hasznalataval kapcsolatban.
An Introduction on R
R Reference Manual
R Data Import/Export
R Language Definition
Writing R Extensions
R Installation and Administration
F
uggveny keresese a teljes nev alapjan (42. abra). Utastasa: help().
HTML s
ug
o megjelentese. Utastasa: help.start().
Sz
oveg keresese a cmekben, nevekben, lerasokban (43. abra). Utastasa:
help.search().
A 44.
abr
an lathato u
rlap beviteli mezojebe gepelt szoveget kereshetj
uk a
levelezesi listak es egyeb dokumentaciok szovegeiben.
Apropos keresese a f
uggvenyek neveben (41. abra). Utastasa: apropos().
Az R-projekt honlapjat nyitja meg. (http://www.r-project.org/)
A CRAN honlapjat nyitja meg. (http://cran.r-project.org/)
Nevjegy.

WINDOWS RGUI

95

Popup menu

Run line or selection

Undo

Cut
Copy
Paste
Delete
Select all

Ctrl+R

Ha nincs kijelolve kodresz, akkor az aktualis sort, ha ki van


jelolve szoveg, akkor azt illeszti a konzolba, ami ertelmezi
azt.

Ctrl+Z

Visszavonas.

Ctrl+X
Ctrl+C
Ctrl+V

Kivagja es a vagolapra helyezi a kijelolt szoveget.


A vagolapra helyezi a kijelolt szoveget.
A vagolapra helyezett tartalmat beilleszti az R-editorba
Torli a kijelolt szoveget.
Az R-editor teljes tartalmat kijeloli.

Ctrl+A

Grafikai ablak
A grafikai ablak eszkoztara

Copy to the clipboard as a metafile


Print
Return focus to console
menu
rendszer
File
Save as
Metafile. . .
Mentes metaf
ajlkent.
Postscript. . .
Mentes postscriptkent.
PDF. . .
Mentes PDF-kent.
PNG. . .
Mentes PNG-kent.
BMP. . .
Mentes BMP-kent.
Jpeg
50% quality. . .
Mentes 50%-os minoseg
u JPEG-kent.
75% quality. . .
Mentes 75%-os minoseg
u JPEG-kent.
100% quality. . .
Mentes 100%-os minoseg
u JPEG-kent.
Copy to the clipboard
as a Bitmap
CTRL+C
Masolas bitmapkent a vagolapra.
as a Metafile
CTRL+W
Masolas metafajlkent a vagolapra.

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.

A grafikai tortenet-hez hozzaadjuk a grafikat.

A grafikai tortenet-ben az elozo kepet tolti be a grafikai ablakba.

A grafikai tortenet-ben a kovetkezo kepet tolti be a grafikai ablakba.


GRAFIKUS FELULETEK

96

Clear history

A grafikai ablak tortenetenek torlese.

Resize
XR mode
Fit to window
Fixed size
Windows
Cascade
Tile
Arrange Icons

1 R Console
X2 2 R Graphics: Device 2

Az ablakokat lepcsozetesen rendezi.


Az ablakokat mozaikszer
uen rendezi.
A minimializalt ablakokat egymas melle rendezi.

(ACTIVE)

Popup menu

Arrange Icons
Copy as metafile
Copy as bitmap

Save as metafile. . .
Save as postscript. . .

Stay on top

Print. . .

A minimializalt ablakokat egymas melle rendezi.


M
asol
as metafajlkent a vagolapra.
M
asol
as bitmapkent a vagolapra.
Mentes metafajlkent.
Mentes postscriptkent.

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

Az adatszerkeszto hasznalataval kapcsolatos informaciokat jelent meg.

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

32. abra. A Windows RGui-b


ol val
o kilepeskor jelenik meg a munkakornyezet mentesere kerdezo parbeszedablak
Popup menu

Help
Copy selected cell
Pate to selected cell
Autosize column

Stay on top

Close

Az adatszerkeszto hasznalataval kapcsolatos informaciokat jelent meg.


A kijel
olt cella tartalmat a vagolapra masolja.
A v
ag
olap tartalmat a kijelolt cellaba masolja.
Az oszlopok szelessegenek automatikus meretezese.

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

szkriptet hoz letre, egyben, ha kvanjuk, az aktualist el is


Uj
menti.
Megnyit egy mar korabban letrehozott szkriptet.
Menti az aktualis szkriptet.
A kijelolt kodreszt vagy az aktv sort elk
uldi az Rparancsertelmezore, aminek kovetkezteben a terminalba rodik
a lefuttatott kod es annak eredmenye(i).

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.

49. abra. R konzol

Make Lowercase

Kisbet
usse alaktja a kijelolt szakaszban levo bet
uket.

Undo

M
uvelet visszavonasa.

Redo

Visszavon
as visszavonasa.

Properties. . .

A szkriptszerkeszto tulajdonsagait allthatjuk be a megjeleno u


rlap segtsegevel (51.
abra).

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

50. abra. SciViews R konzol

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.

SciViews R grafikai ablak


Ha a SciViews R-ben
abr
at gener
alunk, akkor az a megszokott grafikai ablaktol nemileg eltero ablakban
jelenik meg (52. abra). A legf
obb k
ul
onbseg az, hogy a kesobbiekben lathato SciViews R Report-nak atadhatjuk a
letrehozott abrat. Erre szolg
al az Edit men
un bel
uli Report (png) es Report multiple formats men
upontok, illetve
az ezeknek megfelel
o eszk
ozt
arban l
athat
o utolso ket ikon is. Tovabbi lenyeges k
ulonbseg, hogy a grafikai ablakbol

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

54. abra. view(iris)


copy
A copy tulajdonkeppen az export f
uggvenynek specialis esete, amikor is a file argumentumnak "clipboard"
erteket adunk meg.
copy(x, type = "raw", objname = deparse(substitute(x)), ...)
Az argumentumok az export-n
al l
athat
oan adhatok meg.
view
A view f
uggveny lehet
oseget teremt arra, hogy az adott R-objektum(ok)-bol konnyen, gyorsan keszthess
unk
elozetes feltaro jelleg
u
abr
akat,
osszegz
o t
abl
azatokat.
view(x, type = "summary", objname = deparse(substitute(x)), ...)
Az x az adott R-objektum, a type pedig lehet "summary", "print", "twovars", "missing", "methods" vagy
"sascode". Az, hogy milyen tpusoknak megfelelo elemzesek jelennek meg a view -ban, a forraskent szolgalo

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).

Microsoft Visual Basic


A Microsoft Visual Basic felhaszn
al
as
aval fejleszthet
unk olyan alkalmazasokat, amelyek az R-kornyezet adottsagait is magukban foglalj
ak. Egy pelda:
Private Sub Command1_Click()
Dim sconn As StatConnector
Dim gfxdev As ISGFX
Set sconn = New StatConnector
sconn.Init "R"
Set gfxdev = Gfx1.GetGFX
sconn.AddGraphicsDevice "dev1", gfxdev
sconn.EvaluateNoReturn "plot(sin(1:10))"
sconn.EvaluateNoReturn "a<-0:100"
sconn.EvaluateNoReturn "b<-sin(a)"
sconn.EvaluateNoReturn "x<-sin(1:10)"
' sconn.EvaluateNoReturn "plot(x)"
' sconn.EvaluateNoReturn "demo(""graphics"")"
sconn.Close
End Sub
Private Sub Form_Resize()
Gfx1.Width = Width - 800
Gfx1.Height = Height - 400
Command1.Left = Width - 750
End Sub

Python
Az R-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

from win32com.client import Dispatch


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

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.

Fontosabb typeof visszateresi ertekek . .


A tpus, m
od es t
arol
asi m
od kombinaciok
Tpus-konverzi
ok . . . . . . . . . . . . . .
Veletlen sorozatok . . . . . . . . . . . . .
Aritmetikai oper
atorok . . . . . . . . . . .
Matrix-f
uggvenyek . . . . . . . . . . . . .

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