Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf ·...

16
Οδηγίες χρήσης του R, μέρος 1 ο Προκαταρκτικά Κατεβάζουμε το λογισμικό από την ιστοσελίδα http://cran.cc.uoc.gr/bin/windows/base/ Εγκαθιστούμε το λογισμικό στον υπολογιστή μας εκτελώντας το αρχείο που κατεβάσαμε. Τρέχουμε το λογισμικό με διπλό κλικ στο μπλε εικονίδιο και βλέπουμε το περιβάλλον του R: Αρχικά θα πληκτρολογούμε τις εντολές μας στο λευκό παράθυρο. Αργότερα θα αποθηκεύουμε σειρές εντολών σε ξεχωριστά αρχεία, ώστε να έχουμε πρόσβαση σε προηγούμενες εργασίες. Βασικές αρχές Α. Αριθμητικές πράξεις Το R εκτελεί αριθμητικές πράξεις γράφοντας απλώς τη σχετική παράσταση. Π.χ., αν γράψουμε 2+3 θα μας δώσει το αποτέλεσμα 5: > 2+3 [1] 5 > Αυτά που γράφουμε εμείς εμφανίζονται κόκκινα, ενώ οι απαντήσεις του λογισμικού είναι μπλε, ώστε να τις ξεχωρίζουμε εύκολα. Το [1] σημαίνει ότι βλέπουμε το πρώτο στοιχείο της απάντησης στο ερώτημά μας (τον αριθμό 5), που στην περίπτωση αυτή είναι και το μοναδικό.

Transcript of Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf ·...

Page 1: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

ΟδηγίεςχρήσηςτουR,μέρος1ο

Προκαταρκτικά

Κατεβάζουμετολογισμικόαπότηνιστοσελίδαhttp://cran.cc.uoc.gr/bin/windows/base/

Εγκαθιστούμετολογισμικόστονυπολογιστήμαςεκτελώνταςτοαρχείοπουκατεβάσαμε.

ΤρέχουμετολογισμικόμεδιπλόκλικστομπλεεικονίδιοκαιβλέπουμετοπεριβάλλοντουR:

Αρχικάθαπληκτρολογούμετιςεντολέςμαςστολευκόπαράθυρο.Αργότεραθααποθηκεύουμεσειρέςεντολώνσεξεχωριστάαρχεία,ώστεναέχουμεπρόσβασησεπροηγούμενεςεργασίες.

Βασικέςαρχές

Α.ΑριθμητικέςπράξειςΤοRεκτελείαριθμητικέςπράξειςγράφονταςαπλώςτησχετικήπαράσταση.Π.χ.,ανγράψουμε2+3θαμαςδώσειτοαποτέλεσμα5: > 2+3 [1] 5 > Αυτάπουγράφουμεεμείςεμφανίζονταικόκκινα,ενώοιαπαντήσειςτουλογισμικούείναιμπλε,ώστενατιςξεχωρίζουμεεύκολα.Το[1]σημαίνειότιβλέπουμετοπρώτοστοιχείοτηςαπάντησηςστοερώτημάμας(τοναριθμό5),πουστηνπερίπτωσηαυτήείναικαιτομοναδικό.

Page 2: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

Παρομοίωςμπορούμενακάνουμεπρόσθεση,αφαίρεσηκλπ.: > (8-5)*2/17 [1] 0.3529412 > Γιαναυποδείξουμετηνεπιθυμητήσειράτωνπράξεων,χρησιμοποιούμεπαρενθέσεις.Στοπαραπάνωπαράδειγμα,θέλουμεηδιαφορά8−5ναυπολογιστείπρώτα,καιμετάτοαποτέλεσμαναπολλαπλασιαστείμετοδύο.Τασύμβολατωνπράξεωνείναι:πρόσθεση+,αφαίρεση−,πολλαπλασιασμός*,διαίρεση/Γιαναυψώσουμεσεδύναμη,χρησιμοποιούμετοσύμβολο^: > 2^3 [1] 8 > Το2στην3ηδύναμη,δηλαδήπολλαπλασιασμένομετονεαυτότουτρειςφορές,είναι2×2×2=8.Β.ΜεταβλητέςΤοRχρησιμοποιείμεταβλητές,στιςοποίεςμπορούμενακαταχωρίσουμεαριθμητικέςήκατηγορικέςτιμές.Γιαπαράδειγμα,μπορούμενααποθηκεύσουμετηντιμή5στημεταβλητήa: > a <- 5 > Τοσύμβολο<-δείχνειπωςοαριθμός5«τοποθετείται»στηνετικέταa.Τοίδιοακριβώςαποτέλεσμαμπορούμεναπετύχουμεκαιγράφονταςπρώτατηντιμή,αρκείτοβέλοςναδείχνειπροςτησωστήκατεύθυνση,δηλαδήτοόνοματηςμεταβλητής: > 5 -> a > Μετάτηνανάθεση,τοaέχειπάρειτηντιμή5,καιθατηδιατηρήσειμέχρινατηναλλάξουμε.Στησυνέχειαμπορούμεναχρησιμοποιούμετοaσεοποιαδήποτεπράξησαναήταναριθμός: > a-2 [1] 3 > Γιαονόματαμεταβλητώνμπορούμεναχρησιμοποιήσουμεό,τιμαςβολεύει.Γιαπαράδειγμα,γιαναυπολογίσουμεέναδείκτησωματικήςμάζας,μπορούμεναγράψουμε: > ypsos <- 1.81 > varos <- 85 > BMI <- varos / ypsos^2 > BMI [1] 25.94548 >

Page 3: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

Στοπαράδειγμααυτόχρησιμοποιήσαμετημεταβλητήμεόνομαypsosγιατούψος(σεμέτρα),τημεταβλητήμεόνομαvarosγιατοβάρος(σεκιλά),καιτημεταβλητήμεόνομαBMIγιατοδείκτη.Φυσικάθαμπορούσαμεναείχαμεχρησιμοποιήσειοποιαδήποτεάλλαονόματα: > a <- 1.81 > b <- 85 > i <- b / a^2 > i [1] 25.94548 > Προσοχή,ηυποδιαστολήτωνδεκαδικώναριθμώνείναιτελεία,όχικόμμα!Γ.ΣυναρτήσειςΛέγονταςσυναρτήσειςεννοούμε,πολύχοντρικά,προκαθορισμένεςαντιστοιχίεςήλειτουργίεςπουεφαρμόζονταισεένανήπερισσότερουςαριθμούςκαιδίνουνσυγκεκριμένοαποτέλεσμα.Γιαπαράδειγμα,ητετραγωνικήρίζαενόςαριθμούδίνεταιαπότησυνάρτησηsqrt:> sqrt(16) [1] 4 > Ησυνάρτησηroundχρησιμοποιείταιγιατηστρογγυλοποίησητωνδεκαδικώνψηφίων.Έτσι,μπορούμενακρατήσουμεμόνοέναδεκαδικόαπότοδείκτησωματικήςμάζαςπουυπολογίσαμεπαραπάνω:> round(BMI,1) [1] 25.9 > Ανθέλαμεδύοδεκαδικάψηφία,θαέπρεπεναδώσουμεround(BMI,2).Ανπαραλείψουμεεντελώςτηνπαράμετροαυτή(τοδεύτεροαριθμό),εννοείταιτομηδέν(κανέναδεκαδικό).ΌλεςοισυναρτήσειςστοRδέχονταιταορίσματάτουςμέσασεπαρενθέσεις.Πρέπειναείμαστεπάνταπολύπροσεκτικοίστιςπαρενθέσεις,ναμηντιςξεχνάμε,διότιαυτόοδηγείσελάθη,π.χ.> round BMI,2 Error: unexpected symbol in "round BMI" > Ένασημείοπουπρέπειναπροσέχουμειδιαίτεραείναιότιόσεςπαρενθέσειςανοίγουμεπρέπειαντίστοιχανατιςκλείνουμε.Ανλοιπόνέχουμεσυναρτήσειςμέσασεσυναρτήσεις,ήπράξειςμεπαρενθέσειςμέσασεσυναρτήσεις,θαπρέπειναελέγχουμεότιγιακάθεπαρένθεσηπουανοίγει(αριστερή)υπάρχεικαιηαντίστοιχηπουκλείνει(δεξιά).> round(85/(1.81^2)) [1] 26 >

Page 4: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

Ανξεχάσουμενακλείσουμεκάποιαπαρένθεση,τοRθεωρείότιδενέχουμετελειώσειμετηνεντολήμαςκαιμαςπαρουσιάζειένα+(σεκόκκινοχρώμα)αναμένονταςτησυνέχεια.> round(85/(1.81^2) + Στηνπερίπτωσηαυτή,δίνουμετηντελικήπαρένθεσησυνεχίονταςστηνεπόμενησειρά:+ ) [1] 26 > Δ.ΑκολουθίεςΠολλέςφορέςχρειάζεταιναεπεξεργαστούμεένασύνολοαπόαριθμούς,ωςμιαομάδαήμιαακολουθία.Γιαπαράδειγμα,μπορείναθέλουμεναυπολογίσουμετοάθροισμαπερισσότερωναπόδύοαριθμών.Θαμπορούσαμενατουςπροσθέσουμεστησειρά,μετοσύμβολοτηςπρόσθεσης: > 5 + 2 + 6 + 8 + 3 [1] 24 > Έτσιόμωςχάνουμετηδυνατότηταναδιατηρήσουμεαυτήτηνομάδααριθμώνγιαάλλεςπράξεις,καιπρέπεινατουςγράφουμεαπότηναρχήκάθεφορά.Γιατηνπερίπτωσηενόςμοναδικούαριθμού,είδαμεπαραπάνωότιμπορούμεναχρησιμοποιήσουμεμιαμεταβλητήπουναδιατηρείτηντιμήτου.Αντίστοιχα,γιατηνπερίπτωσηομάδωναριθμών,χρησιμοποιούμετησυνδυαστικήσυνάρτησηc,ηοποίαενώνειμιαομάδααριθμώνσεμιασταθερήακολουθία.Ηομάδααυτήδίνεταιμέσασεζεύγοςπαρενθέσεων,όπουοιμεμονωμένοιαριθμοίχωρίζονταιμεκόμμα.> omada <- c(5,2,6,8,3) >Μετοντρόποαυτό,ημεταβλητήomadaπεριέχειπλέοναυτήντηνπεντάδααριθμών. > omada [1] 5 2 6 8 3 > Έτσι,ανθέλουμετοάθροισμααυτήςτηςομάδας,μπορούμεναχρησιμοποιήσουμεαπευθείαςτησυνάρτησηsum: > sum(omada) [1] 24 >

Page 5: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

ΤοRμαςδίνεισυναρτήσειςγιαδιάφορουςχρήσιμουςυπολογισμούςομάδωναριθμών,όπωςγιαπαράδειγματονεντοπισμότουμέγιστουκαιτουελάχιστου. > min(omada) [1] 2 > max(omada) [1] 8 > Τοπλήθοςτωνστοιχείωνμιαςακολουθίαςδίνεταιαπότησυνάρτησηlength> length(omada) [1] 5 > Αργότεραθαδούμεπερισσότερεςσυναρτήσεις,πουθατιςχρειαστούμεγιατιςαναλύσειςμας.Προςτοπαρόν,εξασκηθείτεστηβασικήχρήσητουRχρησιμοποιώνταςτιςπαραπάνωπράξειςκαισυναρτήσεις,καικατασκευάζονταςπαρόμοιαδικάσαςπαραδείγματα.Πειραματιστείτεμεδιαφορετικέςτιμέςκαιπαραστάσειςκαιμηφοβάστεότανδίνετεκάτιλάθος! ΑθανάσιοςΠρωτόπαπαςΜάρτιος2012

Page 6: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

ΟδηγίεςχρήσηςτουR,μέρος2ο

Ελληνικά

ΑνπροσπαθήσουμεναγράψουμεελληνικάήναανοίξουμεκάποιοαρχείοδεδομένωνμεελληνικούςχαρακτήρεςστοR,μπορείαντίγιαελληνικάναδούμελατινικούςχαρακτήρεςμε

τόνουςήάλλακαλλικαντζαράκια.ΤότεδίνουμετηνπαρακάτωεντολήγιαναγυρίσειτοRσταελληνικά:

> Sys.setlocale("LC_CTYPE","Greek") [1] "Greek_Greece.1253" ΗαπόκρισητουR(μεμπλε)επιβεβαιώνειτηρύθμισητωνελληνικών.

Πλαίσιαδεδομένων

ΤοRδιατηρείμετρήσειςμέσασεδομέςπουονομάζονται«πλαίσιαδεδομένων»(dataframe).Κάθεπλαίσιοδεδομένωνπεριέχειμίαήπερισσότερεςμεταβλητές.Γιαπαράδειγμα,αςκαταγράψουμετοφύλοκαιτηνηλικίαδύοατόμων,τουΓιάννηκαιτηςΜαρίας,σεέναπλαίσιοδεδομένωντοοποίοαναθέτουμεσεμιαμεταβλητήμεόνομαatoma:> atoma<-data.frame(sex=c("M","F"),age=c(21,22)) Μετησυνάρτησηdata.frameορίζουμεέναπλαίσιοδεδομένων.Στησυνάρτησηδίνουμεωςορίσματατιςμεταβλητέςπουθέλουμεναπεριέχειτοπλαίσιο,δηλαδήsex(φύλο)καιage(ηλικία).Σεκάθεμεταβλητήδίνουμετιςαντίστοιχεςμετρήσεις,ωςακολουθίατιμών(χρησιμοποιώνταςτησυνάρτησηcπουείδαμεστοπρώτομέροςτωνοδηγιών).Ανθέλουμε(δενείναιυποχρεωτικό)μπορούμεναπροσθέσουμεετικέτεςστιςσειρέςτουπλαισίουγιανααναγνωρίζουμεονομαστικάταδεδομένα: > rownames(atoma)<-c("Γιάννης","Μαρία") Τώραμπορούμεναδούμεταπεριεχόμενατουπλαισίουδεδομένωνatoma: > atoma sex age Γιάννης M 21 Μαρία F 22 ΤοRμαςδίνει,σεμορφήπίνακα,όλαταδεδομένατουπλαισίου.Γιαναεξετάσουμετηδομήτουπλαισίουμπορούμεναχρησιμοποιήσουμετησυνάρτησηstr,ηοποίαμαςδίνειπεριληπτικάτοείδοςτωνδεδομένωνκαιενδεικτικέςτιμέςγιακάθεστήλη(μεταβλητή):> str(atoma) 'data.frame': 2 obs. of 2 variables: $ sex: Factor w/ 2 levels "F","M": 2 1 $ age: num 21 22

Page 7: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

Στηνπρώτησειράτηςαπόκρισης,ησυνάρτησηstrμαςενημερώνειότιτοatomaείναιπλαίσιοδεδομένων(‘data frame’),τοοποίοπεριέχειδύο«παρατηρήσεις»(obs.=observations)καιδύο«μεταβλητές».Λέγοντας«παρατηρήσεις»αναφερόμαστεστιςσειρέςτουπλαισίου,ενώλέγοντας«μεταβλητές»αναφερόμαστεστιςστήλες.Στιςεπόμενεςδύοσειρέςτηςαπόκρισηςδίνονταιοιπληροφορίεςπουαφορούνσεκαθεμιάμεταβλητήξεχωριστά:

ΗπρώτημεταβλητήονομάζεταιsexκαιείναιτύπουFactor,δηλαδή«παράγοντας».Αυτό,στηνορολογίατουR,σημαίνειότιπρόκειταιγιακατηγορικήμεταβλητή.Περιλαμβάνει2«επίπεδα»(levels),δηλαδήδύοκατηγορίες,οιοποίεςονομάζονται“F”και“M”(γυναίκεςκαιάντρες).Το“F”αναφέρεταιπρώτοδιότιτοRχρησιμοποιείαπόμόνοτουαλφαβητικήσειράγιατηναναφοράσεκατηγορίες.Ησειράπεριγραφήςτηςμεταβλητήςsexολοκληρώνεταιμεταπρώταστοιχείατηςστήλης,δηλαδήτοναριθμό2(αναφέρεταιστηδεύτερηκατηγορία,“M”)καιτοναριθμό1(πρώτηκατηγορία,“F”).Αυτόμαςλέειότιηπρώτησειράδεδομένωνείναιτύπου“F”καιηδεύτερητύπου“M”.

Ηδεύτερημεταβλητήονομάζεταιageκαιείναιτύπουnum,δηλαδή«αριθμητική»(numeric).Αυτό,στηνορολογίατουRσημαίνειότιπρόκειταιγιαποσοτικήμεταβλητή.Δενχρειάζονταιάλλεςδιευκρινίσεις,καθώςστιςποσοτικέςμεταβλητέςτανούμεραείναιαυτονόητα.Ησειράολοκληρώνεταιμεταπρώταστοιχείατηςστήλης,δηλαδήτουςαριθμούς21και22,οιοποίοιαντιστοιχούνστηνπρώτηκαιτηδεύτερησειράδεδομένων,αντίστοιχα.

ΝαθυμάστεότιτακατηγορικάδεδομέναστοRείναιτύπουfactorενώταποσοτικάδεδομέναείναιτύπουnumeric.

Όπωςβλέπουμεστηναπόκρισητηςσυνάρτησηςstr,πριναπόκάθεμεταβλητήεμφανίζεταιέναδολλάριο($).ΤοσύμβολοτουδολλαρίουστοRχρησιμοποιείταιγιαναδηλώνουμεσυγκεκριμένεςμεταβλητέςμέσασεπλαίσιαδεδομένων.Έτσι,γιανααναφερθούμεστιςηλικίες(μεταβλητήage)πουβρίσκονταιμέσαστοπλαίσιοatomaγράφουμε > atoma$age [1] 21 22 ενώγιανααναφερθούμεστοφύλο(μεταβλητήsex)γράφουμε> atoma$sex [1] M F Levels: F M ΣτηνπερίπτωσητηςκατηγορικήςμεταβλητήςτοRμαςενημερώνεικαιγιατοσύνολοτωνκατηγοριώνπουπεριλαμβάνειησυγκεκριμένημεταβλητή.Απομονώνονταςτιςμεταβλητέςμεαυτόντοντρόπο,μπορούμενατιςχειριστούμεωςκοινέςακολουθίες.Γιαπαράδειγμα,μπορούμεναχρησιμοποιήσουμετιςσυναρτήσειςαπότοπρώτομέροςτωνοδηγιώνγιαναυπολογίσουμετοάθροισμα,τοπλήθοςκλπ.> sum(atoma$age) [1] 43 > length(atoma$sex) [1] 2

Page 8: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

Γιατηνεπεξεργασίαδεδομένωνσεπλαίσια,τοRμαςδίνειτησυνάρτησηfix,μετηνοποίαμαςεμφανίζειέναειδικόπαράθυροστοοποίομπορούμενατροποποιήσουμεήναπροσθέσουμεστοιχείασεέναπλαίσιοδεδομένων.> fix(atoma)

Όταντελειώσουμετηνπροσθήκηήεπεξεργασίατωνστοιχείων,κλείνουμετοειδικόπαράθυρομεκλικστο✕(πάνωδεξιάγωνία)καιημεταβλητήatomaενημερώνεταιαυτόματα.ΓραφικήπαρουσίασηδεδομένωνΤοRδιαθέτειπολλέςσυναρτήσειςγιατηνπαρουσίασηκαιλεπτομερειακήεξέτασηκαιανάλυσητωνδεδομένωνμας.Αςυποθέσουμεότιέχουμεπέντεμετρήσειςύψουςενόςατόμου:> alexh <- c( 1.85, 1.85, 1.81, 1.82, 1.83 ) Ημεταβλητήalexhπεριέχειμιαακολουθίαπέντεαριθμών.Μετησυνάρτησηtable(«πίνακας»)μπορούμεναμετρήσουμεπόσεςφορέςεμφανίζεταικάθετιμή:> table(alexh) alexh 1.81 1.82 1.83 1.85 1 1 1 2 Αυτόςείναιέναςαπλόςπίνακαςσυχνοτήτων.Βλέπουμεότιητιμή1.85εμφανίζεταιδύοφορέςενώοιάλλεςτιμέςαπόμίαφορά.Ητιμήπουεμφανίζεταιτιςπερισσότερεςφορέςονομάζεται«δεσπόζουσα»(mode).Ανηκαλύτερητιμήέβγαινειμεψηφοφορία,ηδεσπόζουσαείναιεκείνηπουθακέρδιζελόγωπλειοψηφίας.Τηνπληροφορίααυτήμπορούμενατηδούμεκαιγραφικά,μετησυνάρτησηplot:> plot(table(alexh)) ΤοRανοίγειένανέοπαράθυρογιατηγραφικήαπεικόνιση,στοοποίοεμφανίζειτοεξής:

Page 9: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

Εδώβλέπουμεέναραβδόγραμμαμετούψοςστονοριζόντιοάξονακαιτοπλήθοςτωναντίστοιχωνμετρήσεωνστονκατακόρυφο.Κάθεμέτρησηεμφανίζεταισαμιαγραμμούλαπουφτάνεισεύψος1.0,ενώστούψος1.85,πουυπάρχουνδύομετρήσεις,εμφανίζονταιδύογραμμούλεςημίαπάνωστηνάλλη,κάνονταςμαζίμιαμακρύτερηπουφτάνειστούψος2.0.Αυτόείναιέναδιάγραμμασυχνοτήτων,πουμαςλέειπόσοσυχνάεμφανίζεταικάθεαριθμός.Μπορούμενακαλλωπίσουμεκάπωςτηγραφικήαπεικόνιση,προσθέτονταςετικέτες:> plot(table(alexh),las=1,xlab="Ύψος",ylab="Αριθµός µετρήσεων") Ηπαράμετροςlasστρίβειτηναρίθμησηστονκατακόρυφοάξοναώστεναδιαβάζεταιόρθια,ενώοιδύοπαράμετροιlab(απότοlabel=ετικέτα)καθορίζουντιςετικέτεςστονοριζόντιοάξονα(μετοx)καιστονκατακόρυφοάξονα(μετοy).

Page 10: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

ΓιαναδούμεγραφικάτηνκατανομήτωνμετρήσεωνστηνκλίμακατοRμαςδίνειτησυνάρτησηhist(histogram=ιστόγραμμα).Τηνκατανομήαυτή,μεπερισσότερηαριθμητικήλεπτομέρειααλλάχωρίςγραφικά,μπορούμεναδούμεμετησυνάρτησηstemπουπαράγειδιάγραμμαμίσχου‐φύλλων.

Γιατοσχετικόπλήθοςτωνεπιμέρουςκατηγοριώνσεκατηγορικάδεδομένα,έχουμετησυνάρτησηtable,πουείδαμεπαραπάνωότιμαςδίνειτονπίνακακατανομής,καθώςκαιτησυνάρτησηpie,πουμαςδίνειγραφικάτηνίδιαπληροφορίαμεκυκλικόδιάγραμμα(piechart).

Δοκιμάστετιςσυναρτήσειςαυτέςσταδικάσαςδεδομένα!ΠερίληψηδεδομένωνΜιαπολύχρήσιμησυνάρτησηγιαγρήγορηεπισκόπησητωνδεδομένωνμαςείναιηπερίληψη:> summary(alexh) Min. 1st Qu. Median Mean 3rd Qu. Max. 1.810 1.820 1.830 1.832 1.850 1.850 Τααποτελέσματατηςπερίληψηςπεριλαμβάνουντηνελάχιστη(Min.)καιμέγιστη(Max.)τιμή,τομέσοόρο(Mean),καθώςκαιτρειςακόμαδείκτες.Οπιοσημαντικόςείναιηδιάμεσος(Median),δηλαδήητιμήπουείναιμεγαλύτερηαπότιςμισέςμετρήσειςκαιμικρότερηαπότιςάλλεςμισές.Γιανατοκαταλάβουμεκαλύτερα,αςδούμετιςτιμέςμαςσεαύξουσασειρά:> sort(alexh) [1] 1.81 1.82 1.83 1.85 1.85 Ημικρότερητιμήείναι1.81(πρώτη)καιημεγαλύτερη1.85(τελευταία).Αφαιρώνταςδύοτιμέςαπόκάθεάκρημένειημεσαίαμέτρηση,πουείναι1.83.Αυτήείναιηδιάμεσος.

Ηελάχιστη,μέγιστη,μέση,καιδιάμεσοςτιμήυπολογίζονταιστοRαπευθείαςμετιςσυναρτήσειςmin, max, meanκαι median,αντίστοιχα.

Ανκόψουμετοκάθεμισόστημέσημπορούμεναβρούμετηδιάμεσοτουκάθεμισού,πουχωρίζουντοπρώτοτέταρτοκαιτοτελευταίοτέταρτοτωνδεδομένων.Τασημείααυτάονομάζονταιτεταρτημόρια:Τοπρώτοτεταρτημόριο(1stquartile)χωρίζειτοχαμηλότερο25%.Τοδεύτεροτεταρτημόριοείναιηδιάμεσοςκαιχωρίζειτο50%.Τοτρίτοτεταρτημόριο(3rdquartile)χωρίζειτουψηλότερο25%.ΑυτέςείναιοιεπιπλέοντιμέςπουμαςδίνειηπερίληψητουR.Βέβαιαγιατόσολίγεςτιμέςπουέχουμεεδώαυτόδενέχειπολύνόημα,είναιόμωςπάραπολύχρήσιμοσεμεταβλητέςμεδεκάδεςήεκατοντάδεςμετρήσεις.Ηπερίληψηεφαρμόζεταικαισεολόκληραπλαίσιαδεδομένων.Στηνπερίπτωσηαυτήμαςδίνειπληροφορίεςγιαόλεςτιςμεταβλητέςπουπεριλαμβάνονταιστοπλαίσιοδεδομένωνκαιπροσαρμόζεταιαυτόματασεκάθεμεταβλητήανείναικατηγορικήήποσοτική.Παράδειγμα:> summary(atoma) sex age F:1 Min. :21.00 M:1 1st Qu.:21.25 Median :21.50 Mean :21.50 3rd Qu.:21.75 Max. :22.00

Page 11: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

ΧρήσηεξωτερικώναρχείωνΤοRμπορείναδιαβάσειδεδομέναπουέχουμεαποθηκευμένασεαρχείαστοδίσκοτουυπολογιστήμας.ΜετοRμπορούμεεπίσηςνααποθηκεύσουμεδεδομένα,αποτελέσματαεπεξεργασίας,ήκαιτιςεντολέςκαισυναρτήσειςπουχρησιμοποιήσαμεγιατηνανάλυσήμας.ΓιαναμπορείναχρησιμοποιηθείκάποιοεξωτερικόαρχείοπρέπειπροηγουμένωςναυποδείξουμεστοRσεποιοφάκελοβρίσκονταιτααρχείαμας.ΗεπιλογήφακέλουγίνεταιμέσααπότονκατάλογοεπιλογώνFile→Changedir…(dir=directory,δηλαδήκατάλογοςαρχείων).ΜετηνεπιλογήαυτήτοRμαςεμφανίζειτογνωστόπαράθυροεπιλογήςφακέλουτωνwindows.Εντοπίζουμεκαιεπιλέγουμετηντοποθεσίαόπουβρίσκονταιτααρχείαμας.

Αφούεπιλέξουμετησωστήτοποθεσία,μπορούμεναφορτώσουμεέναπλαίσιοδεδομένωναπευθείαςαπότοδίσκομετησυνάρτησηread.table,αναθέτονταςτοπεριεχόμενοαπευθείαςσεμιαμεταβλητή.Π.χ.,γιαναχρησιμοποιήσουμετακατηγορικάδεδομένατου3ουκεφαλαίουτουβιβλίου,τααναθέτουμεστημεταβλητήch3ωςεξής:> read.table("chapter3_1.Rdata") -> ch31

Προσοχή,ναμηνξεχνάμετηντελίτσαμέσαστοόνοματηςσυνάρτησης,χωρίςκενά!Ησυνάρτησηstrμαςδείχνειτοαποτέλεσματηςανάθεσης:> str(ch31) 'data.frame': 264 obs. of 1 variable: $ education: Factor w/ 5 levels "Άλλο","Λύκειο",..: 5 5 5 5 5 5 5 5 5 5 ... Πρόκειταιγιαέναπλαίσιοδεδομένωνμεμιαμοναδικήκατηγορικήμεταβλητήμεόνομαeducationηοποίαπεριέχειδεδομέναπέντεκατηγοριών.Ταστοιχείατωνπρώτωνσειρώνανήκουνόλαστην5ηκατηγορία.Αργότεραθαδούμεπώςμπορούμενααποθηκεύσουμεδικάμαςδεδομένακαθώςκαιναχρησιμοποιήσουμεαρχείααναλύσεωνκαιεξωτερικάπακέτασυναρτήσεων. ΑθανάσιοςΠρωτόπαπαςΜάρτιος2012

Page 12: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

ΟδηγίεςχρήσηςτουR,μέρος3ο

Βιβλιοθήκες

ΤοRδιαθέτειπολλέςχρήσιμεςσυναρτήσειςχωρίςειδικήαναζήτηση,αυτόματα.Υπάρχουνόμωςπάραπολλέςδιαφορετικέςσυναρτήσεις,πουχρησιμοποιούνταιγιαδιαφορετικάείδη

αναλύσεων.Οιπερισσότερεςείναιοργανωμένεςσεεξωτερικά«πακέτα»συναρτήσεων,πουονομάζονται«βιβλιοθήκες».ΤαπακέτααυτάπρέπειναταεγκαταστήσουμεστονυπολογιστήμαςξεχωριστάαπότοίδιοτοR.Ηεγκατάστασηκατεβάζειαυτομάτωςτοπακέτοαπότο

διαδίκτυο,άραπρέπειπρώταναεξασφαλίσουμεότιησύνδεσήμαςείναιενεργή.Γιαναεγκαταστήσουμεέναπακέτο,π.χ.τοpsych(γιααναλύσειςπουχρησιμοποιούνταισυχνάστην

ψυχολογία),χρησιμοποιούμετηνκατάλληλησυνάρτησημέσααπότοR:

> install.packages("psych", depend=T) Τηνπρώτηφοράπουθαχρησιμοποιήσουμεαυτήτησυνάρτηση,τοRθαμαςρωτήσειαπόπούνακατεβάσειτοπακέτο.ΕπιλέγουμετηνΕλλάδαήάλληευρωπαϊκήχώρα,π.χ.Αυστρία.ΣτησυνέχειατοRκατεβάζεικαιεγκαθιστάό,τιείναιαπαραίτητογιατηλειτουργίατουπακέτου.

Ανθέλουμεναεγκαταστήσουμεπερισσότεραπακέταμονομιάς,χρησιμοποιούμεακολουθία:

> install.packages(c("e1071","nortest","Hmisc"), depend=T) ToRεγκαθιστάταπακέταμαζίμετυχόνπροαπαιτούμενα.Στοεξήςθαείναιδιαθέσιμαστον

υπολογιστήμαςανεξάρτητααπότοανείμαστεσυνδεδεμένοιστοδιαδίκτυοήόχι.

Γιαναχρησιμοποιήσουμεσυναρτήσειςαπότανέαπακέτα,πρέπειπρώτανα«φορτώσουμε»τηβιβλιοθήκηπουπεριλαμβάνειτοπακέτο,χρησιμοποιώνταςτησυνάρτησηlibrary.Έτσι,αν

έχουμεέναπλαίσιοδεδομένωνchκαιθέλουμεναχρησιμοποιήσουμετησυνάρτηση

describeπουπεριλαμβάνεταιστηβιβλιοθήκητουπακέτουpsych:

> library(psych)> describe(ch)

ΗενεργοποίησητηςβιβλιοθήκηςπρέπειναγίνεταικάθεφοράπουξεκινάμετοR.

Εναλλακτικά,ανθέλουμεναχρησιμοποιήσουμεσταγρήγορακάποιασυνάρτησηαπόένα

πακέτο,χωρίςπροηγουμένωςναφορτώσουμεολόκληρητηβιβλιοθήκη,μπορούμεναδώσουμετοόνοματηςβιβλιοθήκηςμαζίμετησυνάρτηση,μεδυοάνω‐κάτωτελείεςανάμεσα:

> psych::describe(ch)

Ημέθοδοςαυτήδενσυνιστάταιδιότιπρέπεικάθεφοράναξαναγράφουμεολόκληροτοόνοματηςβιβλιοθήκης.Είναιαπλούστερονατηφορτώσουμεμιαφοράμετησυνάρτησηlibrary.

Εννοείταιότισεκάθεπερίπτωσηπρέπειπροηγουμένωςναέχουμεεγκαταστήσειτοαντίστοιχοπακέτο,μετησυνάρτησηinstall.packages (προσοχήστηντελίτσα!).

Page 13: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

Δείκτεςπινάκων

Στο2ομέροςτωνοδηγιώνείδαμεότιτοRχρησιμοποιείδομέςπουονομάζονται«πλαίσιαδεδομένων»καιπεριέχουνμίαήπερισσότερεςμεταβλητές.Οιδομέςαυτέςέχουντοχαρακτηριστικόότιαποτελούνταιαπόσειρές(εγγραφές)καιστήλες(μεταβλητές).Π.χ.,οιπρώτεςσειρέςτουπίνακαύψουςτωνφοιτητώνείναιοιεξής: > read.table("classheight.Rdata")->ch > ch sex h 1 f 1.57 2 f 1.65 3 f 1.65 4 f 1.72 5 m 1.83 ... ΤοRμαςεπιτρέπειναχειριστούμεσειρές,στήλες,καιμεμονωμέναστοιχεία,χρησιμοποιώνταςένασύστημαδεικτώνμέσασεαγκύλες(τιςτετράγωνεςπαρενθέσεις:[]).Συγκεκριμένα,κάθεπίνακαςδύοδιαστάσεων(όπωςείναιτοπλαίσιοδεδομένων)ορίζεταιως[σειρές,στήλες].Μέσαστιςαγκύλεςγράφουμετησειρά(ήσειρές)πουθέλουμε,κόμμα,καιτηστήλη(ήστήλες)πουθέλουμε.Η1ησειράτουπίνακαγράφεται[1,]ενώη2ηστήλητουπίνακαγράφεται[,2]:> ch[1,] sex h 1 f 1.57 > ch[,2] [1] 1.57 1.65 1.65 1.72 1.83 1.60 1.62 1.85 1.87 1.83 1.79 1.57 ... Ανθέλουμετοστοιχείοτης4ηςσειράς,2ηςστήλης,τοεντοπίζουμεωςεξής: > ch[4,2] [1] 1.72 ΈναπολύχρήσιμοστοιχείοστοRείναιότιμπορούμεναεπιλέξουμεστοιχείαμεβάσηκάποιασυνθήκη.Π.χ.,μπορούμεναζητήσουμεόλεςτιςστήλεςαπότιςσειρέςτουπλαισίουchγιατιςοποίεςημεταβλητήhείναιμεγαλύτερητου1.85,ωςεξής:> ch[ch$h>1.85,] sex h 9 m 1.87 27 m 1.87 29 m 1.89 Προσέξτεότιησυνθήκηch$h>1.85τοποθετήθηκεπριναπότοκόμμα,άρακάνειεπιλογήσειρών.Μετάτοκόμμαδεντοποθετήθηκετίποτα,άραδενεπιλέγονταιστήλες,καιεννοείταιότιτιςζητάμεόλες.Μετονίδιοτρόποθαμπορούσαμεναζητήσουμετιςσειρέςστιςοποίεςτοφύλοείναιfκαιτούψοςείναιμεγαλύτεροτου1,70:

Page 14: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

> ch[ch$sex=="f" & ch$h>1.70,] sex h 4 f 1.72 11 f 1.79 25 f 1.75 Προσέξτεότιοέλεγχοςισότηταςγίνεταιμετοδιπλόσύμβολο==(ίσον),ενώοέλεγχοςανισότηταςμετομονόσύμβολο>(μεγαλύτερο).Ησύζευξητωνδύοελέγχωνγίνεταιμετοσύμβολο&(λογικό«και»).Ανθέλαμεδιάζευξη(δηλαδήήτοέναήτοάλλοήκαιταδύο)θαχρησιμοποιούσαμετοσύμβολο|(κατακόρυφηκάθετος,λογικό«ή»),π.χ.:> ch[ch$h>1.85 | ch$h<1.55,] sex h 9 m 1.87 16 f 1.51 27 m 1.87 29 m 1.89 Μπορούμε,φυσικάναεπιλέξουμεμόνομίαστήληαπότοαποτέλεσματηςσυνθήκης:> ch[ch$h>1.85 | ch$h<1.55,1] [1] m f m m Levels: f m > ch[ch$h>1.85 | ch$h<1.55,2] [1] 1.87 1.51 1.87 1.89

Στηνπερίπτωσηαυτήλαμβάνουμεωςαποτέλεσμαμιααπλήακολουθία.Τοτελευταίοθαμπορούσαμενατοπετύχουμεκαιεφαρμόζονταςτουςδείκτεςπάνωστηνίδιατημεταβλητή:> ch$h[ch$h>1.85 | ch$h<1.55] [1] 1.87 1.51 1.87 1.89

Εδώ,φυσικάδενχρησιμοποιούμετοκόμμαπρινκλείσουμετηναγκύλη,αφούμιαμεταβλητήείναιμονοδιάστατηκαιδενπεριέχειστήλες.ΗεπιλογήστοιχείωνμετοσύστημαδεικτώνείναιπάραπολύχρήσιμηκαιθατησυναντήσετεσεπολλέςπεριπτώσειςδουλεύονταςστοRκαιμελετώνταςταδιαθέσιμαπαραδείγματα.Κιένακολπάκι:Γιαναμηνπληκτρολογούμεξανάταίδια,ότανθέλουμεναεπαναλάβουμεμιαπροηγούμενησυνάρτησηστοχώροαλληλεπίδρασηςτουRπατάμεαπλώςτο«βελάκιπάνω»στοπληκτρολόγιο,όσεςφορέςχρειάζεται,ώστεναεπανέλθειστηνενεργήγραμμή.ΑρχείαεντολώνΑνέπρεπεκάθεφοράναπληκτρολογούμεεκνέουόλεςτιςσυναρτήσειςπουχρειαζόμαστε,ήχρήσητουRθαήτανπολύκουραστικήκαικαθόλουαποδοτική.Στηνπραγματικότητααυτόπουκάνουμεείναινααποθηκεύουμετιςεντολέςμαςσεένααρχείο,ώστεναμπορούμενατιςτροποποιήσουμεήνατιςεκτελέσουμεαυτούσιεςοποιαδήποτεάλληστιγμή.Τοαρχείοαυτόπεριλαμβάνειακριβώςτηναλληλουχίατωνσυναρτήσεωνπουχρησιμοποιούμε.Προαιρετικά,

Page 15: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

προσθέτουμεσχόλιακαιεπεξηγήσειςώστεναμπορέσουμεναθυμηθούμετιακριβώςκάναμεμετιςσυναρτήσειςαυτέςκαιγιαποιολόγο.Ουσιαστικά,δηλαδή,γράφουμεένα«πρόγραμμα»στη«γλώσσα»τουRγιαναεκτελείτιςαναλύσειςμας.ΣτηνορολογίατουRένατέτοιοπρόγραμμαονομάζεταιscript.Ένααρχείοεντολώνπουπροϋπάρχει(π.χ.τοαποθηκεύσαμεστοπαρελθόνήμαςτοέστειλεκάποιοςάλλος)μπορούμενατοφορτώσουμεστοRαπότονκύριοκατάλογοεπιλογών(το«μενού»)στηνκορυφήτηςοθόνης.HεπιλογήFile→Openscript…μαςανοίγειτογνωστόπαραθυράκιεπιλογήςαρχείωνγιαναφορτώσουμετοπρόγραμμάμας.

Έναπρόγραμμαανοίγειστοδικότουπαραθυράκι,μέσαστονευρύτεροχώροτουR,ώστεναβλέπουμεκαθαράτησειράτωνσυναρτήσεωνπουπεριέχει.Είναιανεξάρτητοαπότοχώροόπουπληκτρολογούμετιςσυναρτήσειςμαςκαιβλέπουμετααποτελέσματα.Γιαναχρησιμοποιήσουμεμιασυνάρτησηαπότοπρόγραμμαπουανοίξαμε,πρώτατην«επιλέγουμε»μετοποντίκιήμετοπληκτρολόγιο(Ctrl‐Shift‐βελάκιδεξιά/αριστερά).Εδώέχουμεεπιλέξειτησυνάρτησηυπολογισμούτουαθροίσματοςτηςακολουθίαςr3:

ΣτησυνέχειακρατάμεπατημένοτοπλήκτροControlκαιπατάμετοπλήκτροR.ΟσυνδυασμόςαυτόςονομάζεταιCtrl‐RκαιστοRσημαίνει«Run»(τρέξε),εκτελείδηλαδήό,τιείναιφωτισμένο,αντιγράφοντάςτοστοχώροαλληλεπίδρασηςμετοR.Στοπαραπάνωπαράδειγμαβλέπουμεότιμιασειράτουαρχείουαρχίζειμετοσύμβολο#(δίεση)καισυνεχίζει«Άθροισμασχετικώνσυχνοτήτων...».ΑυτήησειράδενείναιεντολήγιατοR,αλλάεπεξηγηματικόσχόλιογιατοναναγνώστη/χρήστητουαρχείου.Τοσύμβολο#υποδεικνύειστοRνααγνοήσειοτιδήποτεβρίσκεταιπιοδεξιάαπόαυτό.Τοχρησιμοποιούμεγιαναξεκινήσουμεμιασειράμεεπεξηγηματικάσχόλιαήγιαναπροσθέσουμεμιαεπεξήγησηστοτέλοςκάποιαςσυνάρτησης(σταδεξιάτης).Ναχρησιμοποιείτεόσοπερισσότεραεπεξηγηματικάσχόλιαμπορείτε,θαταβρείτεπολύχρήσιμαότανξαναχρειαστείτεέναπαλαιότεροαρχείοεντολώνστοR(ήσεοποιαδήποτεάλληγλώσσαπρογραμματισμού).Ανθέλουμενααποθηκεύσουμεμιασειράσυναρτήσεωνγιαμελλοντικήχρήση,ξεκινάμεένανέοπρόγραμμα,μετηνεπιλογήFile→Newscriptαπότονκύριοκατάλογοεπιλογών.Αυτό

Page 16: Οδηγίες χρήσης του R 1 - Topos Books › behavioralstats › R_Guide.pdf · αυτό χρησιμοποιήσαμε τη μεταβλητή με όνομα ypsos για

ανοίγειένακενόπαράθυρο,στοοποίοδακτυλογραφούμετιςσυναρτήσειςμας,ήτιςαντιγράφουμεαπότοχώροαλληλεπίδρασηςμεCopy‐Paste(μετοποντίκιήμεCtrl‐C,Ctrl‐V).Αποθηκεύουμετηδουλειάμας,ενώτοπαράθυροτουπρογράμματοςείναιενεργό,μεκλικεπάνωστηδισκετούλα,μεCtrl‐S,ήεπιλέγονταςFile→Saveαπότονκύριοκατάλογο.

Στησυνέχειατοαρχείοαυτόθαείναιδιαθέσιμονατοανοίξουμεκαινατοξαναχρησιμοποιήσουμεοποιαδήποτεστιγμή,αρκείναεπιλέξουμεπρώτατοσωστόφάκελο(File→Changedir…)καιστησυνέχειατοίδιοτοαρχείο(File→Openscript…).

Προσοχή!Δενπρέπειναμπερδεύουμετηναποθήκευσηκαιανάγνωσηπρογραμμάτων(script)μετηναποθήκευσηκαιανάγνωσηπινάκωνδεδομένων(datatable).Ταπρογράμματααποθηκεύονταικαιφορτώνονταιαπότονκύριοκατάλογο(File→)καιεμφανίζονταισεδικότουςπαράθυρομέσαστοR.Αντίθετα,ταδεδομένααποθηκεύονταικαιφορτώνονταιαπόσυναρτήσειςκαιδενεμφανίζονταιπουθενάπαράμόνοανταζητήσουμε,είτεδακτυλογραφώνταςτοόνομάτουςείτελ.χ.μετησυνάρτησηfix.

Έχουμεπροηγουμένωςσυναντήσειτησυνάρτησηread.tableπουφορτώνειέναπλαίσιοδεδομένωνκαιτοαναθέτεισεμιαμεταβλητή.Αντίστοιχα,μπορούμενααποθηκεύσουμεέναπλαίσιοδεδομένων,τοοποίοπεριέχειστοιχείαπουπληκτρολογήσαμεήαποτελέσματαυπολογισμών,μετησυνάρτησηwrite.table.Γιαπαράδειγμα,τοπλαίσιοδεδομένωναπότο2ομέροςτωνοδηγιών,μπορείναδημιουργηθείκαινααποθηκευτείωςεξής:> atoma<-data.frame(sex=c("M","F"),age=c(21,22)) > rownames(atoma)<-c("Γιάννης","Μαρία") > write.table(atoma,"atoma.Rdata") Τοπρώτοόρισματηςσυνάρτησηςwrite.tableείναιτοπλαίσιοδεδομένωνπουθέλουμενααποθηκεύσουμεκαιτοδεύτεροόρισμαείναιτοόνοματουαρχείουμετοοποίοθααποθηκευτείστοσκληρόδίσκομας.Στοεξής,αυτότοπλαίσιοδεδομένωνθαείναιδιαθέσιμοοποτεδήποτε,επιλέγονταςτονκατάλληλοφάκελοεργασίαςκαιχρησιμοποιώνταςτησυνάρτησηread.table("atoma.Rdata").Συνοψίζοντας,τααρχείαδεδομένωνπουδιανέμονται(π.χ.classheight.Rdata)ταδιαβάζουμεμέσααπότοχώροαλληλεπίδρασης,ήμέσααπόπρογράμματα,μετησυνάρτησηread.table.Ενώτααρχείαπρογραμμάτων(τασυνοδευτικάτωνκεφαλαίωντουβιβλίου,π.χ.chapter3.R)ταδιαβάζουμεαπότονκατάλογοεπιλογώνμεFile→Openscript… ΑθανάσιοςΠρωτόπαπαςΜάιος2012