Εισαγωγή στην R. Κεφάλαιο 1. περιέχει περαιτέρω πληροφορίες καθώς

Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

Απλός Προγραµµατισµός στην R

Επιστηµονικός Υπολογισµός Ι - Πρώτη εργαστηριακή άσκηση

Γραφήµατα. Κεφάλαιο Απλά Γραφήµατα. > x <- rnorm(50, mean=1, sd=2) > plot(x) > y <- seq(0,20,.1) > z <- exp(-y/10)*cos(2*y)

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ. Δρ. Π. Νικολαΐδου

Εισαγωγή στην R Πρόχειρες Σηµειώσεις. Κωνσταντίνος Φωκιανός & Χαράλαµπος Χαραλάµπους Τµήµα Μαθηµατικών & Στατιστικής Πανεπιστήµιο Κύπρου

Μη Παραµετρική Παλινδρόµηση

Εισαγωγή στην Αριθμητική Ανάλυση

Σχήµα 4.1: Εισαγωγή βρόγχου while-loop.

Μαθηµατικοί Υπολογισµοί στην R

3) το παράθυρο Πίνακας τιμών όπου εμφανίζονται οι τιμές που παίρνουν οι παράμετροι

Τυπικές χρήσεις της Matlab

Εργαστήριο 9 Συναρτήσεις στη PASCAL. Η έννοια του κατακερματισμού. Συναρτήσεις. Σκοπός

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ

Εργαστήριο Μαθηματικής Ανάλυσης Ι. Εισαγωγή στη Matlab Βασικές Συναρτήσεις-Γραφικές παραστάσεις. Πανεπιστήμιο Θεσσαλίας. Σχολή Θετικών Επιστημών

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. Πρόοδος 20 Μαρτίου 2011 Οµάδα

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία. Εργαστήριο 4 ο : MATLAB

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Ανάλυση Δεδομένων με χρήση του Στατιστικού Πακέτου R

Λογιστική Παλινδρόµηση

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

ΜΑΗΣ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Εργασία στο µάθηµα Ανάλυση εδοµένων

ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ 7. ΚΕΦΑΛΑΙΟ 1: Εισαγωγικές Έννοιες 13

Κεφάλαιο 7: Υπορουτίνες

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΠΕΡΙΓΡΑΦΙΚΗ ΣΤΑΤΙΣΤΙΚΗ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Εισαγωγή στο Πρόγραμμα Maxima

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ (ΝΕΟ ΣΥΣΤΗΜΑ) 27 ΜΑΪΟΥ 2016 ΕΚΦΩΝΗΣΕΙΣ ÊÁËÁÌÁÔÁ

Το πρόγραμμα συγχρηματοδοτείται 75% από το Ευρωπαϊκό κοινωνικό ταμείο και 25% από εθνικούς πόρους.

Χρονικές σειρές 1 ο μάθημα: Εισαγωγή στη MATLAB

Χρήσεις Η/Υ και Βάσεις Βιολογικών Δεδομένων : ΒΙΟ109 [4] Επεξεργασία Δεδομενων σε λογιστικα φυλλα

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 2 - Εργαστήριο

ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙ ΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Πρώτη επαφή με το μαθηματικό πακέτο Mathematica

Εισαγωγή στη Matlab Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Σκοπός. Αλγεβρικοί και Λογικοί Υπολογισμοί στη PASCAL

ΦΥΣ-151. Ηλεκτρονικοί Υπολογιστές Ι (FORTRAN 77) (Άνοιξη 2004)

ΙΙ ιαφορικός Λογισµός πολλών µεταβλητών. ιαφόριση συναρτήσεων πολλών µεταβλητών

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 9 Ανάλυση Fourier: Από τη Θεωρία στην Πρακτική Εφαρμογή των Μαθηματικών

Πολλαπλή παλινδρόμηση (Multivariate regression)

ΤΟΜΟΣ Α : Συμβολικός Προγραμματισμός

MATLAB. Λογισµικό υλοποίησης αλγορίθµων και διεξαγωγής υπολογισµών.

Geogebra. Μακρή Βαρβάρα. Λογισµικό Geogebra

Ανάλυση, Στατιστική Επεξεργασία και Παρουσίαση Δεδομένων με χρήση Ανοικτών Λογισμικών Δρ. Φίλιππος Σοφός

Γραµµική Παλινδρόµηση

Βασικά στοιχεία του MATLAB

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Εισαγωγή στην R Πρόχειρες Σηµειώσεις. Κωνσταντίνος Φωκιανός & Χαράλαµπος Χαραλάµπους Τµήµα Μαθηµατικών & Στατιστικής Πανεπιστήµιο Κύπρου

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

ΒΑΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΣΥΓΧΡΟΝΙΚΗΣ ΛΗΨΗΣ ΚΑΙ ΑΠΕΙΚΟΝΙΣΗΣ (MBL) DBLAB 3.2 ΤΗΣ FOURIER.

Εισαγωγή στη Matlab Βασικές Συναρτήσεις

Oι εντολές COMMON και PARAMETER

Εισαγωγή στο SAGE. Νίκος Νοδαράκης. 31 Οκτωβρίου 2010

7. Βασικά στοιχεία προγραµµατισµού.

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

Παρεµβολή και Προσέγγιση Συναρτήσεων

ΟΝΟΜΑΤΕΠΩΝΥΜΟ : Αντικείμενο: Εισαγωγή στο στατιστικό πακέτο R και στις δυνατότητές του για δημιουργία γραφημάτων. Χρήση του λογισμικού RStudio.

Κεφάλαιο Πέµπτο: Η Εξάσκηση

ΣΤΑΤΙΣΤΙΚΕΣ ΜΕΘΟΔΟΙ ΠΡΟΒΛΕΨΗΣ

ΚΕΦΑΛΑΙΟ 4 ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟ ΟΙ ΕΥΡΕΣΗΣ ΠΡΑΓΜΑΤΙΚΩΝ Ι ΙΟΤΙΜΩΝ. 4.1 Γραµµικοί µετασχηµατισµοί-ιδιοτιµές-ιδιοδιανύσµατα

ΕΠΛ 012. JavaScripts

Προγραμματισμός ΙI (Θ)

iii ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος

Ειδικά Γραφήµατα. Κεφάλαιο Γραφήµατα Trellis

= p 20 1 p p Το σημείο στο οποίο μηδενίζεται η παραπάνω μερική παράγωγος είναι

Εισαγωγή στο Περιβάλλον Επιστημονικού Προγραμματισμού MATLAB-Simulink. Δημήτριος Τζεράνης Λεωνίδας Αλεξόπουλος

Σχήµα 5.1: Εισαγωγή της δοµής formula node στο Block Diagram.

Η ΤΕΧΝΗ ΤΟΥ ΙΑΒΑΣΜΑΤΟΣ ΜΕΤΑΞΥ ΤΩΝ ΑΡΙΘΜΩΝ (ΠΑΡΕΜΒΟΛΗ ΚΑΙ ΠΡΟΣΕΓΓΙΣΗ)

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

ΚΕΦΑΛΑΙΟ 2. Τιμές, τύποι, μεταβλητές, λέξεις-κλειδιά, εντολές. 2.1 Εισαγωγή

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

2.1 Αντικειµενοστρεφής προγραµµατισµός

Κατασκευή µοντέλου και προσοµοίωσης: Μελέτη ελεύθερης πτώσης

Σχήµα 6.1: Εισαγωγή της εντολής Read From Spreadsheet File στο Block Diagram.

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

7.5 ΑΡΑΙΕΣ ΜΗΤΡΕΣ Κατασκευή αραιών µητρών Πράξεις και συναρτήσεις αραιών µητρών Συναρτήσεις για γραφήµατα...

) = a ο αριθµός των µηχανών n ο αριθµός των δειγµάτων που παίρνω από κάθε µηχανή

Ανάλυση Δεδοµένων µε χρήση του Στατιστικού Πακέτου R

scanf() scanf() stdin scanf() printf() int float double %lf float

Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,

Λογισµικό (Software SW) Γλώσσες

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Εισαγωγή στην Στατιστική (ΔΕ200Α-210Α)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ ΠΙΝΑΚΕΣ. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Σημειωματάριο Δευτέρας 30 Οκτ. 2017

Συνδυασμός Μαθηματικών με γραφικές παραστάσεις

Κεφάλαιο 10 ο Υποπρογράµµατα

Υπο-προγράμματα στη Fortran

Γνωριμία με τον προγραμματισμό μέσω της γλώσσας R Στοιχεία Περιγραφικής Στατιστικής

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Transcript:

Κεφάλαιο 1 Εισαγωγή στην R Ο κύριος σκοπός αυτών των σηµειώσεων είναι η εισαγωγή στην στατιστική γλώσσα προγραµµατισµού R. Η γλώσσα R είναι ελεύθερα διαθέσιµη από το διαδίκτυο και η υποστήριξή της γίνεται µέσω της εθελοντικής συνεισφοράς πολλών ανθρώπων ανά τον κόσµο, οι οποίοι είναι και υπεύθυνοι για την ανάπτυξή της. Η ιστοσελίδα http://www.r-project.org/ περιέχει περαιτέρω πληροφορίες καθώς και συνδέσµους για τα σχετικά προγράµµατα που αφορούν την αποθήκευση και εκτέλεση του προγράµµατος σε διάφορα λειτουργικά συστήµατα. Σηµειωτέον, ότι η R µπορεί να τρέξει σε περιβάλλον Linu, Mac OS και Windows. Οπως ϑα δούµε, η R είναι µία γλώσσα προγραµµατισµού που χρησιµεύει κατεξοχήν στην επεξηγηµατική ανάλυση δεδοµένων καθώς και στην εφαρµογή διαφόρων στατιστικών µοντέλων. Μπορεί να χρησιµοποιηθεί είτε µε κατευθείαν εντολές είτε µε προγράµµατα τα οποία µπορούν να αναπτυχθούν και να δοθούν για εκτέλεση. Σε αυτές τις σηµειώσεις ϑα µάθουµε πώς να προγραµµατίζουµε στην R καθώς και το πώς κατασκευάζονται ειδικές συναρτήσεις (functions) οι οποίες χρησιµεύουν για ανάπτυξη ιδίων προγραµµάτων. Περιληπτικά, ϑα δούµε τα παρακάτω Γενικές έννοιες που αφορούν την R. Πώς χρησιµοποιείται η R στην ανάλυση δεδοµένων. Προγραµµατισµός και ανάπτυξη στην R. 13

1.1 Μία Εισαγωγική Περίοδος Οι παρακάτω εντολές ϑα δώσουν µία πρώτη γεύση από το τι µπορεί να κάνει η R. Καταρχάς µπορεί να µην γίνονται κατανοητές οι εντολές αυτές, αλλά τυχόν σύγχυση ϑα ϕύγει όταν προχωρήσουµε στα παρακάτω κεφάλαια. Πρώτο Παράδειγµα <- rnorm(50) Προσοµοίωση δύο τυχαίων τυπικών κανονικών <- rnorm() διανυσµάτων και. hull <- chull(,) Υπολογισµός κυρτού περιβλήµατος των δεδοµένων plot(,) Κατασκευάζει τη γραφική παράσταση των σηµείων στο επίπεδο polgon([hull], [hull],dens=15) και σηµειώνει το κυρτό τους περίβληµα. objects() Βλέπει ποια αντικείµενα της R υπάρχουν µέσα στο αρχείο Data. rm(,) Αφαιρεί τα αντικείµενα και. 2 1 0 1 3 2 1 0 1 2 Σχήµα 1.1: Πρώτο παράδειγµα. 14

εύτερο Παράδειγµα <- 1:20 ηµιουργεί το διάνυσµα = (1, 2,..., 20). w <- 1+sqrt()/2 ηµιουργεί το διάνυσµα των ϐαρών των τυπικών αποκλίσεων. dumm <- data.frame(=, Κατασκευάζει ένα πλαίσιο δεδοµένων µε 2 στήλες =+rnorm()*w) και και το παρουσιάζει. dumm objects() Βλέπει ποια αντικείµενα της R υπάρχουν µέσα στο αρχείο Data. fm <- lm(~, data=dumm) Εφαρµόζει απλή γραµµική παλινδρόµιση της ως προς summar(fm) και παρουσιάζει τα αποτελέσµατα fm1 <- lm(~, data=dumm, Εφαρµόζει σταθµισµένη παλινδρόµιση. weight=1/w^2) lrf <- loess(~, data=dumm) Κάνει απαραµετρική παλινδρόµιση. attach(dumm) Άµεσα προσβάσιµες στήλες πλαισίου δεδοµένων. plot(,) Κάνει την γραφική παράσταση του συναρτήσει του. lines(, fitted(lrf)) Προσθέτει στο γράφηµα το µοντέλο από την απαραµετρική παλινδρόµηση. abline(0,1,lt=3) Προσθέτει στο γράφηµα την πραγµατική γραµµή παλινδρόµισης. abline(coef(fm)) Η γραµµή από την απλή γραµµική παλινδρόµηση. abline(coef(fm1), lt=4) Η γραµµή από την σταθµική παλινδρόµηση. Οποιαδήποτε στιγµή µπορείτε να τυπώσετε αντίγραφο της γραφικής παράστασης πατώντας στο παράθυρο Graph και επιλέγοντας το Print. detach() Αφαιρεί τις στηλες του πλαισίου δεδοµένων απο τη λίστα αντικειµένων. plot(fitted(fm), resid(fm), Γραφική παράσταση των υπολοίπων lab="fitted Values", για έλεγχο της ετεροσκεδαστικότητας. lab="residuals", main= "Residuals vs Fitted") qqnorm(resid(fm), main= QQ plot των υπολοίπων. "Residuals QQ Plot") rm(fm,fm1,lrf,,dumm) 15

Residuals vs Fitted Residuals QQ Plot 5 10 15 20 25 Residuals 4 2 0 2 4 Sample Quantiles 4 2 0 2 4 5 10 15 20 0 5 10 15 20 Fitted Values 2 1 0 1 2 Theoretical Quantiles Σχήµα 1.2: εύτερο παράδειγµα. Τρίτο Παράδειγµα Γραφικές δυνατότητες της R: διάγραµµα ισουψών και 3-διάστατες γραφικές πα- ϱαστάσεις. <- seq(-pi,pi,length=50) <- Το ίδιο µε το. f <- outer(,, function(,) είναι διάνυσµα µε 50 ισαπέχοντες τιµές στο ( π, π). Ορίζουµε ένα πίνακα f του οποίου οι γραµµές και οι στήλες έχουν δείκτες και αντίστοιχα, cos()/(1+^2)) και ικανοποιούν τη εξίσωση cos()/(1 + 2 ). oldpar <- par() par(pt="s") Φυλάει τις εξ ορισµού γραφικές παραµέτρους. Καθορίζει την περιοχή του γραφήµατος σε τετράγωνο. contour(,,f) Κάνει το διάγραµµα ισουψών της f. contour(,,f, nlevels=15, add=t) Προσθέτει στο διάγραµµα πιο ψηλή ευκρίνεια. fa <- (f-t(f))/2 f a είναι το ασσύµετρο κοµµάτι της f. contour(,, fa, nlevels=15) ηµιουργεί το διάγραµµα ισουψών της f a. par(oldpar) persp(,,f) persp(,,fa) image(,, f) image(,,fa) objects(); rm(,,f,fa) q() Εξοδος από R. Επαναφέρει τις εξ ορισµού γραφικές παραµέτρους. ηµιουργεί προοπτική απεικόνιση και υψηλού επιπέδου γραφική παράσταση. Αφαιρεί τα υπάρχοντα αντικείµενα. 16

f fa Contour of f Contour of f Contour of fa Higher Resolution Σχήµα 1.3: Τρίτο παράδειγµα (Ι). Perspective of f Perspective of fa High image of f High image of fa 3 1 1 2 3 3 1 1 2 3 3 1 1 2 3 3 1 1 2 3 Σχήµα 1.4: Τρίτο παράδειγµα (ΙΙ). 17

1.2 Βασικές έννοιες Η R εφαρµόζει µια διάλεκτο της γλώσσας S η οποία ειναι µια διερµηνέας γλώσσα προγραµµατισµού. Αυτό σηµαίνει ότι οι εντολές διαβάζονται και µετά εκτελούνται αµέσως. Αντίθετα, η C και η Fortran είναι µεταγλωτίστριες γλώσσες προγραµ- µατισµού στις οποίες ολοκληρωµένα προγράµµατα µεταφράζονται µε τη ϐοήθεια ενός µεταγλωτιστή στην κατάλληλη γλώσσα µηχανής. Το µεγάλο πλεονέκτηµα των διερµηνέων γλωσσών προγραµµατισµού είναι ότι επιτρέπουν σταδιακή ανάπτυξη. Με άλλα λόγια, µια συνάρτηση µπορεί να δηµιουργηθεί, να εκτελεσθεί και µετά να δηµιουργηθεί µια καινούργια συνάρτηση η οποία καλεί την πρηγούµενη κ.ο.κ. Σηµειώστε όµως ότι µεταγλωτισµένος κώδικας τρέχει πιο γρήγορα και χρειάζεται λιγότερη µνήµη από το διερµηνευµένο κώδικα. Η αλληλεπίδραση µε την R επιτυγχάνεται πληκτρολογώντας εκφράσεις, τις οποίες ο διερµηνέας αξιολογεί και µετά τις εκτελεί. Για παράδειγµα > sqrt function() ^0.5 > sqrt(2) [1] 1.414214 ή log function(, base = 2.71828182845905) { <-.Internal(log(), "do_math", T, 106) if(missing(base)) else /.Internal(log(base), "do_math", T, 106) } > log(10) [1] 2.302585 Αξίζει να σηµειωθεί ότι η R είναι ευαίσθητη στα κεφαλαία γράµµατα. Αυτό ση- µαίνει οτι το και το X είναι διαφορετικά αντικείµενα. Μια συνάρτηση καλείται συνήθως γράφοντας το όνοµα της ακολουθούµενο από µια λίστα ορισµάτων. Για παράδειγµα 18

> plot(fdeaths) > mean(fdeaths) [1] 560.6806 Οι µαθηµατικές πράξεις είναι συναρτήσεις µε δύο ορίσµατα τα οποία έχουν ειδικό κάλεσµα. Π.χ. > 2+5 [1] 7 > 3*6.8 [1] 20.4 > 12.6/6 [1] 2.1 Ενα από τα σύµβολα που χρησιµοποιείται πιο συχνά είναι το σύµβολο εγχώ- ϱησης <-, το οποίο καταχωρεί στις µεταβλητές συγκεκριµένες τιµές (π.χ. αριθµό, διάνυσµα, πίνακα, πλαίσιο δεδοµένων κ.α.) ή αποτελέσµατα πράξεων. test <- 4 > test [1] 4 Ακόµη ένα πολύ συνηθισµένο σύµβολο στην R είναι το σύµβολο δείκτη [, το οποίο χρησιµοποιείται για να εξάγει υποσύνολα από ένα αντικείµενο, π.χ. > letters [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" [16] "p" "q" "r" "s" "t" "u" "v" "w" "" "" "z" > letters[3] [1] "c" > letters[-3] [1] "a" "b" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" [16] "q" "r" "s" "t" "u" "v" "w" "" "" "z" Επίσης µπορεί να υπολογιστεί η λογική τιµή µιας πρότασης, όπως > j <- 1:26 > j<5 [1] TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE [11] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [21] FALSE FALSE FALSE FALSE FALSE FALSE 19

> letters[j<5] [1] "a" "b" "c" "d" Η τοποθέτηση δεικτών είναι πολύ σηµαντική στην αποτελεσµατική χρήση της R γιατί δίνει έµφαση στο να επεξεργάζεται αντικείµενα δεδοµένων σαν ολοκληρωµένες οντότητες, παρά σαν µια συλλογή από ξεχωριστές παρατηρήσεις. Σαν τελευταία εισαγωγική σηµείωση, τονίζεται ότι κάθε έκφραση της R ερ- µηνεύεται από τον αξιολογητή και επιστρέφει ένα αντικείµενο δεδοµένων. Τα αντικείµενα δεδοµένων έχουν τις παρακάτω µορφές : λογική (logical) αριθµητική (numeric) µιγαδική (comple) κειµένου (character) Οι µορφές είναι γραµµένες από αυτήν που παρέχει την λιγότερη πληροφορία εώς εκείνη που παρέχει την περισσότερη πληροφορία. Οταν είναι ανάγκη να συνδυάσεις διαφορετικές µορφές, τότε η R χρησιµοποιεί εκείνη µε την περισσότερη πληροφορία. Το επόµενο παράδειγµα επεξηγεί αυτό το σκεπτικό : > -3.6 [1] -3.6 > "Munich" [1] "Munich" > c(t, F, T) [1] T F T > c(-2, pi, 2) [1] -2.000000 3.141593 2.000000 > c(t, pi, F) [1] 1.000000 3.141593 0.000000 > c(t, pi, "Munich") [1] "TRUE" "3.14159265358979" "Munich" > mode(c(t, pi, "Munich")) [1] "character" 20