8  Ροή εργασίας: αναζητώντας βοήθεια

Αυτό το βιβλίο δεν είναι πανάκεια. Δεν υπάρχει καμία πηγή που από μόνη της θα σας επιτρέψει να γίνετε ειδικοί στην R. Καθώς αρχίζετε να εφαρμόζετε τις τεχνικές που περιγράφονται σε αυτό το βιβλίο στα δικά σας δεδομένα, σύντομα θα βρείτε ερωτήσεις που δεν απαντάμε εδώ. Αυτή η ενότητα περιγράφει μερικές συμβουλές για το πώς να λάβετε βοήθεια και για το πως να συνεχίσετε να μαθαίνετε.

8.1 Η Google είναι φίλος σας

Αν κολλήσετε, ξεκινήστε με τη μηχανή αναζήτησης της Google. Τυπικά, η προσθήκη του “R” σε ένα ερώτημα είναι αρκετή για να περιοριστεί σε σχετικά αποτελέσματα: εάν η αναζήτηση δεν είναι χρήσιμη, σημαίνει συχνά ότι δεν υπάρχουν διαθέσιμα αποτελέσματα ειδικά για την R. Επιπλέον, η προσθήκη ονομάτων πακέτων όπως “tidyverse” ή “ggplot2” θα σας βοηθήσει να περιορίσετε τα αποτελέσματα σε κώδικα που θα σας φαίνεται πιο οικείος, π.χ. “πώς να κάνετε ένα θηκόγραμμα στην R” έναντι του “πώς να δημιουργήσετε ένα θηκόγραμμα στην R με ggplot2”. Η αναζήτηση της Google είναι επίσης ιδιαίτερα χρήσιμη για μηνύματα λάθους. Αν λάβετε ένα μήνυμα σφάλματος και δεν έχετε ιδέα τι σημαίνει, δοκιμάστε να το γκουγκλάρετε! Υπάρχουν καλές πιθανότητες ότι κάποιος άλλος έχει ασχοληθεί με αυτό στο παρελθόν, οπότε θα υπάρχει βοήθεια κάπου στο διαδίκτυο. (Εάν το μήνυμα σφάλματος δεν είναι στα Αγγλικά, εκτελέστε Sys.setenv(LANGUAGE = "en") και εκτελέστε ξανά τον κώδικα. Με αυτό τον τρόπο είναι πιο πιθανό να βρείτε βοήθεια για μηνύματα σφάλματος στα αγγλικά.)

Εάν η Google δεν σας βοηθήσει, δοκιμάστε το Stack Overflow. Ξεκινήστε αφιερώνοντας λίγο χρόνο αναζητώντας μία υπάρχουσα απάντηση, συμπεριλαμβανομένου του φίλτρου «[R]», για να περιορίσετε την αναζήτησή σας σε ερωτήσεις και απαντήσεις που χρησιμοποιούν την R.

8.2 Δημιουργώντας ένα αναπαράξιμο παράδειγμα (reprex)

Εάν το γκουγκλάρισμα σας δεν βρίσκει τίποτα χρήσιμο, μία πολύ καλή ιδέα είναι να ετοιμάσετε ένα reprex, ένα ελάχιστο αναπαράξιμο παράδειμα (reproducible example). Ένα καλό reprex διευκολύνει τους άλλους να σας βοηθήσουν και συχνά θα εντοπίσετε μόνοι σας το πρόβλημα κατά τη διάρκεια της δημιουργίας του. Υπάρχουν δύο μέρη για τη δημιουργία ενός reprex:

  • Πρώτα, πρέπει να κάνετε τον κώδικά σας αναπαράξιμο. Αυτό σημαίνει ότι πρέπει να καταγράψετε τα πάντα, δηλαδή να συμπεριλάβετε τυχόν κλήσεις σε βιβλιοθήκες και να δημιουργήσετε όλα τα απαραίτητα αντικείμενα. Ο ευκολότερος τρόπος για να βεβαιωθείτε ότι το έχετε κάνει είναι να χρησιμοποιήσετε το πακέτο reprex.

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

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

  • Στο 80% των περιπτώσεων, η δημιουργία ενός καλού reprex είναι ικανή να αποκαλύψει την πηγή του προβλήματός σας. Είναι εκπληκτικό πόσο συχνά η διαδικασία σύνταξης ενός αυτοτελούς και ελάχιστου παραδείγματος σας επιτρέπει να απαντήσετε στη δική σας ερώτηση.

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

Όταν δημιουργείτε ένα reprex με το χέρι, είναι εύκολο να σας ξεφύγει κάτι κατά λάθος, που σημαίνει ότι ο κώδικάς σας δεν μπορεί να εκτελεστεί στον υπολογιστή κάποιου άλλου. Αποφύγετε αυτό το πρόβλημα χρησιμοποιώντας το πακέτο reprex, το οποίο είναι εγκατεστημένο ως μέρος του tidyverse. Ας υποθέσουμε ότι αντιγράψατε αυτόν τον κώδικα στο πρόχειρο σας (ή, στον διακομιστή RStudio ή στο Cloud - επιλέξτε τον):

y <- 1:4
mean(y)

Στη συνέχεια καλέστε την reprex(), όπου η προεπιλεγμένη έξοδος είναι διαμορφωμένη σύμφωνα με τα πρότυπα του GitHub:

reprex::reprex()

Ένας σωστά διαμορφωμένος HTML κώδικας θα εμφανιστεί στον Viewer του RStudio (αν βρίσκεστε στο RStudio) ή, διαφορετικά, στο προεπιλεγμένο πρόγραμμα περιήγησης σας. Το reprex αντιγράφεται αυτόματα στο πρόχειρο σας (στο RStudio Server ή στο Cloud, θα χρειαστεί να το αντιγράψετε μόνοι σας):

``` r
y <- 1:4
mean(y)
#> [1] 2.5
```

Αυτό το κείμενο έχει μορφοποιηθεί με έναν ειδικό τρόπο, που ονομάζεται Markdown, ο οποίος μπορεί να επικολληθεί σε ιστότοπους όπως το StackOverflow ή το Github, και θα το αποδώσουν αυτόματα ώστε να μοιάζει με κώδικα. Δείτε πώς θα έμοιαζε αυτό το Markdown στο GitHub:

y <- 1:4
mean(y)
#> [1] 2.5

Οποιοσδήποτε άλλος μπορεί να το αντιγράψει, να επικολλήσει και να το εκτελέσει αμέσως.

Υπάρχουν τρία πράγματα που πρέπει να συμπεριλάβετε για να κάνετε το παράδειγμά σας αναπαράξιμο: τα απαιτούμενα πακέτα, τα δεδομένα και τον κώδικα.

  1. Τα πακέτα θα πρέπει να φορτώνονται στο επάνω μέρος του αρχείου κώδικα, ώστε να είναι εύκολο να δείτε ποια χρειάζεται το παράδειγμα. Αυτή είναι μία καλή στιγμή για να ελέγξετε ότι χρησιμοποιείτε την πιο πρόσφατη έκδοση κάθε πακέτου - μπορεί να έχετε ανακαλύψει ένα σφάλμα που έχει διορθωθεί από τότε που εγκαταστήσατε ή ενημερώσατε την τελευταία φορά το πακέτο. Για πακέτα στο tidyverse, ο ευκολότερος τρόπος ελέγχου είναι εκτελώντας το tidyverse_update().

  2. Ο ευκολότερος τρόπος για να συμπεριλάβετε δεδομένα είναι να χρησιμοποιήσετε την dput() για να δημιουργήσετε τον κώδικα R που απαιτείται για την αναδημιουργία του. Για παράδειγμα, για να δημιουργήσετε ξανά το σύνολο δεδομένων mtcars στην R, εκτελέστε τα ακόλουθα βήματα:

    1. Τρέξτε dput(mtcars) στην R.
    2. Αντιγράψτε το αποτέλεσμα.
    3. Στο reprex, πληκτρολογήστε mtcars <-, και στη συνέχεια κάντε επικόλληση το κομμάτι που αντιγράψατε.

    Προσπαθήστε να χρησιμοποιήσετε το μικρότερο δυνατό υποσύνολο των δεδομένων σας που αποκαλύπτει όμως το πρόβλημα.

  3. Αφιερώστε λίγο χρόνο για να διασφαλίσετε ότι ο κώδικας σας είναι εύκολος να τον διαβάσουν οι άλλοι:

    • Βεβαιωθείτε ότι έχετε χρησιμοποιήσει κενά και τα ονόματα των μεταβλητών σας είναι συνοπτικά αλλά ενημερωτικά.

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

    • Κάντε ό,τι μπορείτε για να αφαιρέσετε οτιδήποτε δεν σχετίζεται με το πρόβλημα.

    Όσο πιο σύντομος είναι ο κώδικάς σας, τόσο πιο εύκολο είναι να κατανοηθεί και τόσο πιο εύκολο να διορθωθεί.

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

Η δημιουργία reprex δεν είναι απλή και θα χρειαστεί λίγη εξάσκηση για να μάθετε να δημιουργείτε καλά, πραγματικά σύντομα reprexes. Ωστόσο, το να μάθετε να κάνετε ερωτήσεις που περιλαμβάνουν τον κώδικα σας και να επενδύετε χρόνο για να τον κάνετε αναπαράξιμο θα συνεχίσει να αποδίδει καθώς μαθαίνετε και κατακτάτε την R.

8.3 Επενδύοντας στον εαυτό σας

Θα πρέπει επίσης να αφιερώσετε λίγο χρόνο για να προετοιμάσετε τον εαυτό σας για να λύνει προβλήματα πριν αυτά εμφανιστούν. Επενδύοντας λίγο χρόνο στην εκμάθηση της R κάθε μέρα, μακροπρόθεσμα, θα αποδώσει πολύ. Ένας τρόπος είναι να παρακολουθήσετε τι κάνει η ομάδα του tidyverse στον ιστότοπο του tidyverse. Για να συμβαδίσετε με την κοινότητα της R γενικότερα, συνιστούμε να διαβάζετε το R Weekly: είναι μία προσπάθεια της κοινότητας να συγκεντρώνει τις πιο ενδιαφέρουσες ειδήσεις στην κοινότητα της R κάθε εβδομάδα.

8.4 Σύνοψη

Αυτό το κεφάλαιο ολοκληρώνει το μέρος του βιβλίου “Η ολοκληρωμένη εικόνα”. Τώρα έχετε δει τα πιο σημαντικά μέρη της διαδικασίας της επιστήμης δεδομένων: οπτικοποίηση, μετασχηματισμός, τακτοποίηση και εισαγωγή. Έχετε πλέον μία ολιστική άποψη της διαδικασίας και αρχίζουμε να μπαίνουμε στις λεπτομέρειες των μικρών κομματιών.

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