Σύντομη εισαγωγή στον τρόπο χρήσης του R

Σχετικά έγγραφα
Κάνοντας κάτι χρήσιμο... Αριθμομηχανή.

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

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

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

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

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

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

Σημαντικές δυνατότητες των σύγχρονων υπολογιστικών μηχανών: Αξιόπιστη καταγραφή πολύ μεγάλου όγκου δεδομένων

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

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

ΣΗΜΕΙΩΣΕΙΣ. στη γλώσσα προγραμματισμού. Γκέτσιος Βασίλειος

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) (PASCAL ) Μεταβλητές- Τύποι- Τελεστές

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Διαδικασιακός Προγραμματισμός

Εντολές της LOGO (MicroWorlds Pro)

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

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

3.1 Αριθμητικοί και Λογικοί Τελεστές, Μετατροπές Τύπου (Casting)

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

Βασικές έννοιες προγραμματισμού

ΜΜΚ 105: Πειραματική και Στατιστική Ανάλυση Δημιουργία Πινάκων και Γραφικών Παραστάσεων στην Excel 18/09/14

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

8 FORTRAN 77/90/95/2003

3 ο Εργαστήριο Μεταβλητές, Τελεστές

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

2.1. Εντολές Σχόλια Τύποι Δεδομένων

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

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

Γ τάξη Τεχνολογικής Κατεύθυνσης Ενιαίου Λυκείου ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. ΔΟΜΗ ΕΠΙΛΟΓΗΣ Διδάσκων: ΔΟΥΡΒΑΣ ΙΩΑΝΝΗΣ

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

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

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

ΥΠΟΛΟΓΙΣΤΕΣ Ι. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΠΡΑΞΕΙΣ. Παράδειγμα #1. Πράξεις μεταξύ ακεραίων αριθμών

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ :

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Γνωρίστε το Excel 2007

Πρόβλημα 29 / σελίδα 28

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Πληρουορική Γ Γσμμασίοσ

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

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Βασικοί τύποι δεδομένων (Pascal) ΕΠΑ.Λ Αλίμου Γ Πληροφορική Δομημένος Προγραμματισμός (Ε) Σχολ. Ετος Κων/νος Φλώρος

1. Εισαγωγή στο Sage.

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΟΓΙΑ

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στη γλώσσα προγραμματισμού Fortran 95

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Εισαγωγή στο GNU Octave/MATLAB

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

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

Λογικός τύπος Τελεστές σύγκρισης Λογικοί τελεστές Εντολές επιλογής Εμβέλεια Μαθηματικές συναρτήσεις Μιγαδικός τύπος ΔΕΥΤΕΡΗ ΔΙΑΛΕΞΗ

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

SPSS Statistical Package for the Social Sciences

1. Τα τμήματα της επιφάνειας εργασίας των Windows

auctionone Σύντομος Οδηγός Συμμετοχής σε Δυναμικού τύπου Δημοπρασία

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

επιµέλεια Θοδωρής Πιερράτος

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

Στοιχειώδης προγραμματισμός σε C++

Εισαγωγή στην γλώσσα προγραμματισμού C

Τα Windows Πολύ Απλά και Πολύ Σύντομα

Συναρτήσεις στη Visual Basic 6.0

Εγγραφή Οικονομικών Φορέων (registration)

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Εισαγωγή στη γλώσσα προγραμματισμού C++

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

R version ( ) Copyright (C) 2010 The R Foundation for Statistical Computing ISBN

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

Βασικές Αρχές Προγραμματισμού

Ενότητα 5: ΜΕΤΑΒΛΗΤΕΣ

Mεταγλωττιστές. 4 ο εργαστηριακό μάθημα Λεξική ανάλυση και flex. Θεωρία

Έναρξη Τερματισμός του MatLab

Υπολογιστές Ι. Άδειες Χρήσης. Τύποι δεδομένων. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Διαδικασιακός Προγραμματισμός

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Προγραμματισμός PASCAL

ΠΕΡΙΕΧΟΜΕΝΑ. Εντολές επιλογής Εντολές επανάληψης

- Αναπαράσταση ακέραιας τιµής : - Εύρος ακεραίων : - Ακέραιοι τύποι: - Πράξεις µε ακεραίους (DIV - MOD)

o AND o IF o SUMPRODUCT

Εισαγωγή στον Προγ/μό Υπολογιστών

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 2 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΚΑΙ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Διδάσκουσα Δρ Β.

// MATHIMA 2, // s.boot; s.makewindow.boot; // boot server!

Transcript:

Σύντομη εισαγωγή στον τρόπο χρήσης του R 01 Εκκίνηση Στη γραμμή εντολών γράψτε το γράμμα R (κεφαλαίο) και πατήστε ENTER (στα Windows ή το MacOS κάντε κλικ στο κατάλληλο εικονίδιο του προγράμματος). Πρέπει να δείτε κάτι παρόμοιο με το παρακάτω: R version 2.9.2 (2009-08-24) Copyright (C) 2009 The R Foundation for Statistical Computing ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > Το μήνυμα καλωσορίσματος μας δίνει και χρήσιμες οδηγίες όπως τι να κάνουμε για να πάρουμε βοήθεια ή να φύγουμε από το R. Π.χ. για να φύγουμε μας λέει να γράψουμε q( ). Παρατηρούμε τη χρήση των παρενθέσεων που θυμίζει τη σύνταξη της γλώσσας C. Για βοήθεια γράφουμε help( ) κλπ. Για να δώσουμε εντολές, τις γράφουμε στην προτροπή (σύμβολο >) και πατάμε ENTER. Για να φύγουμε από το R γράφουμε q( ). Τότε, το πρόγραμμα θα μας ρωτήσει αν θέλουμε να αποθηκεύσουμε τη δουλειά μας για να συνεχίσουμε από εκεί που σταματήσαμε, την επόμενη φορά. 02 Εκτέλεση πράξεων. Στη γραμμή εντολών γράψτε τα παρακάτω (το > είναι η προτροπή του R και προφανώς δεν το γράφετε): > 2+2 > 2*4 > 2^3 > sqrt(2) > 1.414214^2 > exp(1) > pi > exp(2) > exp(1.5) > sin(pi) Τι αποτελέσματα πήρατε; Τι παρατηρείτε στο τελευταίο αποτέλεσμα;

03 Συναρτήσεις με επιπλέον ορίσματα. Αλλαγή βάσης λογαρίθμου. > log(10,10) > log(10, base=10) Τι αποτέλεσμα πήρατε; 04 Ορισμός μεταβλητών. Γράψτε τα παρακάτω: = 2 +3 Τι αποτέλεσμα πήρατε και πώς το ερμηνεύετε; Παρόμοια: > e = exp(1) > e > e^2 Τι κάναμε εδώ; Το σύμβολο της ισότητας που χρησιμοποιήσαμε για τον ορισμό μιας μεταβλητής, μπορεί να αντικατασταθεί και από το σύμβολο <- που κάνει το ίδιο (αναθέτει την τιμή του δεξιού στο αριστερό μέλος), αλλά και το σύμβολο -> (αναθέτει την τιμή του αριστερού στο δεξί μέλος). 05 Ανάθεση παραστάσεων σε μεταβλητές. Συνεχίζοντας, γράψτε τα παρακάτω: > y = x = 2*x+1 > y <- 2*x-1 > y > (y+1)/2 -> y > y Τι έγινε σε κάθε βήμα; Τα ονόματα των μεταβλητών μπορούν να περιέχουν γράμματα, αριθμητικά ψηφία, τελεία και χαρακτήρα υπογράμμισης. Μπορούν να αρχίζουν από γράμμα ή τελεία. Συνηθίζονται, χωρίς να είναι υποχρεωτικό, οι εξής συμβάσεις: n για αριθμό δεδομένων (παρατηρήσεων) x, y για άνυσμα (πίνακα) δεδομένων (βλ. συνέχεια) i, j για ακέραιους και αριθμοδείκτες μεταβλητές που αρχίζουν με τελεία χρησιμοποιούνται στον προγραμματισμό με R

06 Απόδοση πολλαπλών τιμών. Ανύσματα δεδομένων (data vectors). Με τη συνάρτηση c( ) μπορούμε να αποδώσουμε πολλές τιμές συγχρόνως, κατασκευάζοντας δομές παρόμοιες με τους πίνακες των άλλων γλωσσών προγραμματισμού. > mydata = c(74, 122, 235, 111, 292, 111, 211, 133, 156, 79) > mydata 07 Συνδυασμός δυο ανυσμάτων δεδομένων σε ένα. = c(74, 122, 235, 111, 292) > y = c(111, 211, 133, 156, 79) > c(x,y) > z = c(x,y) > z Τα δεδομένα πρέπει να είναι του ίδιου τύπου. Αν δεν είναι θα μετατραπούν σε ένα, συνήθως αλφαριθμητικό, εμποδίζοντας περαιτέρω αριθμητικές πράξεις. Αλφαριθμητικά δεδομένα ορίζονται με τη βοήθεια απλών ή διπλών εισαγωγικών. 08 Εισαγωγή αλφαριθμητικών δεδομένων. > simpsons = c("homer", "Marge", "Bart", "Lisa", "Maggie") > simpsons 09 Απόδοση ονομάτων. Στα στοιχεία ενός ανύσματος, μπορούμε να δώσουμε ονομασίες με τη συνάρτηση names( ), ώστε όταν εμφανίζονται οι τιμές του, να φαίνονται από πάνω τα ονόματα σαν επικεφαλίδες. > names(simpsons) = c("dad", "mom", "son", "daughter 1", "daughter 2") > names(simpsons) > simpsons 10 Επεξεργασία δεδομένων αποθηκευμένων σε ανύσματα. > sum(mydata) > length(mydata) > sum(mydata)/length(mydata) > mean(mydata) > sort(mydata) > min(mydata) > max(mydata) > range(mydata) > diff(mydata) > cumsum(mydata) Τι κάνει κάθε συνάρτηση από τις παραπάνω; Οι πράξεις και συναρτήσεις στο R είναι vectorized, δηλαδή επιδρούν σε κάθε στοιχείο του ανύσματος χωριστά.

11 Παράδειγμα vectorized πράξεων. > mydata.1=c(89, 254, 306, 292, 274, 233, 294, 204, 204, 90) > mydata + mydata.1 > mydata - mydata.1 > mydata - mean(mydata) Τι έγινε εδώ; Στην τελευταία πράξη, ένας αριθμός αφαιρείται από ένα άνυσμα. Αυτό λέγεται ανακύκλωση δεδομένων, δηλαδή τιμές από το ένα άνυσμα επαναλαμβάνονται ώστε το μήκος του να ταιριάξει με το άλλο. 12 Άλλο παράδειγμα vectorized πράξεων. Η διασπορά των δεδομένων υπολογίζεται απευθείας με τη συνάρτηση var( ). Εδώ θα υπολογιστεί πρώτα υλοποιώντας το γνωστό ορισμό του μέσου τετραγώνου για να δείξουμε τη χρήση του vectorization. = c(2, 3, 5, 7, 11) > sum((x-mean(x))^2)/(length(x)-1) Δοκιμάστε το ίδιο πιο αναλυτικά, ως εξής: = c(2, 3, 5, 7, 11) mean = mean(x) > n=length(x) > sum((x-xmean)^2)/(n-1) Επαληθεύστε με χρήση της συνάρτησης var( ): > var(x) 13 Αναζήτηση βοήθειας. Αναζητείστε βοήθεια για τη συνάρτηση mean, γράφοντας help( mean ) ή?mean ή? mean. 14 Βοήθεια μέσω παραδειγμάτων. Μπορούμε να δούμε παραδείγματα από τη χρήση των συναρτήσεων με τη βοήθεια της συνάρτησης example( ). Ακόμη, αν γράψουμε help.search( mean ) θα βρούμε όλες τις σελίδες της βοήθειας που αναφέρουν κάπου τη συνάρτηση mean, ενώ με apropos( mean ) θα δούμε όλα τα ονόματα συναρτήσεων που περιέχουν τη λέξη mean. Αλλά προσοχή! Το παράδειγμα εκτελεί τις πράξεις που περιέχει και αν οι μεταβλητές του έχουν ίδιο όνομα με αυτές που χρησιμοποιείτε, μπορεί να αλλοιώσει τα δεδομένα σας! = c(2, 3, 5, 7, 11) > example("mean") (εδώ θα εμφανιστεί το παράδειγμα) Τι παρατηρείτε ότι συνέβη στο άνυσμα x; Ποιες οι τιμές πριν και μετά την κλήση του παραδείγματος; Μερικές ευκολίες... Πάνω βελάκι προηγούμενη εντολή (πατώντας πολλές φορές, μας γυρίζει ανάλογα πίσω) Κάτω βελάκι μ ας γυρίζει μπροστά μέχρι την πιο πρόσφατη εντολή Αριστερό/δεξί βελάκι πηγαινοφέρνει τον κέρσορα αναλόγως HOME ή Ctrl-a στην αρχή της τρέχουσας γραμμής END ή Ctrl-e στο τέλος της τρέχουσας γραμμής

15 Διόρθωση και προσθήκη δεδομένων. Για να διορθώσετε τα δεδομένα στο x (ή όποιο άλλο αντικείμενο θέλετε), γράψτε: > data.entry( x) Η data.entry χρησιμεύει και στην εισαγωγή δεδομένων: ορίζουμε μια απλή μεταβλητή και με τη data.entry συνεχίζουμε την εισαγωγή δεδομένων. 16 Ορισμός συνεχόμενων δεδομένων. Με τη διπλή τελεία (:) μπορούμε να δίνουμε συνεχόμενους αριθμούς. > 1:10 > rev(1:10) > 10:1 Τι πήρατε; 17 Ορισμός δεδομένων με μορφή αριθμητικής προόδου. > a = 1; h = 4; n = 5 (το ; επιτρέπει να γράφουμε πολλές εντολές στην ίδια σειρά) > a + h*(0:n) > a + h*(0:(n-1)) > a + h*(0:n-1) > b = a + h*(0:n) > b > b = c(a + h*(0:n)) > b Τι αποτέλεσμα πήρατε; Πώς το ερμηνεύετε; Το παραπάνω παράδειγμα δείχνει ότι χρειάζεται προσοχή στη χρήση παρενθέσεων για να μην πάρουμε λάθος αποτελέσματα. Όπως και με άλλες γλώσσες προγραμματισμού, είναι καλό να χρησιμοποιούμε καταχρηστικά τις παρενθέσεις για να είμαστε βέβαιοι για τη σειρά των πράξεων. 18 Επαναλαμβανόμενοι αριθμοί. > rep(1, 10) > rep(1:3, 3) Συνδυάζοντας τα παραπάνω, μπορούμε να χειριστούμε πολύπλοκες ομάδες δεδομένων. 19 Προσπέλαση δεδομένων με δείκτες. Μπορούμε να προσπελάσουμε μια μεμονωμένη τιμή από ένα άνυσμα δεδομένων χρησιμοποιώντας κατάλληλο αριθμοδείκτη. Ο συμβολισμός είναι ίδιος με τη γλώσσα C, αλλά η μέτρηση αρχίζει από το 1 και όχι από το 0: x[1], x[2],... > mydata > n=length(mydata) > n > mydata[1]

> mydata[n] > mydata[length(mydata)] 20 Προσπέλαση τομέων και υποσυνόλων δεδομένων. > mydata[1:4] > mydata[c(1,3,6)] 21 Αρνητικοί δείκτες για να αποκλείσουμε κάποιες τιμές. Χρησιμοποιούμε αρνητικούς δείκτες, αν η απόλυτη τιμή τους είναι από 1 μέχρι το μήκος της μεταβλητής, για να εμφανίσουμε όλα τα άλλα στοιχεία εκτός από αυτά στα οποία αναφερόμαστε με την απόλυτη τιμή των δεικτών > mydata[-1] > mydata[-(1:4)] > mydata[-(c(1,3,6))] 22 Προσπέλαση δεδομένων μέσω των ονομάτων τους. =1:3 > names(x)=c("one", "two", "three") ["two"] 23 Απόδοση τιμών σε συγκεκριμένα στοιχεία με τη βοήθεια δεικτών. [1] = 3 [4]=4 [6]=5 [5:6]=5 [-2] = 0 Τι παίρνετε σε κάθε βήμα; Τι παρατηρείτε σχετικά με το μέγεθος του συνόλου δεδομένων που παριστάνει το x. Τι μπορεί να σημαίνει το ΝΑ; 24 Επέκταση ενός συνόλου δεδομένων, με απόδοση τιμών σε ένα κατάλληλο άνυσμα δεικτών. = 1:4 [5:8] = 5

> y = c(3, 5, 8) > y [9:11] = y 25 Λογικές τιμές και vectorized χρήση τους. > mydata > mydata > 100 > mydata < 100 Τι παίρνετε σε κάθε περίπτωση; 26 Εύρεση δεδομένων που ικανοποιούν συγκεκριμένη συνθήκη. > mydata < 100 > mydata[mydata < 100] > which(mydata < 100) > mydata[which(mydata < 100)] > mydata[c(1,10)] Τι πήρατε σε κάθε βήμα; Ποια η χρησιμότητα της συνάρτησης which; Για να διατυπώνουμε λογικές συνθήκες έχουμε στη διάθεσή μας τα σύμβολα >, >=, <, <=, ==,!=, &, &&, και. Τα & και είναι vectorized, δηλαδή δίνουν αποτέλεσμα σύγκρισης αντίστοιχων τιμών από δύο μεταβλητές, ενώ τα && και εκτιμώνται από αριστερά προς τα δεξιά μέχρι να προσδιοριστεί ένα TRUE ή FALSE, δηλαδή επιστρέφουν μόνο μια λογική τιμή. 27 Παράδειγμα χρήσης λογικών τελεστών. =1:5 <5 >1 >1 & x<5 >1 && x<5 >1 x<5 >1 x<5 ==3!=3 >! x==3 == c(2,4) (συνέχεια στην άλλη σελίδα)

%in% c(2,4) Για σύγκριση ανύσματος με εύρος τιμών είναι προτιμώτερος ο τελεστής %in%. Σημαντική σημείωση: για αριθμητικές συγκρίσεις, οι τελεστές ==,!= κλπ δεν είναι κατάλληλοι και αντί γι' αυτούς χρησιμοποιούμε τις συναρτήσεις identical και all.equal. Όταν λείπουν τιμές (ΝΑ) από τα δεδομένα μας χρησιμοποιούμε τη συνάρτηση is.na για να τις εντοπίζουμε, π.χ. x[!is.na(x)] 28 Περιβάλλον εργασίας. Αν έχουμε ορίσει πολλές μεταβλητές, μπορούμε να τις θυμηθούμε με τη συνάρτηση ls( ) ή την objects( ) > ls() > objects() Τι μπορεί να σημαίνουν τελικά οι αριθμοί σε αγκύλες [ ] που εμφανίζονται στην αρχή κάθε γραμμής; > browseenv( ) > ls(pattern="data") Τι πήρατε με την τελευταία εντολή; 29 Επέμβαση στο περιβάλλον εργασίας. Για να καταργήσουμε αντικείμενα που δε μας ενδιαφέρουν πια, χρησιμοποιούμε τη συνάρτηση rm( ) ή remove( ). > ls() > rm(x) ls() > rm (xm, xmean, a,b,y,w) > ls() 30) Εξωτερικές πηγές δεδομένων. Δημιουργείστε στον κατάλογο εργασίας, το αρχείο data1.txt με τα εξής δεδομένα: 74 122 235 111 292 111 211 133 156 79 Μετά, επιστρέψτε στο R και γράψτε: > data1 = scan(file="data1.txt") Read 10 items > data1 Δημιουργείστε στον κατάλογο εργασίας, το αρχείο data2.txt με τα εξής δεδομένα: x y 1 2.05 2 3.95 3 5.89 4 7.99 5 10.01 6 12.11

7 14.07 8 15.94 9 18.04 10 20.06 Μετά, επιστρέψτε στο R και γράψτε: > read.table("data2.txt",header=true) > data2=read.table("data2.txt",header=true) > data2 Αν το αρχείο είναι τύπου CSV (comma separated values) θα χρησιμοποιήσουμε τη συνάρτηση read.csv( ) Το όνομα του αρχείου μπορούμε να το δώσουμε και διαδραστικά με τη συνάρτηση file.choose( ): > read.table(file=file.choose( )) 31 Αποθήκευση εντολών του R για μελλοντική χρήση. Μπορούμε να συγκεντρώσουμε εντολές του R σε εξωτερικά αρχεία και να τις διαβάσουμε και εκτελέσουμε με τη συνάρτηση source( ). Γράψτε ένα σε ένα αρχείο με το όνομα commands τα παρακάτω: x = 1:10 y = x^2 z = log(x, 10) Μετά, επιστρέψτε στο R και γράψτε: > source("commands") ; y; z Για να εντοπίσουμε ένα αρχείο, μπορούμε να αναφερόμαστε και στη διαδρομή του, με τους κανόνες του λειτουργικού συστήματος. Ο κατάλογος εργασίας βρίσκεται με τη συνάρτηση getwd( ) και επανακαθορίζεται με τη setwd( ). Αρχεία μπορούν να βρεθούν και να διαβαστούν ακόμη και στο διαδίκτυο αν δοθεί η διεύθυνσή τους.