Professional Documents
Culture Documents
Εισαγωγή Στη Γλώσσα Προγραμματισμού r
Εισαγωγή Στη Γλώσσα Προγραμματισμού r
Προγραμματισμού R
Επιμέλεια:
Μέντωρ Academy
https://mentoracademy.gr
6940690779
ff
Το Μέντωρ Academy δημιουργήθηκε για να επικοινωνήσει την Επιστήμη της
Στατιστικής στον ευρύτερο επιστημονικό χώρο. Η επιστημονική ομάδα του Μέντωρ
Academy απαρτίζεται απο εξειδικευμένους επιστήμονες με πολυετή εμπειρία στην
ακαδημαϊκή έρευνα, στην εξατομικευμένη εκπαίδευση και στην αγορά εργασίας.
Σκοπός του Μεντώρ Academy είναι να υποστηρίζει ερευνητές, στελέχη
επιχειρήσεων, φοιτητές και κάθε επιστήμονα, ανεξαρτήτως εκπαιδευτικού
υποβάθρου, στην κατάκτηση των ακαδημαϊκών και επαγγελματικών στόχων τους
χρησιμοποιώντας τα πιο σύγχρονα εργαλεία της Στατιστικής Επιστήμης.
Το παρόν e-book παρέχεται δωρεάν και αφορά έναν Σύντομο – ενδεικτικό - Οδηγό για την
γλώσσα R. Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή των σημειώσεων, εξ
ολοκλήρου ή τμήματος αυτών, για εμπορικούς σκοπούς. Ερωτήματα που αφορούν την χρήση
τους για οποιονδήποτε σκοπό πρέπει να απευθύνονται προς τον συγγραφέα
(https://mentoracademy.gr/contact/).
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Πίνακας περιεχομένων
1
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Οδηγίες για την παρακολούθηση του υλικού υπάρχουν στην σελίδα στο FB:
2
Εισαγωγή στη Γλώσσα Προγραμματισμού R
1. Εισαγωγή στην R
Η R είναι ένα λογισμικό ανοικτού κώδικα, που χρησιμοποιεί μια γλώσσα
προγραμματισμού επηρεασμένη από την S1, η οποία χρησιμεύει για την υλοποίηση
απλών αλλά και προηγμένων στατιστικών μεθόδων και γραφικών.
Δημιουργήθηκε από τους Ross Ihaka και Robert Gentleman στο πανεπιστήμιο του
Auckland το 1991 στην Νέα Ζηλανδία και το όνομα βασίστηκε στο πρώτο κοινό γράμμα
των ονομάτων των συγγραφέων.
Πέρα από την αδιαμφισβήτητη συνεισφορά πολλών ερευνητών από όλο τον κόσμο,
η γλώσσα R δεν θα είχε τέτοια βελτίωση χωρίς την βοήθεια των 24 επιστημόνων που
απαρτίζουν την ομάδα R Development Core Team, η οποία δημιουργήθηκε το 1997
και είχε ως μέλος και τον John Chambers, βασικό δημιουργό της γλώσσας S.
1
Η γλώσσα S είναι μια στατιστική γλώσσα προγραμματισμού η οποία δημιουργήθηκε από τον John
Chambers και τους συνεργάτες του στα εργαστήρια AT&T Bell το 1976
2 Το CRAN (Comprehensive R Archive Network) όπως λένε και τα αρχικά του αποτελεί μια συλλογή από
ιστότοπους από όλον τον κόσμο οι οποίοι απαρτίζονται από πηγαίο κώδικά, εγχειρίδια και έγγραφα της
R καθώς και μια μεγάλη αποθήκη πακέτων που συνεχώς ανανεώνεται. Κάθε ιστότοπος ονομάζεται
πρότυπο (mirror) ενώ υπάρχουν δεκάδες πρότυπα (στην
3 Ελλάδα, από το Πανεπιστήμιο Κρήτης).
Εισαγωγή στη Γλώσσα Προγραμματισμού R
4
Εισαγωγή στη Γλώσσα Προγραμματισμού R
3. Αριθμητικοί τελεστές
Η R μπορεί να χρησιμοποιηθεί και ως αριθμομηχανή για την εκτέλεση απλών πράξεων
όπως φαίνεται στον παρακάτω πίνακα:
+ Πρόσθεση > 5 + 10
[1] 15
- Αφαίρεση > 5 – 10
[1] -5
Παρατήρηση 3.1
5
Εισαγωγή στη Γλώσσα Προγραμματισμού R
4. Τελεστές Εκχώρησης
Για να καταχωρήσουμε ένα αποτέλεσμα σε ένα αντικείμενο χρησιμοποιούμε τους
τελεστές εκχώρησης. Θα μιλήσουμε σε επόμενη ενότητα διεξοδικά για την έννοια του
αντικειμένου.
Παρατήρηση 4.1
1. Η R είναι ευαίσθητη στα κεφαλαία γράμματα ( case sensitive ), δηλαδή δεν είναι
το ίδιο να γράψουμε x και Χ.
2. Οι παραπάνω τελεστές είναι ισοδύναμοι με πολύ μικρές διαφορές που δεν θα
απασχολήσουν τον μέσο χρήστη, αρκεί να χρησιμοποιεί πρόσφατη έκδοση
της R. Παρόλα αυτά προτιμάμε να χρησιμοποιούμε τον τελεστή « <- » για
αριστερή εκχώρηση και τον τελεστή « -> » για δεξιά εκχώρηση του
αποτελέσματος.
3. Ένα αντικείμενο μπορούμε να το εμφανίσουμε και στα 2 μέρη ενός τελεστή
εκχώρησης, αρκεί να το έχουμε ορίσει πριν. Ας δούμε το επόμενο παράδειγμα:
> x <- 5
> x <- x + 5
>x
[1] 5
4. Στην R γράφουμε συνήθως μια εντολή ανά γραμμή. Βέβαια υπάρχει και η
επιλογή με το ερωτηματικό ; ανάμεσα σε κάθε εντολή να τοποθετήσουμε
παραπάνω από μία στην ίδια γραμμή.
6
Εισαγωγή στη Γλώσσα Προγραμματισμού R
5. Τελεστές Σύγκρισης
Πολλές φορές θέλουμε να εξετάσουμε εάν κάποιες εκφράσεις είναι αληθείς (TRUE) ή
ψευδής (FALSE). Αυτό γίνεται χάρη στους τελεστές σύγκρισής όπως φαίνεται στον
παρακάτω πίνακα:
Παρατήρηση 5.1
Στην R το TRUE έχει την τιμή 1 και το FALSE την τιμή 0. Αυτό μπορεί να δειχθεί και
με ένα απλό παράδειγμα:
> TRUE +4
[1] 5
> FALSE + 4
[1] 4
Αυτή η ιδιότητα έχει κάποιες πρακτικές εφαρμογές κυρίως στο κομμάτι του
προγραμματισμού.
7
Εισαγωγή στη Γλώσσα Προγραμματισμού R
6. Λογικοί τελεστές
Οι λογικοί τελεστές εφαρμόζονται πάνω σε λογικές εκφράσεις (ως αποτέλεσμα έχουν
TRUE ή FALSE) και επιστρέφουν λογικού τύπου δεδομένα (TRUE ή FALSE).
F F F F T T T T T T
F T F T T T F F F T
T F F T T F T F F T
T T T T F F F F F F
8
Εισαγωγή στη Γλώσσα Προγραμματισμού R
9
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Παρατήρηση 7.1.1
10
Εισαγωγή στη Γλώσσα Προγραμματισμού R
8. Τύποι Αντικειμένων
Η R όπως και κάθε στατιστικό πρόγραμμα χειρίζεται δεδομένα. Τα δεδομένα μπορεί
να αφορούν ανθρώπους, ζώα, υποκείμενα ή όπως γενικά τα ονομάζουμε
παρατηρήσεις ή πειραματικές μονάδες. Οι πληροφορίες τις οποίες συλλέγουμε από
τις πειραματικές μονάδες ονομάζονται μεταβλητές. Τις μεταβλητές αυτές τις καλούμε
αντικείμενα δεδομένων. Οι βασικοί τύποι αντικειμένων είναι:
11
Εισαγωγή στη Γλώσσα Προγραμματισμού R
> x <- 10
> y <- 5
> z <- x > y # Είναι το x μεγαλύτερο από το y?
[1] TRUE
> z <- x < y # Είναι το x μικρότερο από το y?
[1] FALSE
> is.logical(x) # Ελέγχουμε αν το αντικείμενο x είναι λογικό
[1] TRUE
➢ Χαρακτήρες ( Character )
Παρατήρηση 8.1
12
Εισαγωγή στη Γλώσσα Προγραμματισμού R
9. Δομές Αντικειμένων
Τα αντικείμενα ανάλογα με την δομή τους χωρίζονται σε διανύσματα, παράγοντες,
δισδιάστατους πίνακες, πολυδιάστατους πίνακες, πίνακες δεδομένων, λίστες και
συναρτήσεις.
9.1 Διανύσματα
Είναι ένα διάνυσμα ( vector ) είτε ένας μονοδιάστατος πίνακας που περιέχει αντικείμενα
του ίδιου τύπου. Μπορεί να αποτελείται από αριθμητικές, λογικές ή αλφαριθμητικές
τιμές (χαρακτήρες).
Αριθμητικά Διανύσματα
c( )
α:β
c(α:β)
length(x)
13
Εισαγωγή στη Γλώσσα Προγραμματισμού R
numeric(length) ή double(length)
as.numeric(x)
is.numeric(x)
sequence(nvec)
14
Εισαγωγή στη Γλώσσα Προγραμματισμού R
x[pos]
x[-pos]
Με το μείον μέσα στην αγκύλη επιστρέφουμε το > x <- c(1, 3, 5, 10, 20)
διάνυσμα x εκτός από την τιμή που βρίσκεται > x[-2]
στην θέση pos [1] 1 5 10 20
sign(x)
Επιστρέφει το πρόσημο των τιμών του > x <- c(1, -2, -3, 5, 10)
διανύσματος x > sign(x)
[1] 1 -1 -1 1 1
rev(x)
Επιστρέφει τις τιμές του διανύσματος σε > x <- c(1, -2, -3, 5, 10)
αντίστροφη σειρά > rev(x)
[1] 10 5 -3 -2 1
15
Εισαγωγή στη Γλώσσα Προγραμματισμού R
16
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Επιστρέφει την σειρά κατάταξης των τιμών ενός > x <- c(5,10,2,5,15)
διανύσματος x. Εάν στο διάνυσμα > rank(x)
επαναλαμβάνονται κάποιες τιμές δηλαδή [1] 2 4 1 5 3
έχουμε ισοπαλίες (ties) στην σειρά κατάταξης > x <- c(5,10,2,5,9)
τότε χρησιμοποιούμε το όρισμα ties.method στο > rank(x)
οποίο ορίζουμε πως θα τις χειριστεί. Έχουμε [1] 2.5 5.0 1.0 2.5 4.0
την δυνατότητα οι τιμές που επαναλαμβάνονται, > rank(x, ties.method = "first")
στην σειρά κατάταξης να προκύψουν είτε από [1] 2 5 1 3 4
τον μέσο όρο των σειρών κατάταξης τους > rank(x, ties.method = "random")
(ties.method = average) όπου είναι και η εξ [1] 3 5 1 2 4
ορισμού επιλογή (εάν δεν χρησιμοποιήσουμε το > rank(x, ties.method = "max")
εν λόγω όρισμα), είτε η πρώτη τιμή στην σειρά [1] 3 5 1 3 4
εμφάνισης να πάρει την χαμηλότερη τιμή > rank(x, ties.method = "min")
(ties.method = first ), είτε τυχαία (ties.method = [1] 2 5 1 2 4
random ), είτε επιστρέφοντας την μεγαλύτερη > x <- c(10,15,5,20,1, NA)
σειρά κατάταξης σε όλες τις παρατηρήσεις με > rank(x)
τις ίδιες τιμές (ties.method = max), είτε [1] 3 4 2 5 1 6
> rank(x, na.last=TRUE)
επιστρέφοντας την μικρότερη σειρά κατάταξης
[1] 3 4 2 5 1 6
σε όλες τις παρατηρήσεις με τις ίδιες τιμές
> rank(x, na.last=FALSE)
(ties.method = min). Επίσης έχουμε την
[1] 4 5 3 6 2 1
επιλογή, εάν υπάρχουν ελλείπουσες τιμές,
αυτές να μπουν είτε στην αρχή (na.last=FALSE)
είτε στο τέλος (na.last=TRUE) είτε να
απομακρυνθούν (na.last=NA), όπου είναι και η
εξ ορισμού επιλογή
which.max(x)
Επιστρέφει την θέση της μεγαλύτερης τιμής του > x <- c(5,10,15,1,20)
διανύσματος x > which.max(x)
[1] 5
which.min(x)
Επιστρέφει την θέση της μικρότερης τιμής του > x <- c(5,10,15,1,20)
διανύσματος x > which.min(x)
[1] 4
17
Εισαγωγή στη Γλώσσα Προγραμματισμού R
which(condition)
Επιστρέφει την θέση των τιμών εκείνων που > x <- c(5,10,15,1,20)
ικανοποιούν την συνθήκη condition > which(x>10)
[1] 3 5
[condition]
Μια αρκετά χρήσιμη ιδιότητα της αγκύλης όταν > x <- c(3,1,-4,10,-9)
τοποθετείται μετά την εντολή είναι όταν > rank(x)
επιθυμούμε να την εφαρμόσουμε μόνο για τις [1] 4 3 2 5 1
τιμές εκείνες που ικανοποιούν μια συγκεκριμένη > rank(x)[x>0]
συνθήκη. Υπό την λογική αυτή υπάρχει [1] 4 3 5
πληθώρα εφαρμογών σε προγραμματιστικά
προβλήματα.
names(x)
match(x, y, nomatch = )
Επιστρέφει την θέση στο διάνυσμα y των κοινών > x <- 1:5 ; y <- 3:7
στοιχείων με την σειρά εμφάνισης στο διάνυσμα > match(x,y)
x. Στο όρισμα nomatch ορίζουμε το σύμβολο που [1] NA NA 1 2 3
θέλουμε να επιστρέφει όταν δεν εντοπίζει κοινό > match(y,x)
στοιχείο. Εξ ορισμού, δηλαδή εάν δεν βάλουμε το [1] 3 4 5 NA NA
όρισμα, θα επιστρέφει το NA ( Not Available ) > match(x,y,nomatch = 0)
στην αντίστοιχη θέση. [1] 0 0 1 2 3
18
Εισαγωγή στη Γλώσσα Προγραμματισμού R
x%in%y
Κάνει ακριβώς την ίδια λειτουργία με την εντολή > x <- 1:4
match με την διαφορά ότι το αποτέλεσμα που > y <- 3:6
επιστρέφει δεν είναι η θέση των κοινών στοιχείων > x%in%y
αλλά ένα λογικό διάνυσμα, TRUE και FALSE [1] FALSE FALSE TRUE TRUE
αντίστοιχα. > is.element(x,y)
[1] FALSE FALSE TRUE TRUE
Ισοδύναμη είναι και η εντολή is.element(x,y)
intersect(x,y)
union(x,y)
setdiff(x,y)
setequal(vector1, vector2)
19
Εισαγωγή στη Γλώσσα Προγραμματισμού R
unique(x)
duplicated(x)
which.duplicated(x)
20
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Διανύσματα Χαρακτήρων
c()
character(length)
as.character(x)
format(x,digits)
noquote(x)
nchar(x)
21
Εισαγωγή στη Γλώσσα Προγραμματισμού R
toupper(x)
tolower(x)
22
Εισαγωγή στη Γλώσσα Προγραμματισμού R
grep("pattern", x, value=)
sub(pattern, replacement, x)
gsub(pattern, replacement, x)
23
Εισαγωγή στη Γλώσσα Προγραμματισμού R
charmatch(char,x,nomatch)
Λογικά Διανύσματα
logical(length)
is.logical(x)
as.logical(x)
24
Εισαγωγή στη Γλώσσα Προγραμματισμού R
9.2 Παράγοντες
Με τον όρο παράγοντες εννοούμε τις ποιοτικές μεταβλητές.
ordered(x, levels=c() )
25
Εισαγωγή στη Γλώσσα Προγραμματισμού R
is.factor(x)
as.factor(x)
levels(factor(x))
nlevels(factor(x))
split(x,y)
$`2`
[1] 6 7 8 9 10
26
Εισαγωγή στη Γλώσσα Προγραμματισμού R
x[i, j]: Επιστρέφει το στοιχείο του πίνακα x το οποίο βρίσκεται στην γραμμή i και στην
στήλη j.
x[i, ]: Επιστρέφει όλα τα στοιχεία του πίνακα x που βρίσκονται στην i γραμμή.
x[ ,j]: Επιστρέφει όλα τα στοιχεία του πίνακα x που βρίσκονται στην j στήλη.
27
Εισαγωγή στη Γλώσσα Προγραμματισμού R
colMeans(x,na.rm): Επιστρέφει τον μέσο όρο των κάθε στήλης του πίνακα x.
Παρομοίως με την προηγούμενη εντολή δουλεύει και εδώ το όρισμα na.rm
rowMeans(x,na.rm): Επιστρέφει τον μέσο όρο των κάθε γραμμής του πίνακα x.
Παρομοίως με την προηγούμενη εντολή δουλεύει και εδώ το όρισμα na.rm
scale(x, center = TRUE, scale = TRUE): Υπολογίζει συνολικά τον μέσο και την τυπική
απόκλιση και στην συνέχεια εφαρμόζει σε κάθε στοιχείο τυποποίηση. Πρακτικά
εφαρμόζει την εξής διαδικασία: (x - mean(x)) / sd(x) . Στην περίπτωση όπου επιλέξουμε
scale = FALSE δεν διαιρεί με την τυπική απόκλιση.
Εφαρμογή:
28
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Τελεστής Περιγραφή
29
Εισαγωγή στη Γλώσσα Προγραμματισμού R
30
Εισαγωγή στη Γλώσσα Προγραμματισμού R
31
Εισαγωγή στη Γλώσσα Προγραμματισμού R
9.6 Λίστες
Οι λίστες είναι αντικείμενα δεδομένων που μπορούν να αποτελούνται από στοιχεία
διαφορετικής δομής.
[[ ]] : Όπως με το δολάριο ($) που έχουμε ήδη δει έτσι και με την διπλή αγκύλη
μπορούμε να έχουμε πρόσβαση στα στοιχεία μιας λίστας.
unlist(list): Επιστρέφει ένα διάνυσμα το οποίο περιέχει ατομικά όλα τα στοιχεία που
περιέχει η λίστα list.
32
Εισαγωγή στη Γλώσσα Προγραμματισμού R
9.7 Συναρτήσεις
Μπορούμε να δούμε έτοιμο τον κώδικα μιας συνάρτησης απλά πληκτρολογώντας το
όνομα της στην κονσόλα.
Για να είμαστε σε θέση όμως να κατασκευάσουμε τις δικές μας συναρτήσεις πρέπει να
γνωρίζουμε τις δομές ελέγχου (control structures) που διαθέτει η R. Θα κάνουμε μια
απλή αναφορά στις διάφορες δομές ελέγχου καθώς και μια σύντομη περιγραφή τους.
➢ If
if (condition) { if (condition) {
Για την συνθήκη που θα είναι
expression expression αληθής εκτελεί την
} else { } else if (condition) { αντίστοιχη ακολουθία
εντολών αλλιώς εκτελεί την
cons.expression cons.expression τελευταία ακολουθία
} } else { εντολών.
alt.expression
}
➢ ifelse
ifelse(test,action.if.true, action.if.else) Εάν η συνθήκη test είναι αληθής τότε
επιστρέφει το αποτέλεσμα
action.if.true αλλιώς το action.if.else
➢ for
for(index in seq) { Για έναν αριθμό επαναλήψεων ( που
καθορίζεται στο seq) εκτελεί κάποιες
εντολές.
33
Εισαγωγή στη Γλώσσα Προγραμματισμού R
commands
}
➢ while
while(condition) { Εκτελεί κάποιες εντολές όσο η
συνθήκη condition είναι αληθής.
commands
}
➢ repeat
repeat
{ Εκτελεί κάποιες εντολές μέχρις ότου η
συνθήκη condition γίνει ψευδής και
Commands τερματίσει ο βρόγχος.
If(condition)
Break
}
➢ next
for(index in seq) {
Όταν η συνθήκη είναι αληθής
if (condition) { προσπερνάει τις συγκεκριμένες
next επαναλήψεις ( αντί να τερματίσει τον
βρόγχο).
}
}
Βέβαια υπάρχουν συναρτήσεις που είναι ενσωματωμένες στην R και διευκολύνουν τον
χειρισμό των δεδομένων κάνοντας έτσι τον προγραμματισμό ευκολότερο. Αυτές
ανήκουν στην οικογένεια των συναρτήσεων apply και είναι οι εξής:
34
Εισαγωγή στη Γλώσσα Προγραμματισμού R
35
Εισαγωγή στη Γλώσσα Προγραμματισμού R
36
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Για να δούμε όλα τα διαθέσιμα πακέτα που υπάρχουν πληκτρολογούμε την εντολή
new.packages().
Για να ενημερώσουμε τα πακέτα, που έχουμε ήδη φορτώσει στον υπολογιστή μας,
στην πιο πρόσφατη διαθέσιμη έκδοση χρησιμοποιούμε την εντολή
update.packages().
Για να φορτώσουμε ένα πακέτο στον υπολογιστή μας, έτσι ώστε να χρησιμοποιήσουμε
κάποια από τις διαθέσιμες λειτουργίες του, πληκτρολογούμε την εντολή
library(“όνομα του πακέτου”).
Για να δούμε όλα τα πακέτα που έχουμε φορτώσει στον υπολογιστή μας και την
περιγραφή τους πληκτρολογούμε την εντολή library().
37
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Για όσους εργάζονται στο R-Studio αρκεί απλά να κατευθυνθούν στο File – New
File – R script. Θα ανοίξει ένα νέο έγγραφο κειμένου στο πάνω αριστερό παράθυρο
όπου εκεί ο χρήστης θα μπορεί να γράφει τις εντολές και έπειτα να τις τρέχει πατώντας
το εικονίδιο Run. Στο ίδιο menu λοιπόν, υπάρχει και η επιλογή να αποθηκεύσουμε
αυτά τα έγγραφα κειμένου οπουδήποτε στον υπολογιστή μας. Βέβαια υπάρχουν και
διάφορες εντολές αποθήκευσης αντικειμένων στην R.
38
Εισαγωγή στη Γλώσσα Προγραμματισμού R
39
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Όπως αναφέραμε παραπάνω στο όρισμα sep ορίζουμε τον τρόπο με τον οποίο
διαχωρίζονται τα δεδομένα μεταξύ τους. Αυτό δεν χρειάζεται απαραίτητα στην
περίπτωση δεδομένων που διαχωρίζονται με κόμμα (comma separated values) διότι
υπάρχει η εντολή read.csv(). Επίσης για δεδομένα τα οποία διαχωρίζονται μεταξύ
τους με στηλοθέτες (tab delimited values) υπάρχει η εντολή read.delim(). Τέλος με την
εντολή read.fwf(file, widths, header, sep, skip, row.names, col.names, n)
μπορούμε να ανακτήσουμε δεδομένα δηλώνοντας στο όρισμα width το πλάτος το
οποίο διαχωρίζεται κάθε στήλη του πίνακα.
Εάν έχουμε κάποιο αρχείο Excel (.xls) το μετατρέπουμε σε αρχείο csv (comma
separated values), όπου αυτό γίνεται εύκολα από το μενού File – Save as - … και
έπειτα το ανακτούμε με την εντολή read.csv(). Εκτός βέβαια αυτής της διαδικασίας
έχουμε την επιλογή μέσω της βιβλιοθήκης gdata να ανακτήσουμε απευθείας ένα
αρχείο Excel.
> install.packages("gdata")
> library(“gdata”)
> help(“gdata”)
> mydata = read.xls("mydata.xls")
> install.packages(“foreign”)
> library (“foreign”)
> help(“foreign”)
40
Εισαγωγή στη Γλώσσα Προγραμματισμού R
SPSS read.spss()
STATA read.dta()
SAS read.xport()
MINITAB read.mtb()
Οι εντολές menu και select.list είναι πολύ χρήσιμες για την κατασκευή
ερωτηματολογίων και στην περίπτωση όπου μέσα σε ένα πρόγραμμα θέλουμε να
δώσουμε στην χρήστη την δυνατότητα να επιλέγει διαφορετική ομάδα εντολών κάθε
φορά, ανάλογα τις ανάγκες του. Η διαφορά τους είναι ότι με την εντολή menu
μπορούμε να δώσουμε μόνο μια απάντηση ενώ με την εντολή select.list δίνεται η
δυνατότητα πολλαπλών επιλογών. Επιπρόσθετα στην εντολή menu
πληκτρολογώντας ο χρήστης την τιμή 0 το πρόγραμμα τερματίζεται.
Εφαρμογή 1
41
Εισαγωγή στη Γλώσσα Προγραμματισμού R
> plot(x)
Ποιος είναι ο τύπος των δεδομένων?
1: Ποσοτικά
2: Ποιοτικά
Selection: 1
Εφαρμογή 2
1: Έμφραγμα Μυοκαρδίου
2: Στηθάγχη
3: Καρδιακή Ανεπάρκεια
4: Μυοκαρδιοπάθεια
5: Υπέρταση
42
Εισαγωγή στη Γλώσσα Προγραμματισμού R
> summary(data) # Επιστρέφει την ελάχιστη και μέγιστη τιμή, τον μέσο όρο,
την διάμεσο, καθώς και το 1ο και 3ο τεταρτημόριο.
43
Εισαγωγή στη Γλώσσα Προγραμματισμού R
> colMeans(x) # Επιστρέφει τον μέσο όρο για κάθε στήλη του πλαισίου
δεδομένων x
> rowMeans(x) # Επιστρέφει τον μέσο όρο για κάθε γραμμή του πλαισίου
δεδομένων x
Εκτός από τα βασικά περιγραφικά μέτρα που παρέχει η γλώσσα μέσω του
ενσωματωμένου της πακέτου base και περιγράψαμε παραπάνω μπορούμε να
χρησιμοποιήσουμε και άλλα πακέτα αφού τα εγκαταστήσουμε στον υπολογιστή μας.
Τα πακέτα αυτά εκτός από τα βασικά περιγραφικά μέτρα μας παρέχουν κάποια ακόμη
καθώς και χρήσιμες λειτουργίες για καλύτερη διαχείριση τους.
> install.packages(“psych”)
> library(“psych”)
> install.packages("Hmisc")
> library("Hmisc")
44
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Η εντολή describe(mydata) επιστρέφει τον αριθμό του δείγματος, τον αριθμό των
ελλειπουσών τιμών, την μέση τιμή, τα 5th, 10th,25th, 50th,75th,9th, 95th ποσοστημόρια, τις
5 πρώτες και τις 5 τελευταίες τιμές του δείγματος μας.
> install.packages("pastecs")
> library("pastecs")
Ο πίνακας συνάφειας διπλής εισόδου για τις συχνότητες και τις σχετικές συχνότητες
κάθε κελιού από 2 ποιοτικές μεταβλητές δίνεται από την εντολή
table(variable1,variable2) και prop.table(table(variable1,variable2)) αντίστοιχα.
45
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Αυτά λοιπόν ήταν τα προθέματα τα οποία τοποθετούμε μπροστά από τις παρακάτω
κατανομές:
46
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Υπεργεωμετρική hyper m, n, k
47
Εισαγωγή στη Γλώσσα Προγραμματισμού R
16.1. Εφαρμογές
> runif(100,min=1,max=10)
2. Κατα μέσο όρο συμβαίνουν 5 ατυχήματα ημερησίως στην Εθνική Οδό Αθηνών -
Λαμίας. Να υπολογιστεί η πιθανότητα να συμβούν λιγότερα από 2 ατυχήματα
3. Έστω ότι θέλουμε να βρούμε το 40% ποσοστίαιο σημείο της Εκθετικής κατανομής
με παράμετρο λ = 1/5 . Δηλαδή ψαχνουμε το x εκείνο για το οποίο P(X<=x) = 0.40
4. Μια κλινική διαθέτει 10 κρεβάτια ημερησίως για έκτακτα περιστατικά. Ποια είναι η
πιθανότητα κάποια ημέρα να εμφανιστούν ακριβώς 10 έκτακτα περιστατικά και ποια η
πιθανότητα περισσότερα από 20 έκτακτα περιστατικά.
5. Έστω ότι τα επίπεδα της χοληστερόλης ενός πληθυσμού ακολουθούν την κανονική
κατανομή με μέσο 210 mg/1dl και τυπική απόκλιση 30mg/1dl. Ποια είναι η πιθανότητα
ένα άτομο που επιλέγεται τυχαία από τον πληθυσμό αυτόν να έχει επίπεδο
χοληστερόλης μικρότερο από 150mg/1dl.
6. Τιμή της σ.π.π της κατανομής Student με 5 βαθμούς ελευθερίας στο σημείο 3
> dt(3,5)
48
Εισαγωγή στη Γλώσσα Προγραμματισμού R
49
Εισαγωγή στη Γλώσσα Προγραμματισμού R
μαζί μας.
πραγματικά δεδομένα!
50
Εισαγωγή στη Γλώσσα Προγραμματισμού R
Hothorn, T. & Everitt B. (2010). A handbook of statistical analyses using R, 2nd Edition.
USA: Chapman & Hall/CRC
Michael J. Crawley (2013). The R Book, 2nd Edition. USA: John Wiley & Sons Inc.
Verzani, J. (2005). Using R for introductory statistics. USA: Chapman & Hall/CRC
Verzani, J. (2011). Getting Started with RStudio. USA: O’Reilly Media Inc.
51