R

Εισαγωγη στην R

Εισαγωγη

Άννα Μοσχά
Κέντρο Η/Υ, Ε.Μ.Π.

Περιεχομενα

  1. Τι είναι Στατιστική
  2. Βασικές έννοιες Στατιστικής
  3. Κλάδοι Στατιστικής
  4. Τι είναι η R - Ιστορικά στοιχεία
  5. Τι είναι η R - Πληροφορίες
  6. Εγκατάσταση της R
  7. Βοήθεια για την R
  8. Το RStudio
  9. Το περιβάλλον του RStudio
  10. Αριθμητικοί Tελεστές στην R
  11. Παρατηρήσεις - Ειδικές περιπτώσεις
  12. Τελεστές Εκχώρησης της R
  13. Μεταβλητές
  14. Τελεστές Σύγκρισης της R
  15. Τελεστές Λογικής της R
  16. Λοιποί Τελεστές της R
  17. Βασικές Αριθμητικές Συναρτήσεις της R
  18. Working directory
  19. Data Files
  20. History
  21. Παράδειγμα δεσμευμένου ονόματος
  22. Πακέτα
  23. Βασικοί Τύποι Αντικειμένων
  24. Συναρτήσεις για τον τύπο αντικειμένων

Τι είναι Στατιστική (1)

“Statistics are like bikinis. What they reveal is suggestive, but what they conceal is vital”

1951, Aaron Levenstein (οικονομολόγος και καθηγητής στο Baruch College, Νέας Υόρκης)

Τι είναι Στατιστική (2)

  • Η Στατιστική προσπαθεί να ερμηνεύσει φαινόμενα του πραγματικού κόσμου που εμπεριέχουν μεταβλητότητα και αβεβαιότητα.
  • Στατιστική είναι η επιστήμη που ασχολείται με τη συλλογή, παρουσίαση και εν συνεχεία εξαγωγή συμπερασμάτων παρατηρήσεων που υπόκεινται σε τυχαίες μεταβολές.
  • Στατιστική είναι η επιστήμη που μετατρέπει:
  • δεδομενα --> πληροφορια --> γνωση

Βασικές έννοιες Στατιστικής(1)

  • Πληθυσμός

    Tο σύνολο των υπό μελέτη μονάδων (αντικειμένων, ανθρώπων κλπ.) για το οποίο αναζητούνται πληροφορίες

  • Δείγμα

    Ένα υποσύνολο του πληθυσμού

  • Μεταβλητή

    Ένα χαρακτηριστικό - ιδιότητα του πληθυσμού που μελετάται το οποίο μεταβάλεται (π.χ. το βάρος ενός υλικού, η φύση του υλικού). Συμβολίζεται με κεφαλαία γράμματα Χ,Υ κ.ο.κ.

Βασικές έννοιες Στατιστικής (2)

  • ΔΕΔΟΜΕΝΑ – ΠΑΡΑΤΗΡΗΣΕΙΣ

    Οι τιμές είτε αριθμητικές είτε συμβολικές που παίρνουν οι μεταβλητές (π.χ. 6 kgr, πλαστικό)

  • Στατιστικό

    Mία αριθμητική συνάρτηση των δεδομένων του δείγματος που χρησιμοποιείται για να εκτιμήσει την άγνωστη παράμετρο του πληθυσμού (π.χ. ο μέσος χρόνος ζωής ενός εξαρτήματος μηχανής ενός συγκεκριμένου δείγματος)

Κλάδοι Στατιστικής

  • Περιγραφική Στατιστική

    Κλάδος της Στατιστικής που ασχολείται με την οργάνωση, παρουσίαση και περιγραφή αριθμητικών δεδομένων

  • Επαγωγική Στατιστική

    Κλάδος της Στατιστικής που ασχολείται με την εξαγωγή συμπερασμάτων για ολόκληρους πληθυσμούς με βάση τα δεδομένα ενός δείγματος

Τι είναι η R - Ιστορικά στοιχεία

  • Η R είναι μία γλώσσα προγραμματισμού και ένα περιβάλλον για στατιστικούς υπολογισμούς και γραφικά.
  • Είναι ελεύθερο λογισμικό ανοιχτού κώδικα.
  • Η R γράφτηκε από τους στατιστικούς του τμήματος Στατιστικής του Πανεπιστημίου του Auckland, Ross Ihaka και Robert Gentleman (γνωστοί ως R & R) και στην αρχική τους δημοσίευση το 1996 όρισαν την R ως μια γλώσσα προγραμματισμού για στατιστικούς υπολογισμούς.
  • Είναι μια διαφορετική υλοποίηση της S γλώσσας προγραμματισμού που αναπτύχθηκε από τον John Chambers και άλλους στα Bell Labs το 1976.

Τι είναι η R - Πληροφορίες (1)

  • Πληροφορίες για την R και χρήσιμο υλικό στην ιστοσελίδα του http://www.r-project.org/.
  • Υποστηρίζει πολλές πλατφόρμες και λειτουργικά όπως Linux, Mac OS και Windows.
  • Το "βασικό" σύστημα της R μπορεί να το κατεβάσει κανείς από το κεντρικό αποθετήριο βιβλιοθηκών της R που ονομάζεται CRAN (-Comprehensive R Archive Network).
  • Είναι πολύ εύκολα επεκτάσιμο μέσω "πακέτων" (πάνω από 13000).

Τι είναι η R - Πληροφορίες (2)

  • Kάθε επιστημονικό πεδίο έχει την δυνατότητα να προσφέρει εξειδικευμένες μεθόδους στο CRAN, επεκτείνοντας έτσι τις δυνατότητες της.
  • Για την επίτευξη στατιστικής ανάλυσης με το R είναι απαραίτητη η συγγραφή κώδικα.

Εγκατάσταση της R

  • Πληροφορίες : http://cran.cc.uoc.gr/mirrors/CRAN/.
  • Παράδειγμα - Εγκατάσταση της τελευταίας έκδοσης της R σε Ubuntu 12.04:
sudo add-apt-repository ppa:marutter/rrutter 
sudo apt-get update 
sudo apt-get install r-base r-base-dev

Βοήθεια για την R (1)

  • Ηλεκτρονικές λίστες: http://www.r-project.org/mail.html
    • R-announce : λίστα σημαντικών ανακοινώσεων σχετικά με την R και την διαθεσιμότητα νέου κώδικα.
    • R-packages : λίστα ανακοινώσεων για την διαθεσιμότητα νέων ή βελτιωμένων πακέτα.
    • R-help : η κύρια λίστα για συζήτηση με θέμα προβλήματα και λύσεις χρησιμοποιώντας την R
    • R-package-devel : λίστα για όσους θέλουν βοήθεια για ανάπτυξη πακέτου στην R
    • R-devel : λίστα για όσους συμμετέχουν ενεργά στην ανάπτυξη της R
    • Specialized Interest Groups-SIG : λίστες για συγκεκριμένα θέματα όπως π.χ. R-SIG-Mac

Βοήθεια για την R (2)

RStudio

  • Το RStudio είναι μία δυνατή και παραγωγική διεπαφή χρήστη για την R.
  • Γραφικό περιβάλλον ανάπτυξης (IDE) με αυξημένες δυνατότητες: επεξεργασίας, ανάπτυξης, version-control, I/O.
  • Επιτρέπει στον χρήστη να τρέξει R σ' ένα πιο user-friendly περιβάλλον.

RStudio

Το περιβάλλον του RStudio (1)

RStudio

Το περιβάλλον του RStudio (2)

  • Console - βασική κονσόλα συγγραφής κώδικα (όμοια με το περιβάλλον της R)
  • Source editor - επεξεργαστής συγγραφής κώδικα (script αρχεία με κατάληξη .r )
    (Source on Save = Run on Save)
  • Environment - καταγραφή και πληροφορίες για τα αντικείμενα που έχουν δημιουργηθεί
  • History - καταγραφή των προηγούμενων εντολών που έχουν χρησιμοποιηθεί σε προγενέστερο χρόνο

Το περιβάλλον του RStudio (3)

  • Files - διαχείρηση αρχείων, ορισμός working directory
  • Plots - εμφάνιση γραφικών, διαχείριση γραφικών
  • Packages - πακέτα του R, διαχείριση πακέτων
  • Help - ενσωματωμένη βοήθεια για το R
  • Viewer - μπορεί να χρησιμοποιηθεί για να δει κανείς τοπικά web περιεχόμενο(π.χ. web γραφικά)

Αριθμητικοί Τελεστές στην R (1)

  • + : Πρόσθεση
    > 7+3
    [1] 10
  • - : Αφαίρεση
    > 7-3
    [1] 4
  • * : Πολλαπλασιασμός
    > 7*3
    [1] 21
  • / : Διαίρεση
    > 7/3
    [1] 2.333333

Αριθμητικοί Τελεστές στην R (2)

  • ^ : Ύψωση σε δύναμη
    > 2^3
    [1] 8
  • %/% : Ακέραια Διαίρεση
    > 7%/%3
    [1] 2
  • %% : Υπόλοιπο Διαίρεσης
    > 7%%3
    [1] 1

Παρατηρήσεις - Ειδικές περιπτώσεις

  • # : Παράβλεψη από την R, ακολουθούν σχόλια
  • Inf : άπειρο
    > 7/0 #διαίρεση με το 0
    [1] Inf
    > 1/Inf
    [1] 0
    > exp(-Inf)
    [1] 0
  • NaN : Not a Νumber, δηλώνει ότι η πράξη δεν μπορεί να γίνει
    > 0/0
    [1] NaN
    > log(-3)
    [1] NaN
    Warning message:
    In log(-3) : NaNs produced
  • NA : Not Αvailable, δηλώνει missing value

Τελεστές Εκχώρησης

  • '<-' (και το '=') : Εκχωρεί το αποτέλεσμα στο αριστερό μέλος της σχέσης
    > x<-3
    > x
    [1] 3
    > x=4
    > x
    [1] 4 
    > msg<-"hello"
    > msg
    [1] "hello"
  • '->' : Εκχωρεί το αποτέλεσμα στο δεξί μέλος της σχέσης
    > 7->y
    > y
    [1] 7 
  • (Φαίνονται οι μεταβλητές στο Environment)

Μεταβλητές

  • Οι μεταβλητές είναι case sensitive δηλαδή η μεταβλητή a είναι διαφορετική από την A
  • Οι μεταβλητές δεν μπορούν να αρχίζουν από νούμερο (π.χ. 1x) ή σύμβολο (π.χ. %x)
  • Οι μεταβλητές δεν μπορούν να περιέχουν κενό π.χ. θα πρέπει να χρησιμοποιηθεί το όνομα back.pay και όχι back pay με κενό ανάμεσα στις λέξεις
  • rm(x,y) : απαλείφει τις μεταβλητές x και y που δημιουργήθηκαν προηγουμένως
    > rm(x,y)
  • (Σβήνονται από το Environment)

Τελεστές Σύγκρισης της R (1)

Δημιουργώ ξανά τις μεταβλητές x,y
> x<-4 ; y<-7 # με το ; μπορώ να γράψω παραπάνω από μία εντολές σε μία σειρά 

  • '<' : Μικρότερο από
    > x<y
    [1] TRUE
    
  • '>' : Μεγαλύτερο από
    > x>y
    [1] FALSE
    
  • '<=' : Μικρότερο από ή ίσο
    > x<=4
    [1] TRUE 
    

Τελεστές Σύγκρισης της R (2)

  • '>=' : Μεγαλύτερο από ή ίσο
    > x>=4
    [1] TRUE
    
  • '==' : Ίσο με
    > x==3
    [1] FALSE
    
  • (Παρατηρήστε ότι το 'x==3' ελέγχει αν η μεταβλητή x είναι ίση με το 3 ενώ το 'x=3' εκχωρεί στην μεταβλητή x την τιμή 3)
  • != όχι ίσο με
    > x!=4
    [1] FALSE
    

Τελεστές Λογικής της R

  • '&' : και
    > (x<4)&(y>4)
    [1] FALSE    
    
  • '|' : ή
    > (x<4)|(y>4)
    [1] TRUE 
    
  • '!' : όχι
    > !(x<y)
    [1] FALSE
    

Λοιποί Τελεστές της R

  • '~' : model formulae
  • '$' : list indexing (the ‘element name’ operator)
  • ':' : δημιουργία ακολουθίας
    > 1:20
    [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
    
  • Οι εφαρμογές αυτών των τελεστών θα περιγραφούν αναλυτικά στη συνέχεια.

Βασικές Αριθμητικές Συναρτήσεις της R (1)

  • sqrt() : τετραγωνική ρίζα
    > sqrt(25)
    [1] 5
    > ?sqrt()
  • Με ? και το όνομα της συνάρτησης παίρνουμε αναλυτικά πληροφορίες για την συνάρτηση στην καρτέλα Help του RStudio ή στην κονσόλα της R όταν δεν χρησιμοποιώ το RStudio (Πατάω Q για να βγω από το help)
  • abs() : απόλυτη τιμή
    > abs(-4)
    [1] 4
  • log() : φυσικός λογάριθμος (δηλαδή ln() )
    > log(2)
    [1] 0.6931472

Βασικές Αριθμητικές Συναρτήσεις της R (2)

  • log2() : λογάριθμος με βάση 2
    > log2(2)
    [1] 1
  • log10() : λογάριθμος με βάση 10
    > log10(100)
    [1] 2
  • log(x,n) : λογάριθμος του x με βάση n
    > log(8,2)
    [1] 3
  • exp() : εκθετική συνάρτηση
    > exp(log(2))
    [1] 2

Βασικές Αριθμητικές Συναρτήσεις της R (3)

  • cos() : συνημίτονο
    > cos(pi)
    [1] -1
  • sin() : ημίτονο
    > sin(pi)
    [1] 1.224647e-16
  • tan() : εφαπτομένη
    > tan(pi)
    [1] -1.224647e-16

Βασικές Αριθμητικές Συναρτήσεις της R (4)

  • acos() : τόξο συνημιτόνου
    > acos(0.5)
    [1] 1.047198
  • asin() : τόξο ημιτόνου
    > asin(0.5)
    [1] 0.5235988
  • atan() : τόξο εφαπτομένης
    > atan(0.5)
    [1] 0.4636476

Βασικές Αριθμητικές Συναρτήσεις της R (5)

  • round(x, digits=y) : στρογγυλοποίηση του x με y δεκαδικά ψηφία
    > round(15.78365, digits=3)
    [1] 15.784
  • floor() : προηγούμενος ακέραιος
    > floor(4.6)
    [1] 4
  • ceiling() : επόμενος ακέραιος
    > ceiling(4.6)
    [1] 5

Βασικές Αριθμητικές Συναρτήσεις της R (6)

  • gamma() : συνάρτηση Γάμμα
    > gamma(3)
    [1] 2
  • factorial() : παραγοντικό
    > factorial(3)
    [1] 6
  • choose(n,x) : συνδυασμοί n αντικειμένων ανά x δηλ. \[ \frac{n!}{x!*(n-x)!} \]
    > choose(5,3)
    [1] 10

Working directory

  • Στο working directory ψάχνει να βρει η R by default όλα τα αρχεία για διάβασμα και γράψιμο.
  • Καλό είναι να δημιουργούμε ξεχωριστό working directory για κάθε ξεχωριστό project ανάλυσης δεδομένων.

Ορισμός του working directory

  • Δημιουργώ πρώτα το φάκελο που θέλω να χρησιμοποιήσω ως working directory π.χ. τον Rseminar
  • Από το μενού του RStudio επιλέγω:
    • Session--> Set Working directory --> Choose Working directory
  • Ή μέσω της κονσόλας με την εντολή setwd():
    > setwd("/mnt/home/annamos/Rseminar")
  • Με την εντολή getwd() παίρνω το working dierctory :
    > getwd()
    [1] "/mnt/home/annamos/Rseminar"

Τα περιεχόμενα του working directory

  • dir() : Εμφανίζει όλα τα αρχεία του working directory.
    > dir()
     [1] "a.R"                                      "complete.R"                               "corr.R"                                  
     [4] "dedomena_aktwn_kolymvhshs_2012.csv"       "faithful.pdf"                             "geyserplot.png"                          
     ...............................
  • ls() ή objects() : Εμφανίζει όλα τα αντικείμενα του working directory.
    > ls()
      [1] "a"                        "A"                        "airquality"               "aktes"      
    ...............
    > objects()  
      [1] "a"                        "A"                        "airquality"               "aktes"                   
      [5] "b"                        "B"                        "breaks"                   "c"      
    ................ 

Data Files (1)

  • Τα R data files έχουν κατάληξη .RData και .rda και περιέχουν αντικείμενα που έχουν δημιουργηθεί σε ένα R session.
  • Για να αποθηκεύσουμε όλα τα αντικείμενα του workspace (συνήθως όταν κλείνουμε την R) χρησιμοποιούμε την συνάρτηση save.image() :
  • > save.image()
    Αποθηκεύει όλο το workspace με το όνομα .RData. (Όταν κλείνουμε την R μας ρωτά αν θέλουμε να αποθηκεύσουμε το συγκεκριμένο session στο workspace)
  • Mπορούμε να δώσουμε εμείς όνομα στο αρχείο και αποθηκεύεται στο working directory ή μπορούμε να δώσουμε το path και να αποθηκευτεί αλλού.
  • > save.image(file="projectintroduction.RData")
    Μπορούμε να δούμε το αρχείο στα files

Data Files (2)

  • Για να χρησιμοποιήσουμε όλα τα αντικείμενα που αποθηκεύτηκαν στο αρχείο projectintroduction.RData θα πρέπει να τα "φορτώσουμε" με την load():
  • > load("projectintroduction.RData") 
    Συνήθως όταν ανοίγει η R φορτώνει το workspace στο οποίο εργαστήκαμε προηγουμένως
  • Αν χρησιμοποιούμε το RStudio, έχοντας ενεργοποιημένη την καρτέλα Environment μπορούμε να σώσουμε απευθείας το workspace πατώντας το εικονίδιο του Save και στη συνέχεια να φορτώσουμε το workspace από το αντίστοιχο εικονίδιο

Data Files (3)

  • Για να αποθηκεύσουμε ένα αντικείμενο ή μια σειρά αντικειμένων χρησιμοποιούμε την συνάρτηση save(<αντικείμενο-α>, file="<όνομα_αρχείου>") Παράδειγμα:
  • > save(x, file="x.rda") # σώζει το αντικείμενο x στο αρχείο x.rda 
    και
    > load("x.rda") # φορτώνει το x στην R 
    Αν χρησιμοποιούμε το RStudio, μπορούμε απλά να φορτώσουμε το αντικείμενο x αν κάνουμε κλικ πάνω στο αρχείο x.rda μέσα από την καρτέλα Files.

History

  • Για να σώσουμε το σύνολο των εντολών που έχουμε γράψει στην κονσόλα μέχρι εκείνη την στιγμή (το αρχείο έχει κατάληξη .Rhistory) και για να το φορτώσουμε στη συνέχεια έχουμε:
  • > savehistory("history1.Rhistory")
    > loadhistory("history1.Rhistory") 
  • Αν χρησιμοποιούμε το RStudio, έχοντας ενεργοποιημένη την καρτέλα History πατώντας το εικονίδιο του Save σώζουμε το σύνολο των εντολών που έχουμε γράψει στην κονσόλα μέχρι εκείνη την στιγμή και στη συνέχεια μπορούμε να τις φορτώσουμε από το αντίστοιχο εικονίδιο ή απλά κάνοντας κλικ πάνω στο αρχείο μέσα από την καρτέλα Files

Παράδειγμα δεσμευμένου ονόματος (1)

  • Γνωρίζω ότι για την R pi είναι το 3,14
    > pi
    [1] 3.141593
  • Δημιουργώ ένα νέο αντικείμενο στο περιβάλλον μου pi=4
    > pi<-4
    > pi
    [1] 4
  • Τώρα πλέον στο περιβάλλον μου pi=4
    > ls() # βλέπω το αντικείμενο pi 
    ..............................................................
     [73] "opinion"                  "out1"                     "outcome"                  "p2"                      
     [77] "pi"                       "pollutantmean"            "r"                        "ranks"                   
     [81] "s"                        "s1"                       "s2"                       "sayhello"
    ............................................................  

Παράδειγμα δεσμευμένου ονόματος (2)

  • Σβήνω το αντικείμενο από το περιβάλλον μου και υπάρχει το αρχικό αντικείμενο από το global περιβάλλον
    > rm(pi)
    > ls() # δεν υπάρχει το pi=4 στο περιβάλλον μου
    ....................................................... 
     [73] "opinion"                  "out1"                     "outcome"                  "p2"                      
     [77] "pollutantmean"            "r"                        "ranks"                    "s"                       
     [81] "s1"                       "s2"                       "sayhello"                 "sayHello"
    .......................................................    
    > pi
    [1] 3.141593

Πακέτα (1)

  • Τα πακέτα είναι εμφανή στην καρτέλα Packages του RStudio
  • Η χρησιμοποίηση ενός πακέτου είναι διαδικασία δύο βημάτων:
    1. Εγκατάσταση του πακέτου (μέσω του install στην καρτέλα Packages)
    2. Ενεργοποίηση του πακέτου για χρήση (επιλέγοντας το πακέτο από την λίστα στην καρτέλα Packages)

Πακέτα (2)

  • Εγκατάσταση πακέτου μέσω της κονσόλας με τις αντίστοιχες εντολές
    • search() : Αναζήτηση πακέτων που χρησιμοποιούνται
      > search()  
       [1] ".GlobalEnv"        "tools:rstudio"     "package:stats"     "package:graphics"  "package:grDevices" "package:utils"    
       [7] "package:datasets"  "package:methods"   "Autoloads"         "package:base" 
    • install.packages() : Εγκατάσταση πακέτου
      > install.packages("maps") 
      Installing package into ‘/home/anna/R/x86_64-pc-linux-gnu-library/3.1’
      .........................................................
      The downloaded source packages are in
      	‘/tmp/RtmpiPHRAu/downloaded_packages’
    • library() : Ενεργοποίηση πακέτου για χρήση
      > library("maps") 

Πακέτα (3)

  • detach("package:...") : Απενεργοποίηση πακέτου
    > detach("package:maps")
  • (Απλά αποεπιλέγεται από την λίστα με τα πακέτα στην καρτέλα Packages)

Βασικοί Τύποι Αντικειμένων(1)

  • Numeric - Πραγματικός αριθμός
    > x<-4
    > x
    [1] 4
    > x<-4.2
    > x
    [1] 4.2
  • Integer - Ακέραιος αριθμός (Με L δηλώνουμε τον ακέραιο)
    > x<-1L
    > x
    [1] 1
  • Complex - Μιγαδικός αριθμός
    > y<-complex(real=2, imaginary=3)
    > y
    [1] 2+3i
    > y<-2+3i # μπορούμε να τον δηλώσουμε πιο απλά 

Βασικοί Τύποι Αντικειμένων(2)

  • Logical - Δεδομένο Λογικής (TRUE/FALSE)
    > z<-x>100
    > z
    [1] FALSE 
  • Character - Δεδομένο Χαρακτήρων
    > k="ANNA"
    > k
    [1] "ANNA"

Συναρτήσεις για τον τύπο αντικειμένων (1)

  • mode() : δίνει τον τύπο του αντικειμένου (και για πραγματικό και για ακέραιο δίνει αποτέλεσμα numeric)
  • class() : δίνει την κλάση στην οποία ανήκει το αντικείμενο
  • typeof() ή storage.mode(): δίνει τον τύπο του αντικειμένου που χρησιμοποιείται για αποθήκευση

Συναρτήσεις για τον τύπο αντικειμένων (2)

Παράδειγμα 1 Παράδειγμα 2
> x<-1L
> x
[1] 1
> mode(x)				  
[1] "numeric"                             
> class(x)				   
[1] "integer"				   
> typeof(x)				   
[1] "integer"				   
> storage.mode(x)			  
[1] "integer"
> x<-4.2
> x
[1] 4.2
> mode(x)
[1] "numeric"
> class(x)
[1] "numeric"
> typeof(x)
[1] "double"
> storage.mode(x)
[1] "double"  

Συναρτήσεις για τον τύπο αντικειμένων (3)

  • is.numeric(), is.character(), is.logical() : απαντά αν η μεταβλητή είναι του αντίστοιχου τύπου
  • Παραδείγματα:
> is.numeric(z)
[1] FALSE
> is.character(k)
[1] TRUE 
> is.logical(x)
[1] FALSE 

Συναρτήσεις για τον τύπο αντικειμένων (4)

  • as.numeric(), as.character(), as.logical() : μετατρέπει την μεταβλητή στον αντίστοιχο τύπο
  • Παραδείγματα:
> as.numeric(z) 
[1] 0
Τα αριθμητικά των λογικών μετρατρέπονται ως εξής: TRUE->1 , FALSE->0
> y<-as.character(x)
> y
[1] "1"
> x
[1] 1
Ο αριθμός 1 μετατρέπεται σε σύμβολο "1", η μεταβλητή y είναι τύπου character ενώ η x numeric
> as.logical(x)
[1] TRUE