Αναρτήσεις

Εμφάνιση αναρτήσεων με την ετικέτα R

Free online R books...

Με αφορμή το γεγονός ότι ασχολούμαι ξανά μετά από χρόνια με την R, η παρακάτω λίστα θα φανεί πολύ χρήσιμη σε όποιον θέλει να μάθει και να κατανοήσει τις δυνατότητες αυτής της πολύ συμπαθούς γλώσσα προγραμματισμού... Είναι βιβλία πάνω σε διάφορα θέματα γύρω από και μέσα στο οικοσύστημα της R και διατίθενται δωρεάν από τους ίδιους τους συγγραφείς τους...  "R for Data Sciense" - Hadley Wickam & Garrett Grolemund "Hands-On Programming with R" - Garrett Grolemund "Advanced R" - Hadley Wickam "R packages" - Hadley Wickam & Jenny Bryan "Fundamentals of Data Visualization" - Claus Wilke  "Forecasting: Principles and Practice" - Rob J. Hyndman & George Athanasopoulos "Mastering Shiny" - Hadley Wickam "Geocomputation with R" - Robin Lovelace & Jacub Novosad & Jannes Muenchow

Σε αυτή την στάση κατεβαίνω...

Εκεί στα τέλη του 2014, επηρεασμένος από το hype που κυριαρχούσε (και κυριαρχεί ακόμα) και από τη θέληση μου για εξέλιξη, προσωπική κι επαγγελματική, αποφάσισα να ανέβω στο τρένο που λέγεται Data Sciense ... Μέχρι τότε είχα μια δεκαετή καριέρα ως DWH / ETL Developer, είχα μόλις εισέλθει στον κόσμο των Analytics (βλέπε Qlikview ) και είχα διάθεση για κάτι νέο και μεγάλο, κατάλληλο για την νέα επαγγελματική αρχή που είχα κάνει από την αρχή εκείνης της χρονιάς στην Τράπεζα Πειραιώς...Είχαν προηγηθεί άρθρα που ανακήρυτταν την δουλειά του Data Scientist ως την πιο sexy του 21ου αιώνα , καινούργια buzzwords που συναντούσες όλο και συχνότερα όπως Big Data , Hadoop , MapReduce και η υπόσχεση ότι το Data Sciense θα διαμορφώσει το μέλλον τόσο σε προσωπικό όσο και παγκόσμιο επίπεδο...  Ασχολήθηκα πολύ με αυτό, επένδυσα και χρήμα και χρόνο ... Ξόδεψα τουλάχιστον 2 χρόνια από τη ζωή μου σε αυτή την υπόθεση προσπαθώντας να γίνω όσο καλύτερος γινόταν... Ήξερα από την αρχή ότι η Στατιστική, έν

R - Πρόσβαση σε μια βάση δεδομένων με το package RODBC ...

Μπορεί δουλεύοντας με την R να χρησιμοποιούμε σε πολύ μεγάλο βαθμό ως data sources διάφορα flat files και γενικότερα αδόμητη πληροφορία αλλά θα έρθει η στιγμή εκείνη που θα χρειαστεί να κάνουμε την R να "μιλήσει" με μια ή περισσότερες βάσεις δεδομένων... Υπάρχουν διάφορα packages που παρέχουν τη διεπαφή μεταξύ της R και μιας συγκεκριμένης βάσης δεδομένων όπως το RMySQL  ή το ROracle , υπάρχει όμως ένα package το οποίο δεν database specific αλλά υποστηρίζει τη διεπαφή με όλες τις βάσεις δεδομένων, συμπεριλαμβανομένων του SQL Server και της DB2, αρκεί να υπάρχει ένα σχετικό ODBC connection... Το package αυτό ονομάζεται RODBC και μπορείτε να το βρείτε και να το εγκαταστήσετε από το CRAN ... Είναι πολύ απλό και straightforward στην χρήση του, τα βασικά functions του μπορείτε να τα δείτε κι εδώ ... Όπως θα δείτε, δίνει δυνατότητες πλήρους manipulation της βάσης (insert, update, delete) κι όχι μόνο ανάγνωση των δεδομένων... Το χρησιμοποίησα στα πλαίσια ενός project που απαιτ

Κοίτα μαμά, τα κατάφερα, είμαι Data Scientist...

Εικόνα
17 μήνες μετά, με ξενύχτια, με διάβασμα, με κούραση, με πολλές ώρες πάνω από τον υπολογιστή, είτε στο σπίτι είτε στα Starbucks της πλατείας όπου κατέφευγα για λίγη ησυχία για να μπορέσω να μελετήσω... Αυτό που ξεκίνησε το Γενάρη του 2015 τελείωσε σήμερα το πρωί, κατάφερα και ολοκλήρωσα το Data Sciense Specialization που προσφέρεται από το Coursera και το JHU με βαθμό 95% , όχι κι άσχημα νομίζω... :) Ήταν μια πολύ ωραία εμπειρία, το ευχαριστήθηκα πολύ, έμαθα καινούργια πράγματα, απέκτησα μια διαφορετική οπτική πάνω στην έννοια της πληροφορίας όπως την γνώριζα από την μέχρι τώρα επαγγελματική μου εμπειρία, ήταν η επίτευξη ενός στόχου που είχα θέσει στον εαυτό μου για να αναπληρώσω (ως ένα βαθμό τουλάχιστον) το μεταπτυχιακό που δεν έκανα ποτέ μου... Υ.Γ. Το πιστοποιητικό, προφανώς, έχει τροποποιηθεί λιιιιιίγο... :)

R - Πώς να δημιουργήσεις ένα κενό plot...

Έστω ότι για κάποιο λόγο, προγραμματίζοντας σε R, σε κάποια στιγμή υπάρχει η ανάγκη να δημιουργήσετε ένα κενό plot, κάτι σαν place holder ή για να αποτρέψετε την εφαρμογή σας να δείχνει ασυναρτησίες ή errors στο "κανονικό" σας plot... Σε εμένα η ανάγκη προέκυψε όταν φτιάχνοντας ένα Shiny application, ήθελα ένα συγκεκριμένο plot να μην δείχνει τιμές όταν το input περιλαμβάνει συγκεκριμένες τιμές που δεν θα είχαν έτσι κι αλλιώς νόημα....  Μια καλή λύση είναι όταν έρχονται αυτές οι συγκεκριμένες τιμές να μην γίνεται render το "κανονικό" plot αλλά ένα άλλο, κενό που απλά θα καταλαμβάνει τον σχετικό χώρο πάνω στο application... Η λύση αυτή μπορεί να επιτευχθεί είτε δημιουργώντας ένα κενό plot το οποίο λειτουργεί σαν ένα place holder: ...είτε δημιουργώντας ένα plot χωρίς observations το οποίο όμως γίνεται κανονικά visualized όπως για παράδειγμα υλοποιεί ο παρακάτω κώδικας: Ενημερωτικά, εγώ χρησιμοποίησα το πρώτο code snippet διότι θεωρώ ότι τα

Data Science specialisation capstone project...

Αύριο ξεκινάει το τελευταίο μέρος της προσπάθειας που ξεκίνησε τον Ιανουάριο του 2015 με στόχο το Data Science specialisation από το Coursera και το JHU ... Για τους επόμενους δύο μήνες θα δουλεύω πάνω στο capstone project  του course, της πτυχιακής εργασίας όπως θα λέγαμε ελληνιστί... Ελπίζω να πάνε όλα καλά, χωρίς απρόοπτα και στα μέσα του Ιουνίου να έχω αποκτήσει τον τίτλο του Data Scientist...

Outersect(), το αντίστροφο της function intersect() της R...

Πρόσφατα κατά τη διάρκεια μιας ανάλυσης έπρεπε να συγκρίνω δύο data frames για να εξακριβώσω αν υπήρχαν variables που δεν ήταν κοινά και στα δύο... Γνώριζα ότι υπάρχει η intersect() η οποία βρίσκει τα κοινά στοιχεία μεταξύ δυο vectors και η setdiff() η οποία βρίσκει τα μη κοινά στοιχεία ενός vector ως προς ένα άλλο, εγώ όμως ήθελα μια function που να εντοπίζει τα μη κοινά στοιχεία και των δύο vectors...  "Google is your friend" , λένε και η λύση βρέθηκε σε ένα άρθρο που διάβασα στο R - bloggers ... Σε αυτό το άρθρο λοιπόν παρουσιάζεται μια custom function η outersect() η οποία χρησιμοποιώντας την sort() και την setdiff() κάνει αυτό ακριβώς που χρειαζόμουν, εντοπίζει τα μη κοινά στοιχεία δυο vectors... Η σύνταξη της είναι πολύ απλή και κατανοητή και η χρήση της πανεύκολη, τρεις γραμμούλες κώδικα που λύνουν τα χέρια...

Πώς να καθαρίσουμε το workspace με ένα μόνο command - R...

Θα υπάρξουν φορές δουλεύοντας με την R που θα βρεθείτε με ένα workspace γεμάτο variables τις οποίες δεν χρειάζεστε αλλά θέλετε να συνεχίσετε τη δουλειά σας με ένα άδειο workspace...  Υπάρχουν δυο τρόποι να το κάνετε αυτό... Ο πρώτος είναι να κλείσετε το session που δουλεύετε χωρίς να σώσετε τα περιεχόμενα του workspace στο .RData file... Ο τρόπος αυτός όμως έχει τα μειονεκτήματα ότι πρέπει να ξαναφορτώσετε από την αρχή όλα τα packages τα οποία είναι απαραίτητα για την ανάλυσή σας και ότι πρέπει να ξαναδηλώσετε το working directory... Ο δεύτερος τρόπος είναι πιο απλός και σύντομος και περιλαμβάνει μόνο το παρακάτω command: Το command αυτό διαγράφει μόνο τα variables που περιέχει το workspace αφήνοντας το απολύτως κενό χωρίς όμως να επηρεάζει τα loaded packages ή άλλα preferences που σχετίζονται με το current session θέλει όμως προσοχή στην χρήση του καθώς όπως είπαμε διαγράφει πλήρως το workspace...

Αναζητώντας χώρο και χρόνο...

Ο ήλιος λάμπει, η Μεσογείων είναι άδεια και έτοιμη να υποδεχτεί σε λίγες ώρες του πρώτους δρομείς που θα φτάσουν από τον Μαραθώνα... Πριν από δύο χρόνια τέτοια μέρα είχα πάρει το ποδήλατο και κατέβηκα μέχρι το Καλλιμάρμαρο για να δω τον τερματισμό και να νιώσω το vibe της ημέρας, σήμερα είμαι από τις 9 παρά στο Starbucks της Αγίας Παρασκευής και κάνω μια απέλπιδα προσπάθεια να παραδώσω την εργασία μου για την πρώτη εβδομάδα του course Regression Models ... Το να βρεις χώρo και χρόνο για επιμόρφωση όταν έχεις δύο μικρά παιδιά, μερικές φορές είναι δύσκολο... :)

Data manipulation χρησιμοποιώντας SQL statements στην R - sqldf...

Το να μάθεις μια καινούργια γλώσσα προγραμματισμού ή ένα καινούργιο framework, σημαίνει κάποιες φορές ότι πρέπει να μάθεις να σκέφτεσαι με διαφορετικό τρόπο από αυτόν που έχεις συνηθίσει να σκέφτεσαι μέχρι τώρα... H απόφαση μου να μάθω R και να μπω στον κόσμο του statistical programming σήμαινε ότι έπρεπε να βγω από το comfort zone που βρισκόμουν τόσα χρόνια και να μάθω καινούργια κόλπα... Για εμένα και πολλούς άλλους που προερχόμαστε από ένα κόσμο γεμάτο databases και data warehouses το να γράψουμε ένα SQL script ή κάποια prodecure για να διαχειριστούμε τα δεδομένα μας είναι πολύ απλό, όταν όμως προσπαθείς να κάνεις κάτι τέτοιο μέσα από την R, τότε πρέπει να σκεφτείς και να πράξεις με διαφορετικό τρόπο... Υπάρχουν όμως στιγμές που θες να κάνεις κάτι γρήγορα και δεν έχεις χρόνο για να εκπαιδεύσεις τον εαυτό σου να σκέφτεται με R τρόπο και ίσως δεν θέλεις κιόλας να το κάνεις διότι θεωρείς ότι ο R τρόπος δεν είναι ούτε γρήγορος, ούτε αποδοτικός... Ευτυχώς υπάρχει το sqldf  που μας λύ