ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Δρ. Π. Νικολαΐδου
Προγραμματίζοντας στη γλώσσα R Αντικείμενα Δεδομένων ( 2 ο Μάθημα )
Αντικείμενα Δεδομένων Τα αντικείµενα δεδοµένων είναι οι διάφορες µορφές στις οποίες µπορούν να ϕυλαχθούν δεδοµένα. Οι κύριες µορφές αντικειµένων δεδοµένων που υπάρχουν στην R είναι οι ακόλουθες: διάνυσµα (vector) πίνακας (matrix) πίνακας µεγαλύτερης διάστασης (array) λίστα (list) παράγοντας (factor) χρονοσειρές (time series) πλαίσιο δεδοµένων (data frame).
Βαθμωτά αντικείμενα Το πιο απλό είδος αντικειμένου στο R είναι τα βαθμωτά (scalar) αντικείμενα αριθμητικού τύπου (numeric mode), δηλαδή αντικείμενα με μία μόνο αριθμητική τιμή που ωστόσο θεωρούνται διανύσματα με μια συνιστώσα. Για παράδειγμα, > # Δημιουργία του βαθμωτού αντικειμένου x με τιμή 7 > x <- 7 > # Δημιουργία του βαθμωτού αντικειμένου y με τιμή 2 > y <- 2
Βαθμωτά αντικείμενα Εναλλακτικά μπορεί να χρησιμοποιηθεί η συνάρτηση assign για να εκχωρήσουμε στη μεταβλητή x την τιμή 7, ως assign("x", 7)). Αυτά τα αντικείμενα επιδέχονται αλγεβρικούς χειρισμούς > z <- x+y; z; x-y; x+y+z [1] 9 [1] 5 [1] 18
Βαθμωτά αντικείμενα Επίσης υπάρχουν βαθμωτά αντικείμενα λογικού (logical) τύπου, ή τύπου χαρακτήρα (character). Οι τιμές ενός λογικού αντικειμένου είναι TRUE, FALSE ή και NA (not available), και εκχωρούνταιάμεσα με T, F ή ΝΑ, αντίστοιχα. Οι τιμές TRUE, FALSE προκύπτουν συνήθως ως τιμές λογικών εκφράσεων. Η συνάρτηση mode μας δίνει τον τύπο κάθε αντικειμένου.
Διανύσματα (vectors) Το πιο απλό είδος αντικειµένου είναι το διάνυσµα. Το διάνυσµα είναι απλά ένα διατεταγµένο σύνολο τιµών σε σειρά Η εσωτερική διάταξη του διανύσµατος υποδεικνύει ότι υπάρχει ένας κατάλληλος τρόπος µε τον οποίο µπορούν να εξαχθούνµερικά ή όλα από τα στοιχεία του. Ο πιο εύκολος τρόπος για να προσδιοριστεί ένα διάνυσµα είναι µέσω της εντολής c. Για παράδειγµα, > v1 <- c(1,2,3,4) > v1 [1] 1 2 3 4
Διανύσματα (vectors) Εναλλακτικά μπορούμε να χρησιμοποιήσουμε τη συνάρτηση scan για να εισάγουμε μια προς μια τα στοιχεία του διανύσματος. Για να ορίσουμε το διάνυσμα v2 = (5, 6, 7) εκτελούμε την εντολή και στη συνέχεια δίνουμε τα στοιχεία του διανύσματος ένα προς ένα πατώντας μετά από κάθε εισαγωγή το πλήκτρο Enter. Όταν ζητηθεί το 4ο στοιχείο δεν εισάγουμε τίποτα αλλά πατάμε απλά ακόμη μια φορά το πλήκτρο Enter για να δηλωθεί το τέλος εισαγωγής των συνιστωσών του διανύσματος v2.
Διανύσματα (vectors) Τα βαθμωτά αντικείμενα, όπως προαναφέραμε, θεωρούνται διανύσματα με μια συνιστώσα > x <- 3; length(x) [1] 1 Με τα διανύσματα μπορούμε να κάνουμε πράξεις και να εφαρμόσουμε συναρτήσεις. Για παράδειγμα > v1/2; exp(v1); min(v1); max(v1); range(v2); length(v2); sum(v1); prod(v1); mean(v2); var(v1) [1] 0.5 1.0 1.5 2.0..
Διανύσματα (vectors) Όταν εκτελούμε πράξεις με διανύσματα αυτές γίνονται κατά συντεταγμένες. Αν δύο διανύσματα δεν είναι της ίδιας διάστασης τότε το διάνυσμα με τη μικρότερη διάσταση επαναλαμβάνει τα στοιχεία του όσες φορές χρειαστεί για να αποκτήσει τη διάσταση του διανύσματος με τη μεγαλύτερη διάσταση έτσι ώστε να είναι δυνατή η πραγματοποίηση πράξεων μεταξύ των διανυσμάτων. Με τη συνάρτηση c μπορούμε επίσης να ενώσουμε διανύσματα
Βασικά σύμβολα και εντολές Το σύµβολο δείκτη [, χρησιµοποιείται για να εξάγει υποσύνολα από ένα αντικείµενο. Για παράδειγμα, > 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" "x" "y" "z" > letters[3] [1] "c "
Διανύσματα (vectors) Ειδικά διανύσματα μπορούν να οριστούν και με άλλους πιο απλούς τρόπους. Για παράδειγμα,1:10 είναι το διάνυσμα (1, 2, 3, 4, 5, 6, 7, 8, 9,10), ενώ το 10:1 (ή rev(1:10)) είναι το διάνυσμα (10, 9, 8, 7, 6, 5, 4, 3, 2,1). Ο τελεστής : έχει προτεραιότητα όταν εκτελούνται πράξεις. Για παράδειγμα, > v3 <- 2*1:20 > v3 [1] 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40
Διαγραφή/Αντικατάσταση στοιχείου H i συνιστώσα ενός διανύσματος (ή λίστας) x διαγράφεται με x[-i] > z <- seq(1,20,2);z[-4] [1] 1 3 5 9 11 13 15 17 19 > y <- replace(z,3,55);y [1] 1 3 55 7 9 11 13 15 17 19
Για να κρατήσουμε μόνο τα στοιχεία ενός διανύσματος x που ικανοποιούν μια συνθήκη γράφουμε x[συνθήκη]. Για παράδειγμα, > z[z<=4 z>7] [1] 1 3 9 11 13 15 17 19 Τα διανύσματα μπορούν να έχουν συνιστώσες και αλφαριθμητικές σειρές χαρακτήρων. Για παράδειγμα > Οικογένεια <- c("γεώργιος", "Άννα", "Λάζαρος", "Ελένη") > Οικογένεια [1] "Γεώργιος" "Άννα" "Λάζαρος" "Ελένη" > Οικογένεια[2] [1] "Άννα"
Μπορούμε να ενώσουμε διανύσματα με αριθμητικές και αλφαριθμητικές συνιστώσες. Το αποτέλεσμα είναι ένα διάνυσμα τύπου χαρακτήρα > v5 <- c(οικογένεια,v1); v5 [1] "Γεώργιος" "Άννα" "Λάζαρος" "Ελένη" "1" "2" "3" "4" > mode(v5) [1] "character"
Βασικά σύμβολα και εντολές Υπάρχει επίσης η δυνατότητα να υπολογίσουμε την τιμή μιας λογικής έκφρασης. Για παράδειγμα, > 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
Συναρτήσεις Μια συνάρτηση καλείται συνήθως γράφοντας το όνοµα της ακολουθούµενο από µια λίστα ορισµάτων. Για παράδειγµα, >plot(fdeaths) Οι µαθηµατικές πράξεις είναι συναρτήσεις µε δύο ορίσµατα τα οποία έχουν ειδικό κάλεσµα.
Συναρτήσεις για σύνοψη δεδομένων sum(x) - Άθροισμα στοιχείων cumsum(x) - Προοδευτικό άθροισμα στοιχείων prod(x) - Γινόμενο στοιχείων cumprod(x) - Προοδευτικό γινόμενο στοιχείων max(x) - Μέγιστο στοιχείο min(x) - Ελάχιστο στοιχείο sort(x) - Διάταξη των στοιχείων range(x) - Διάνυσμα (min(x), max(x))
Συναρτήσεις για σύνοψη δεδομένων length(x) - Αριθμός στοιχείων mean(x) - Μέσος median(x) - Διάμεσος var(x) - Διακύμανση sd(x) - Τυπική απόκλιση skewness(x) - Ασυμμετρία (πακέτο moments) kurtosis(x) - Κύρτωση (πακέτο moments)
Συναρτήσεις για σύνοψη δεδομένων cor(x,y) - Συσχέτιση quantile(x) - Ποσοστιαία σημεία rank(x) - Βαθμοί IQR(x) - Ενδοτεταρτημοριακό εύρος cov(x,y) - Συνδιακύμανση summary(x) - Προεπιλεγμένα μέτρα mode(x) - Τύπος class(x) - Τάξη
Εισαγωγή αριθμητικών δεδομένων x = readline(prompt = Insert a number ); ή x = as.numeric(readline( Insert a number )) ;
Εξάσκηση (1) Γράψτε ένα script στο οποίο θα υπάρχουν τα παρακάτω βήματα δίπλα στην επίλυση του κάθε βήματος να εξηγείτε με σχόλια ποιο ερώτημα είναι 1. Γράψτε σε σχόλια «Εργαστήριο 2». 2. Να εισαχθεί σε μορφή string το ονοματπώνυμό σας και τον αριθμό μητρώου σας. 3. Ζητήστε με κατάλληλα μηνύματα και εισάγεται μέσω των μεταβλητών weight και height το βάρος και το ύψος σας. 4. Υπολογίστε το δείκτη μάζας σώματος (BMI) από τον τύπο κιλά/υψος 2 5. Εμφανίστε το αποτέλεσμα ως εξής. «Ο δείκτης μάζας σώματός σας είναι..»
Εξάσκηση (2) Να γραφεί πρόγραμμα που δημιουργεί μια ακολουθία αριθμών από το 20 μέχρι το 50 και να εισαχθεί σε διάνυσμα V και να βρεθεί 1. ο μέσος όρος 2. το άθροισμα 3. Το πλήθος (μέγεθος διανύσματος) Να δημιουργηθεί ένα άλλο διάνυσμα με 31 άρτιους ξεκινώντας από το -50 Να προστεθούν τα 2 διανύσματα Να βρεθεί το μεγαλύτερο και το μικρότερο στοιχείο του τελευταίου διανύσματος.