CONNOR HARRIS: Ακόμα μου σκεφτείτε κάποιο συναρπαστικό βίντεο που παράγονται από έναν επαγγελματία συμβούλων ότι χρησιμοποιεί το R πολύ στο έργο της. Αφηγητής: Τι κρύβεται πίσω από τα στατιστικά στοιχεία, τα analytics, και οι απεικονίσεις λαμπρότερους επιστήμονες δεδομένα ότι η σημερινή και τους ηγέτες των επιχειρήσεων στηρίζονται σε να κάνουν ισχυρές αποφάσεις; Δεν μπορείτε να δείτε πάντα. Αλλά είναι εκεί. Αυτό λέγεται R, open source r-- η στατιστική γλώσσα προγραμματισμού ότι οι εμπειρογνώμονες δεδομένων στον κόσμο για τη χρήση για τα πάντα από τη χαρτογράφηση ευρείας κοινωνικής και τις τάσεις μάρκετινγκ σε απευθείας σύνδεση για την ανάπτυξη της χρηματοπιστωτικής και της κλιματικής μοντέλα που βοηθούν κινητήρια δύναμη των οικονομιών μας και τις κοινότητες. Αλλά τι ακριβώς είναι R και πού να αρχίσει R; Λοιπόν αρχικά, R ξεκίνησε εδώ με δύο καθηγητές ο οποίος ήθελε μια καλύτερη στατιστική πλατφόρμα για τους μαθητές τους. Έτσι δημιουργήθηκε ένα πρότυπο μετά την στατιστική γλώσσα S. Αυτοί, μαζί με πολλούς άλλους, συνέχισα να εργάζομαι για τη χρήση και το R, δημιουργία εργαλείων για την Ε και την εξεύρεση νέες αιτήσεις για την Ε κάθε μέρα. Χάρη σε αυτό είναι παγκόσμια κοινότητα προσπάθεια, Ε συνέχισε να αυξάνεται με χιλιάδες βιβλιοθήκες δημιουργούνται από το χρήστη ενσωματωμένη για την ενίσχυση της λειτουργικότητας R και επικύρωση της ποιότητας πλήθος προέλευσης και την υποστήριξη από τα πιο αναγνωρισμένα ηγέτες της βιομηχανίας σε κάθε πεδίο που χρησιμοποιεί R. Ποια είναι μεγάλη, επειδή R είναι ο καλύτερος σε αυτό που κάνει. Φερέλπιδες εμπειρογνώμονες γρήγορα και εύκολα να ερμηνεύσει, να αλληλεπιδρούν με, και να απεικονίσει τα δεδομένα δείχνουν τους γρήγορα αυξανόμενη κοινότητα των χρηστών σε όλο τον κόσμο R και να δούμε πώς ανοικτού κώδικα R συνεχίζει να διαμορφώνει το μέλλον των στατιστικών ανάλυση των δεδομένων και την επιστήμη. CONNOR HARRIS: Εντάξει, ωραία. Έτσι η δική μου παρουσίαση θα είναι λίγο πιο νηφάλια. Αυτό δεν συνεπάγεται ότι πολύ συναρπαστική μουσική υπόκρουση. Αλλά όπως είδατε στο βίντεο, το R είναι το είδος ενός γενικού προγράμματος με σκοπό τη γλώσσα. Αλλά δημιουργήθηκε ως επί το πλείστον για στατιστικές εργασίες. Έτσι έχει σχεδιαστεί για τις στατιστικές, για την ανάλυση δεδομένων, για την εξόρυξη δεδομένων. Και έτσι μπορείτε να δείτε αυτό σε πολλές οι σχεδιαστικές επιλογές που οι ιθύνοντες του R κατασκευασμένος. Είναι σχεδιασμένο για μεγάλο βαθμό, άνθρωποι που δεν είναι εμπειρογνώμονες στον προγραμματισμό, ο οποίος Τα απλά μαζεύοντας προγραμματισμού από την πλευρά της, έτσι ώστε να μπορούν να κάνουν τη δουλειά τους στις κοινωνικές επιστήμες ή σε στατιστικά στοιχεία ή οτιδήποτε άλλο. Έχει μια πολύ πολύ σημαντικές διαφορές από C. Όμως, η σύνταξη και τα παραδείγματα ότι χρησιμοποιεί είναι σε γενικές γραμμές η ίδια. Και θα πρέπει να αισθάνονται αρκετά πολύ στο σπίτι δεξιά από το ρόπαλο. Είναι επιτακτική ανάγκη γλώσσα. Μην ανησυχείτε πάρα πολύ για αυτό αν δεν γνωρίζουν τον όρο. Αλλά υπάρχει μια διάκριση μεταξύ επιτακτική ανάγκη, δηλωτική, και λειτουργικά. Επιτακτική σημαίνει απλά να κάνετε δηλώσεις που είναι βασικά εντολές. Και τότε ο διερμηνέας ή η υπολογιστή τους ακολουθεί μία προς μία. Είναι ασθενώς δακτυλογραφημένη, υπάρχουν δεν υπάρχουν δηλώσεις τύπου R. Και τότε οι γραμμές μεταξύ των διαφορετικών τύπων είναι λίγο πιο χαλαρή από ό, τι είναι σε C, για παράδειγμα. Και όπως είπα υπάρχουν πολύ εκτεταμένες εγκαταστάσεις για γραφικά, για στατιστικούς ανάλυση, για την εξόρυξη δεδομένων. Αυτά είναι τόσο ενσωματωμένο στο γλώσσας και, όπως είπε το βίντεο, χιλιάδες βιβλιοθήκες τρίτων που μπορείτε να κατεβάσετε και να χρησιμοποιήσετε δωρεάν με πολύ χαλαρές προϋποθέσεις χορήγησης αδειών. Έτσι, σε γενικές γραμμές, θα ήθελα να συστήσει ότι θα δούμε αυτές τις δύο βιβλία εάν πρόκειται να εργαστούν σε ένα R. από αυτούς είναι ο επίσημος R αρχαρίων οδηγός. Είναι συντηρείται από το πυρήνα για την ανάπτυξη του R. Μπορείτε να το κατεβάσετε και πάλι, χωρίς χρεώνουν και νομικά σε αυτό το σύνδεσμο εκεί. Όλες αυτές οι διαφάνειες πρόκειται να πάει επάνω στο διαδίκτυο, στην ιστοσελίδα CS50 μετά από αυτό γίνεται. Έτσι, δεν χρειάζεται να αντιγράψετε τα πράγματα κάτω μανιωδώς. Το άλλο είναι ένα εγχειρίδιο του Κοσμά Shalizi, ο οποίος είναι καθηγητής στο στατιστικών Carnegie Mellon, που ονομάζεται Σύνθετη Δεδομένων Ανάλυση από ένα Δημοτικό άποψη. Αυτό δεν είναι κατά κύριο λόγο ένα βιβλίο Ε. Είναι ένα βιβλίο και στατιστικές είναι ένα βιβλίο ανάλυσης δεδομένων. Αλλά είναι πολύ προσιτές σε ανθρώπους που έχουν μια μικρή ποσότητα των στατιστικών γνώσεων. Ποτέ δεν έχω λάβει επίσημη πορεία. Ξέρω μόνο κομμάτια από διάφορες συμμαχικές θέματα ότι έχω πάρει μαθήματα. Και ήμουν σε θέση να κατανοήσουν αυτό πολύ καλά. Όλα τα ποσά που δίνονται στο R. Είναι κατασκευασμένα στην Ε και έχουν επίσης λίστες κωδικός κάτω από κάθε εικόνα που σας πω πώς να κάνετε κάθε σχήμα με κωδικό Ε. Και αυτό είναι πολύ χρήσιμο εάν προσπαθείτε να μιμηθεί κάποια εικόνα που βλέπετε σε ένα βιβλίο. Και πάλι δωρεάν download stat.cmu.edu/cshalizi/ Λυπούμαστε, ότι θα πρέπει να περικοπούν περισπωμένη cshalizi. Θα βεβαιωθείτε ότι για να διορθώσει όταν οι επίσημες διαφάνειες ανεβαίνουν. / ADAfaEPoV το οποίο είναι ακριβώς το ακρωνύμιο του τίτλου του βιβλίου. Έτσι, γενικά caveats-- R έχει πολλές δυνατότητες. Είμαι μόνο θα είναι σε θέση να καλύψει η επιφάνεια πολλά πράγματα. Επίσης, το πρώτο μέρος του σεμιναρίου πρόκειται να είναι κάτι σαν χωματερή δεδομένων. Είμαι αρκετά συγνώμη γι 'αυτό. Βασικά, είμαι πρόκειται να σας παρουσιάσουμε πολλά πράγματα δεξιά από το ρόπαλο, θα το συντομότερο δυνατό. Και τότε έχουμε την ευκαιρία να το διασκεδαστικό μέρος, το οποίο είναι Το demo όπου μπορώ να σας δείξω τα πάντα ότι έχουμε μιλήσει στην οθόνη. Και μπορείτε να παίξετε γύρω από τη δική σας. Έτσι, εκεί πρόκειται να είναι ένα πολύ τεχνικά πράγματα ρίχνονται επάνω εδώ. Μην ανησυχείτε για την αντιγραφή όλα αυτά κάτω. Επειδή Α, μπορείτε να πάρετε όλα τα πράγματα στην ιστοσελίδα CS50 αργότερα. Και Β, δεν είναι πραγματικά τόσο σημαντικό να απομνημονεύσει αυτό από τις διαφάνειες. Είναι πιο σημαντικό ότι παίρνετε κάποια διαισθητική ευκολία με την και ότι προέρχεται από ακριβώς παίζει γύρω. Γιατί λοιπόν να χρησιμοποιήσετε το R; Βασικά, αν έχεις ένα σχέδιο που περιλαμβάνει την εξόρυξη μεγάλα σύνολα δεδομένων, τα δεδομένα απεικόνισης, μπορείτε θα πρέπει να χρησιμοποιούν R. Αν είστε κάνει περίπλοκη στατιστικές αναλύσεις, ότι θα ήταν δύσκολο να σε Excel, για παράδειγμα, θα ήταν επίσης να good-- επίσης αν κάνετε στατιστικών ανάλυση που είναι αυτοματοποιημένες. Ας πούμε ότι είστε διατήρηση μιας ιστοσελίδας. Και θέλετε να διαβάσετε το αρχείο καταγραφής διακομιστή κάθε μέρα και να συγκεντρώσει κάποια λίστα, όπως τις κορυφαίες χώρες που Οι χρήστες σας προέρχονται από, μερικά συνοπτικά στατιστικά στοιχεία σχετικά με το πόσο καιρό ξοδεύουν στην ιστοσελίδα σας ή οτιδήποτε άλλο. Και θέλετε να εκτελέσετε αυτό κάθε μέρα. Τώρα, αν κάνετε αυτό, στο Excel, τότε θα πρέπει να πάτε στο αρχείο καταγραφής του διακομιστή σας, εισαγωγή, ότι σε μια Υπολογιστικό φύλλο Excel δεδομένα, τρέχει όλη την ανάλυση χειροκίνητα. Με το R, μπορείτε να γράψετε ένα μόνο σενάριο. Προγραμματίστε να τρέχει κάθε μέρα από το λειτουργικό σας σύστημα. Και στη συνέχεια, κάθε βράδυ στις 02:00 π.μ., ή όποτε το προγραμματίσετε να τρέξει, θα φανεί μέσα σας η κυκλοφορία στο Διαδίκτυο για εκείνη την ημέρα. Και στη συνέχεια, από την επόμενη μέρα, θα έχουν αυτό το λαμπερό, νέα έκθεση ή ό, τι με όλα τα πληροφορίες που ζητήσατε. Έτσι, βασικά, το R είναι για τη Cisco προγραμματισμού σε σχέση με την ανάλυση της Cisco. Προκαταρκτική γίνεται. Ας μπει τα αληθινά πράγματα. Έτσι, υπάρχουν τρεις πραγματικές τύποι στη γλώσσα. Υπάρχει αριθμητικό τύπο. Υπάρχει ένα είδος διαφορά μεταξύ ακέραιοι και πλωτά σημεία, αλλά δεν είναι πραγματικά. Υπάρχει ένας χαρακτήρας τύπου, η οποία είναι χορδές. Και υπάρχει μια λογική τύπου, η οποία είναι Booleans. Και μπορείτε να μετατρέψετε μεταξύ των διαφόρων τύπων χρησιμοποιώντας αυτές τις λειτουργίες ως αριθμητικό, ως χαρακτήρας, ως λογική. Αν καλέσετε, για παράδειγμα, ως αριθμητική σε μια σειρά, θα προσπαθήσει να διαβάσει αυτό το αλφαριθμητικό ως έναν αριθμό, με τον ίδιο τρόπο ότι a2i και scanf κάνουμε, και C. Αν σας καλέσει ως αριθμητικά σε αληθείς ή ψευδείς θα μετατρέψει σε 1 ή 0. Αν καλέσετε και χαρακτήρα σε τίποτα αυτό θα μετατρέψει σε αυτό για μια αναπαράσταση συμβολοσειράς. Και έπειτα υπάρχουν πίνακες και διανύσματα. Έτσι, οι φορείς είναι βασικά 1 διαστάσεων πίνακες. Είναι αυτό που λέμε σε συστοιχίες Γ Πίνακες, 2 διαστάσεων συστοιχίες. Και τότε η ανώτατη διδιάστατους μπορείτε έχουν 3, 4, 5 ή ό, τι διαστάσεις των αριθμητικών τιμών, των χορδών, των λογικές τιμές. Μπορείτε επίσης να έχουν λίστες που είναι ένα είδος associative πίνακα. Θα μπει σε αυτό το λίγο. Έτσι, ένα σημαντικό πράγμα ότι τα ταξίδια τους ανθρώπους στον τομέα της έρευνας είναι ότι δεν υπάρχουν πραγματικό, καθαρό ατομικό τύπους. Δεν υπάρχει πραγματική διάκριση μεταξύ ένας αριθμός, όπως μια αριθμητική τιμή, και μια λίστα από αριθμητικές τιμές. Αριθμητικές τιμές είναι στην πραγματικότητα η ίδιο όπως τους φορείς του μήκους 1. Και αυτό έχει μια σειρά από σημαντικές συνέπειες. Ένα, αυτό σημαίνει ότι μπορείτε να κάνετε τα πράγματα πολύ εύκολα που περιλαμβάνουν όπως την προσθήκη ενός αριθμού σε ένα φορέα. R θα βασικά σχήμα τι εννοείτε με αυτό. Και θα φτάσουμε σε αυτό σε μια δεύτερη. Σημαίνει, επίσης, ότι δεν υπάρχει κανένας τρόπος για τον τύπο checker-- στο βαθμό ότι κάτι τέτοιο υπάρχει σε r-- να πει όταν έχετε περάσει στην ενιαία τιμή πότε αναμένει μια σειρά ή το αντίστροφο. Και αυτό μπορεί να προκαλέσει κάποια περίεργα προβλήματα που έτρεξα σε κατά Ήμουν χρησιμοποιώντας Ε κατά τη διάρκεια του καλοκαιριού η δουλειά μου. Και δεν υπάρχουν συστοιχίες μικτού τύπου. Έτσι, δεν μπορείτε να έχετε μια σειρά ήταν η πρώτα στοιχεία είναι, δεν ξέρω, η σειρά "John" και το δεύτερο στοιχείο είναι ο αριθμός 42. Αν προσπαθήσετε να το κάνετε αυτό, τότε θα πάρετε ό, τι ακριβώς μετατρέπεται σε μια σειρά. Έτσι έχουμε εγχόρδων Ιωάννη, κορδόνι 42. Έτσι ασυνήθιστο συντακτική features-- πιο Ε σύνταξη είναι πολύ παρόμοια με C. Υπάρχουν μερικές σημαντικές διαφορές. Η πληκτρολόγηση είναι πολύ αδύναμη. Έτσι, δεν υπάρχουν δηλώσεις μεταβλητών. Εκχώρηση χρησιμοποιεί την παράξενη χειριστής σφάλματος μικρότερο από παύλα. Τα σχόλια είναι με τη δίεση. Υποθέτω ότι τώρα ημέρες καλούμε hashtag αν και αυτό δεν είναι πραγματικά δεν accurate-- οι διπλές παύλες. Modular υπολείμματα είναι με τα σημάδια %%. Ακέραιος διαίρεση είναι με% /%, το οποίο είναι πολύ δύσκολο να διαβαστεί όταν είναι προβλεπόμενη επάνω στην οθόνη. Μπορείτε να πάρετε σειρές ακέραιοι με το παχύ έντερο. Έτσι, 2,5 θα σας δώσει ένα διάνυσμα του όλα τα νούμερα 2 έως 5. Οι πίνακες είναι ένα ευρετήριο, το οποίο βίδες πολλοί άνθρωποι up αν είστε από πάνω τυπικές γλώσσες προγραμματισμού, όπως η C, όπου τα περισσότερα τα πράγματα είναι μηδενικό δείκτη. Και πάλι, αυτό είναι όπου κληρονομιά της R ως γλώσσα σαν να μην επαγγελματίες προγραμματιστές έρχεται. Εάν είστε κοινωνιολόγος ή ένας οικονομολόγος ή κάτι και προσπαθείτε να χρησιμοποιήσετε Ε βασικά ως συμπλήρωμα σε πιο σημαντικά σας επαγγελματική εργασία, θα πάμε να βρούμε ένα ευρετήριο λίγο πιο φυσικό. Επειδή εσείς αρχίζουν να μετρούν σε 1 στην καθημερινή ζωή, δεν είναι 0. Για-βρόχους, αυτό είναι παρόμοιο με η foreach κατασκευάσει σε PHP, το οποίο θα πάρετε για να in-- μάθουν αρκετά σύντομα. Ποια είναι η αξία στο φορέα και τότε μπορείτε να κάνετε τα πράγματα με την αξία. Κοινό: Αυτό είναι καταλήξουμε σε διάλεξη. CONNOR HARRIS: Ω, αυτό είναι έρχονται διάλεξη, εξαιρετική. ΚΟΙΝΟ: Η εκχώρηση, είναι υποτίθεται ότι πρέπει να επισημάνω από δεξιά προς τα αριστερά; CONNOR HARRIS: Από δεξιά προς τα αριστερά, ναι. Μπορείτε να σκεφτείτε από το ως αξία το δικαίωμα έσπρωξε στη μεταβλητή στα αριστερά. Κοινό: OK. CONNOR Harris: Και τέλος σύνταξη της συνάρτησης είναι λίγο περίεργο. Έχετε το όνομα της συνάρτησης foo, αποδίδεται σε αυτή τη λειτουργία λέξη-κλειδί, που ακολουθείται από όλα τα επιχειρήματα και, στη συνέχεια, η σώμα της συνάρτησης μετά από αυτό. Και πάλι αυτά τα πράγματα μπορεί να φαίνεται λίγο παράξενο. Θα γίνει δεύτερη φύση μετά εργάζεστε με τη γλώσσα για λίγο. Έτσι φορείς, ο τρόπος θα κατασκευάσει ένα διάνυσμα Είναι ο τύπος που C, η οποία είναι μια λέξη-κλειδί, στη συνέχεια, όλοι οι αριθμοί που θέλετε ή χορδές ή οτιδήποτε άλλο. Επιχειρήματα επίσης να είναι φορείς. Αλλά η προκύπτουσα σειρά παίρνει ισοπέδωσε. Έτσι, δεν μπορείτε να έχετε συστοιχίες όπου ορισμένα στοιχεία είναι μονούς αριθμούς και ορισμένα στοιχεία είναι οι ίδιοι πίνακες. Έτσι, αν προσπαθήσετε να κατασκευάσει ένα συστοιχία ήταν το πρώτο στοιχείο είναι 4 και το δεύτερο στοιχείο είναι το 3,5 διάταξη που θα απλά να πάρετε μια συστοιχία τριών στοιχείων, 4,3,5. Δεν μπορεί να είναι μικτού τύπου. Αν προσπαθήσετε να διαβάσει ή να γράψει έξω από τα όρια ενός διανύσματος θα έχετε την τιμή αυτή ονομάζεται NA ένα που σημαίνει μια ελλείπουσα τιμή. Και αυτό προορίζεται για όπως στατιστικολόγοι που Συνεργαζόμαστε με ελλιπή σύνολα δεδομένων. Εάν εφαρμόσετε μια λειτουργία που υποτίθεται για να πάρουμε ένα μόνο αριθμό σε μια σειρά τότε αυτό που θα πάρετε είναι, το λειτουργία θα χαρτογραφήσει πάνω από τον πίνακα. Έτσι, εάν η λειτουργία σας, ας πούμε, παίρνει μια σειρά και επιστρέφει το τετράγωνο. Μπορείτε να εφαρμόσετε ότι στη συστοιχία 2,3,5 Τι θα πάρετε είναι η σειρά 4,9,25. Και αυτό είναι πολύ χρήσιμο γιατί σας σημαίνει Δεν χρειάζεται να γράψω για βρόχους για κάνει πολύ απλά πράγματα, όπως την εφαρμογή μια λειτουργία σε όλα τα μέλη ενός συνόλου δεδομένων. Ποια εάν εργάζεστε με μεγάλα σύνολα δεδομένων, θα πρέπει να κάνουμε πολλά. Δυαδική λειτουργίες εφαρμοσμένη είσοδο εισόδου. Θα πάρω σε αυτό. Μπορείτε να αποκτήσετε πρόσβαση σε αυτά με συστοιχίες ή φορείς με αγκύλες. Έτσι, το όνομα φορέα αγκύλες 1 θα σας δώσω το πρώτο στοιχείο. Το όνομά Vector αγκύλες 2 θα σας δώσει το δεύτερο στοιχείο. Μπορείτε να περάσετε σε ένα φορέα των δεικτών και θα να πάρει πίσω ουσιαστικά ένα υπο παράγοντα. Έτσι, μπορείτε να κάνετε φορέα παρένθεση το όνομα C, 2,4 και θα πάρετε ένα φορέα που περιέχει το δεύτερο και το τέταρτο στοιχεία της συστοιχίας. Και αν θέλετε απλά ένα σύντομη περίληψη στατιστική ενός φορέα όπως ενδοτεταρτημοριακού εύρος, διάμεσος, κατ 'ανώτατο όριο, ό, μπορείτε απλά να πληκτρολογήσετε περίληψη Το όνομά φορέα και να πάρει ότι έξω. Αυτό δεν είναι ιδιαίτερα χρήσιμο σε προγραμματισμό, αλλά αν παίζετε γύρω από τα σύνολα δεδομένων, είναι βολικό. Matrices-- βασικά υψηλότερων διαστάσεων πίνακες. Έχουν αυτήν την ειδική σύνταξη συμβολισμό. Matrix με μια σειρά που παίρνει συμπληρώθηκε in-- συγγνώμη, πίνακας με τα δεδομένα, αριθμός σειρών, ο αριθμός των στηλών. Όταν έχετε κάποια δεδομένα, που συμπληρώνει η συστοιχία ουσιαστικά πρόκειται πάνω προς τα κάτω πρώτα. Στη συνέχεια, αριστερά προς τα δεξιά. Έτσι, όπως αυτό. Και R έχει ενσωματωμένο πολλαπλασιασμοί μήτρα, φασματική αποσύνθεση, διαγωνιοποίηση, πολλά πράγματα. Αν θέλετε υψηλότερων διαστάσεων συστοιχίες, έτσι 3, 4, 5, ή οτιδήποτε διαστάσεις μπορείτε να το κάνετε αυτό. Η σύνταξη είναι συστοιχία αμυδρό ισούται με c, τότε ο κατάλογος των διαστάσεων. Έτσι, εάν θέλετε ένα μονοδιάστατο πίνακα 4 με διαστάσεις 4, 7, 8, 9, η συστοιχία, dim ισούται με c (4,7,8,9). Μπορείτε να αποκτήσετε πρόσβαση μεμονωμένων τιμών με βραχίονες πρώτο κόμμα είσοδο δεύτερη είσοδο. Μπορείτε να πάρετε ολόκληρο φέτες γραμμών ή στηλών. Με αυτόν τον ελλιπή σύνταξη είναι ακριβώς σειρά αριθμού κόμμα ή κόμμα στήλη αριθμός. Έτσι, οι λίστες είναι ένα είδος που συνδέεται πίνακα. Έχουν τη δική τους σύνταξη εδώ. Και πάλι δεν το κάνουν ξέφρενα αντιγράψετε όλα αυτά τα κάτω. Αυτό είναι ακριβώς έτσι ώστε οι άνθρωποι διέρχεται από τις διαφάνειες αργότερα έχουν όλα αυτά σε ένα ωραίο αναφοράς. Και αυτό θα γίνει πολύ φυσικό φορά Εγώ πραγματικά να περπατήσετε μέσα από το δήμο. Έτσι, απαριθμεί ουσιαστικά συνδέεται συστοιχίες. Μπορείτε να αποκτήσετε πρόσβαση αξιών με όνομα της λίστας, το σύμβολο του δολαρίου, κλειδί. Έτσι, εάν η λίστα σας ονομάζεται foo, τότε μπορείτε να έχετε πρόσβαση σαν αυτό. Μπορείτε να πάρετε μια ολόκληρη ζεύγος κλειδιού-τιμής με το πέρασμα στην πλατεία δείκτη βραχίονα. Αν διαβάσετε από μια ανύπαρκτη κλειδί, θα πάρετε μηδενική. Δεν θα παρουσιάσουν σφάλμα. Το θέμα είναι ότι, το R θα κάνει ό, πολύ με null όπως μπορεί. Και αυτό μπορεί να σημαίνει ότι αν είστε δεν περίμενα να πάρει έξω null κάποια λίστα ανάγνωσης, θα πάρετε κάποια απρόβλεπτες λάθη πιο κάτω η γραμμή. Αυτό συνέβη σε μένα μου δουλειά για το καλοκαίρι, όταν ήμουν με R όπου άλλαξε το πώς μια ορισμένη κατάλογος ορίστηκε σε ένα σημείο αλλά δεν άλλαξε αργότερα το κώδικα που διαβάζεται τιμές από αυτό. Και έτσι αυτό που συνέβη ήταν ότι ήμουν ανάγνωση των μηδενικών τιμών από αυτό τον κατάλογο, περνώντας τους σε λειτουργίες, και είναι πολύ συγκεχυμένη όταν πήρα όλα τα είδη της τυχαία άπειρα αναφύονται σε αυτή τη λειτουργία. Γιατί αν ισχύουν ορισμένες μέγιστες ή ελάχιστες λειτουργίες σε null, θα έχετε άπειρες τιμές έξω. Τα πλαίσια δεδομένων, είναι μια υποκατηγορία της λίστας. Κάθε τιμή είναι ένας φορέας του ίδιου μήκους. Και όπου και αν χρησιμοποιείται για την παρουσίαση, βασικά, πίνακες δεδομένων. Υπάρχει αυτή η σύνταξη προετοιμασίας. Αυτό θα είναι όλα, και πάλι, να είναι πολύ σαφέστερο όταν φτάσετε στο demo. Και το ωραίο πράγμα σχετικά με πλαισίων δεδομένων είναι ότι θα μπορεί να δώσει ονόματα σε όλες τις στήλες και τα ονόματα σε όλες τις σειρές. Και έτσι ώστε να κάνει την πρόσβαση τους λίγο πιο φιλικό. Επίσης, αυτό είναι το πώς οι περισσότεροι λειτουργίες που διαβάζονται δεδομένα από υπολογιστικά φύλλα του Excel ή από αρχεία κειμένου, για παράδειγμα, θα διαβάσει στα δεδομένα τους. Θα το θέσω σε κάποιο είδος του πλαισίου δεδομένων. Έτσι functions-- τις λειτουργίες σύνταξη είναι λίγο περίεργο. Και πάλι αυτό είναι το όνομα της συνάρτησης, εκχωρήσετε, λέξη-κλειδί αυτή τη λειτουργία και στη συνέχεια ο κατάλογος των επιχειρημάτων. Έτσι, υπάρχουν μερικά ωραία πράγματα σχετικά με το πώς λειτουργεί εργάζονται εδώ. Για το ένα, μπορείτε πραγματικά να ορίσετε προκαθορισμένες τιμές για ορισμένα επιχειρήματα. Έτσι, μπορείτε να πείτε το R1 equals-- μπορείτε να πείτε foo είναι μια λειτουργία όπου το R1 ισούται με κάτι από προεπιλογή, εάν ο χρήστης καθορίζει δεν υπάρχουν επιχειρήματα. Διαφορετικά, αυτό είναι ό, τι έβαλε στο. Και αυτό είναι πολύ βολικό επειδή πολλές από τις λειτουργίες μας έχουν συχνά δεκάδες ή εκατοντάδες επιχειρήματα. Για παράδειγμα, αυτά που σχεδίαζε γραφήματα ή συνωμοτούν διαγράμματα διασποράς έχουν επιχειρήματα που ελέγχουν τα πάντα, από τον τίτλο και τον άξονα ετικέτες με το χρώμα των γραμμών παλινδρόμησης. Και έτσι, αν δεν θέλετε να κάνει τους ανθρώπους να καθορίσετε κάθε μία από αυτές εκατοντάδες επιχειρήματα ελέγχει κάθε πτυχή της ένα οικόπεδο ή μια παλινδρόμηση ή οτιδήποτε άλλο, είναι ωραίο να έχουμε αυτές τις προκαθορισμένες τιμές. Και στη συνέχεια, μπορείτε πραγματικά να γράψεις όπως είδαμε και πάλι εδώ. Ή να βρείτε ένα καλύτερο παράδειγμα. Όταν καλείτε λειτουργίες μπορείτε πραγματικά καλέστε τους χρησιμοποιώντας τα ονόματα επιχείρημα. Έτσι, εδώ είναι ένα παράδειγμα της ο κατασκευαστής μήτρα. Χρειάζονται τρία επιχειρήματα. Συνήθως έχετε δεδομένα, το οποίο είναι ένας φορέας. Έχετε Ν σειρά, η οποία είναι ο αριθμός των σειρών. Έχετε Ν cols-- αριθμό των στηλών. Το θέμα είναι αν πληκτρολογήσετε Ν σειρά ισούται ανεξαρτήτως και Ν col ισούται με ό, τι όταν καλείς αυτή τη λειτουργία, μπορείτε να αντιστρέψετε τα πραγματικά. Έτσι, μπορείτε να βάλετε Ν διάσελο πρώτο και Ν σειρά δεύτερη και θα κάνει καμία διαφορά. Οπότε αυτό είναι ένα ωραίο χαρακτηριστικό. Μήπως εισαγωγής και εξαγωγής. Αυτό μπορεί να γίνει, βασικά. Υπάρχουν επίσης εγκαταστάσεις για να γράψουν αυθαίρετη R αντικείμενα σε ένα δυαδικό αρχείο και στη συνέχεια να τα διαβάσετε ξανά αργότερα. Ποια είναι βολικό αν κάνετε μια μεγάλη διαδραστική συνεδρία R και θα πρέπει να αποθηκεύσετε τα πράγματα πολύ γρήγορα. Εξ ορισμού το R έχει ένα κατάλογο εργασίας ότι τα αρχεία να αναγράφεται σε και να διαβάσει πίσω από. Μπορείτε να δείτε ότι με getwg, το αλλάξετε με setdw. Τίποτα ιδιαίτερο ενδιαφέρον εδώ Έτσι τώρα οι πραγματικές στατιστικές stuff-- πολυγραμμική παλινδρόμησης. Έτσι, η συνήθης σύνταξη Είναι λίγο περίπλοκο. Το μοντέλο είναι ένα μεγάλο αντικείμενο βασικά. Παίρνει ανατεθεί LM, η οποία είναι μια κλήση συνάρτησης. Το πρώτο στοιχείο, το y περισπωμένη x1 συν οτιδήποτε άλλο. Σύνταξη μου εδώ είναι λίγο συγκεχυμένη. Είμαι πολύ συγγνώμη, αυτό είναι ο συνήθης τρόπος ότι τα βιβλία της επιστήμης των υπολογιστών να το κάνετε αυτό. Αλλά είναι λίγο περίεργο. Έτσι, βασικά, είναι lm παρενθέσεις, το πρώτο στοιχείο είναι variable-- συγγνώμη, εξαρτάται από μεταβλητή περισπωμένη x1 x2 συν συν Ωστόσο, πολλές ανεξάρτητες μεταβλητές που έχετε. Και τότε αυτά μπορεί να είναι είτε φορείς, όλοι το ίδιο μήκος. Ή μπορεί να είναι στήλη κεφαλίδες σε ένα πλαίσιο δεδομένων ότι απλά προσδιορίζει το δεύτερο πλαίσιο δεδομένων επιχείρημα. Μπορείτε επίσης να καθορίσετε ένα πιο σύνθετο τύπο έτσι ώστε να μην χρειάζεται να γραμμικά οπισθοδρόμηση σε μία εξαρτημένη μεταβλητή, ή έναν φορέα σε μια προϋπάρχουσα φορέα. Μπορείτε να κάνετε, για παράδειγμα, ένα συνιστώσα διανύσματος y τετράγωνο συν 1 και οπισθοδρόμηση ότι κατά το συνδεθείτε κάποιου άλλου φορέα. Μπορείτε να εκτυπώσετε τις περιλήψεις των μοντέλο με την εντολή αυτή ονομάζεται summary-- μόλις περίληψη parens μοντέλο. Πάλι κάτι άλλο που πρέπει να διευκρινιστούν. Κάτι άλλο που θα πάρει διορθωθεί όταν οι διαφάνειες ανεβαίνουν στο διαδίκτυο. Αν απλά θέλετε να υπολογίσετε μια απλή συσχέτιση μπορείτε να χρησιμοποιήσετε το φορέα συσχέτιση 1 2 φορέα λειτουργίας πυρήνα. Η μέθοδος είναι από προεπιλογή Pearson συσχετίσεις. Αυτοί είναι οι τυπικοί αυτά που μπορείτε να κάνετε. Υπάρχουν επίσης και Spearman Kendell συσχετίσεις οι οποίες είναι μερικές ποικιλία Κατάταξη συσχέτιση παραγγελία. Καλά δεν υπολογίζουν το προϊόν στιγμές μεταξύ των ίδιων των φορέων, αλλά των παραγγελιών κατάταξη του φορέα. Θα σου εξηγήσω αργότερα. Κοινό: Γρήγορη ερώτηση CONNER HARRIS: Σίγουρα. Κοινό: Έτσι, όταν είστε υπολογισμό για τα απλά κάνουν συσχετίσεις υποθέσουμε ότι υπάρχει μια στατιστική σημασία στη σχέση; CONNER Harris: Δεν χρειάζεται να. Μια lm είναι ουσιαστικά μόνο μια μηχανή. Θα πάρει σε δύο πράγματα και θα φτύσει συντελεστές για την καλύτερη εφαρμογή της γραμμής. Αναφέρει, επίσης, πρότυπο σφάλματα τους νέους συντελεστές. Και θα σας πω, όπως είναι η τομής στατιστικά σημαντική ή διαφορά από 0. Είναι η κλίση της καλύτερης προσαρμοσμένης γραμμής στατιστικά διαφορετικό από το μηδέν, και τα λοιπά. Γι 'αυτό υποθέτει τίποτα, νομίζω είναι η καλύτερη απάντηση στην ερώτησή σας. ΕΝΤΆΞΕΙ. Plotting-- έτσι ο κύριος λόγος που θα πρέπει Χρησιμοποιήστε R, όπως πολυγραμμική παλινδρόμησης. Βασικά κάθε γλώσσα έχει κάποια δυνατότητα για αυτό. Και ειλικρινά σύνταξη R για παλινδρόμησης είναι απόκρυφες λίγο. Αλλά η σχεδίαση είναι όπου λάμπει πραγματικά. Η λειτουργία είναι κινητήριος δύναμη οικόπεδο και παίρνει δύο διανύσματα, x και y. Και τότε οι ελλείψεις συμβολίζει ένα πολύ μεγάλος αριθμός προαιρετικά ορίσματα ότι ελέγχει τα πάντα από τίτλους με χρώματα των διαφόρων γραμμών ή διάφορα σημεία, με τον τύπο του οικοπέδου. Μπορείτε να έχετε διασποράς οικόπεδα ή αγροτεμάχια γραμμή. [Δεν ακούγεται] 2 διανύσματα του ίδιου μήκους. Μπορείτε να προηγηθεί αυτό με σύνδεση πλαίσιο δεδομένων στο σενάριό σας. Και αυτό θα σας αφήσει να χρησιμοποιήσετε μόνο στήλη κεφαλίδες αντί των χωριστών φορέων. Μπορείτε να προσθέσετε γραμμές αρίστης προσαρμογής και των τοπικών καμπύλες παλινδρόμησης σε γράφημα σας. Αυτές οι εντολές που εμφανίζονται Εδώ, αβ γραμμή και γραμμές, Εξ 'ορισμού πάρει γραπτή σε pop up windows επειδή υποθέτει ότι είστε με τη χρήση R διαδραστικά. Εάν δεν είστε μπορείτε γράψει δύο αρχεία που είναι πραγματικά οποιαδήποτε μορφή θέλετε. Συγγνώμη, έχω ένα τυπογραφικό λάθος που μόλις συνειδητοποίησα. Αν θέλετε να ανοίξετε μια άλλη γραφική διάταξη μπορείτε να χρησιμοποιήσετε τη λειτουργία αυτή ονομάζεται PNG ή JPEG ή πολλές άλλες μορφές εικόνας. Και μπορείτε να γράψετε σε γραφήματα Όποια και αν είναι το όνομα του αρχείου που έχετε ορίσει. Για να ακυρώσετε ότι θα πρέπει να use-- Δεν έγραψα αυτό το slide-- αλλά υπάρχει μια λειτουργία που ονομάζεται dev dot ανοικτά ότι δεν δέχεται ορίσματα. Έπειτα, υπάρχουν εγκαταστάσεις 3D σχεδίαση για και για τη χάραξη περιγράμματος αν θέλετε να κάνετε γραφικές παραστάσεις των δύο ανεξάρτητων μεταβλητών. Δεν θα μπει σε αυτά τώρα. Υπάρχουν επίσης μερικοί εγκαταστάσεις για τα κινούμενα σχέδια αυτά είναι συνήθως διατηρούνται από τρίτους. Έχω κάνει κινούμενα σχέδια με R γραφήματα, αλλά δεν έχω χρησιμοποιήσει τους εν λόγω τρίτους βιβλιοθήκες. Γι 'αυτό και δεν μπορεί να βεβαιώσει πραγματικά για πόσο καλοί είναι. Τι ήθελα να συστήσω, αν θέλετε για να κάνει τα κινούμενα γραφικά με R είναι ότι μπορείτε να γράψετε όλα τα πλαίσια για τα κινούμενα σχέδια και, στη συνέχεια, μπορείτε να χρησιμοποιήσετε ένα program-- τρίτους Οι χαρακτηριστικοί αυτοί ονομάζονται FFmpeg ή ImageMagick-- να βελονιά όλα τα κουφώματα σας σε ένα animation. Έτσι ώστε ο χρόνος για demo. Έτσι, αν χρησιμοποιείτε οποιοδήποτε Unix όπως το σύστημα το οποίο είναι το Linux BSD, αλλά που χρησιμοποιεί BSD. OS X ανοίξτε ένα παράθυρο τερματικού και Τύπος R στη γραμμή εντολών. Εάν έχετε Ε στούντιο ή τα παρόμοια, που λειτουργεί επίσης. Για χρήστες των Windows θα πρέπει να είναι είναι σε θέση να βρει το R στο μενού Έναρξη σας. Θα πρέπει να ονομάζεται κάτι όπως R x64 3 σημείο οτιδήποτε. Ανοίξτε αυτό εκεί πάνω. Επιτρέψτε μου λοιπόν τώρα μόλις ανοίξτε ένα παράθυρο τερματικού. Εντάξει, αναζήτηση. Κοινό: Command-Space CONNER HARRIS: Command-Space, σας ευχαριστώ. Δεν συνηθίζει να χρησιμοποιεί υπολογιστές Mac. Terminal, δείχνουν νέο παράθυρο. New window είναι ρυθμίσεων βασικά, R. Έτσι, θα πρέπει να πάρετε ένα μήνυμα καλωσορίσματος, κάτι σαν αυτό. Έτσι είμαι χρησιμοποιώντας το R διαδραστικά. Μπορείτε επίσης να γράψετε R σενάρια φυσικά. Βασικά σενάρια τρέχουν ακριβώς με τον ίδιο τρόπο όπως αν ήταν στη συνεδρίαση του υπολογιστή πληκτρολογώντας σε κάθε γραμμή, ένα κάθε φορά. Ας αρχίσω με ένα διάνυσμα. Ένα βέλος C 1, 2. 1, 2, 4. ΕΝΤΑΞΕΙ σίγουρα. Μπορώ να κάνω το μεγαλύτερο μέγεθος της γραμματοσειράς. Κοινό: Command-Plus CONNER HARRIS: Command-Plus. Command-Plus. Εντάξει, πώς είναι αυτό; Καλός? ΕΝΤΆΞΕΙ. Ας ξεκινήσουμε που κηρύσσει μια λίστα φορέα. Κάνετε μια, βέλος, C 1.2.4. Μπορούμε να δούμε ένα. Μην ανησυχείτε για το στήριγμα εκεί. Οι παρενθέσεις είναι έτσι αν εκτυπώσετε πολύ μεγάλο πίνακες, μπορούμε όπου και αν βρίσκεστε. Ένα παράδειγμα θα ήταν αν απλά θέλουν εύρος 2-200. Αν έχω τυπώσει ένα πολύ μακρά σειρά, οι βραχίονες Τα απλά έτσι μπορώ να συνεχίσω τη διαδρομή της οποίας δείκτη είμαστε στο αν ψάχνω μέσα από αυτό οπτικά. Έτσι ούτως ή άλλως, έχουμε ένα. Έτσι είπα πριν ότι αλληλεπιδρούν συστοιχίες πολύ ωραία με, για παράδειγμα, μοναδιαίος πράξεις όπως αυτό. Έτσι, αυτό που νομίζω ότι θα πάρετε αν πληκτρολογήσετε ένα συν 1; Ναι. Δεξιά, τώρα θα κάνω Αυτή η διαφορετική σειρά. Ας πούμε ότι β γ 20,40, 80. Λοιπόν, τι νομίζεις Αυτή η εντολή θα κάνει; Προσθέστε τα στοιχεία. Και έτσι ουσιαστικά ότι είναι αυτό που κάνει. Έτσι, αυτό είναι πολύ βολικό. Γι 'αυτό και πώς για να κάνω αυτό. ντο Είναι, ας πούμε, 6 φορές 1-10. Έτσι, αυτό που θέλω να δω περιέχεται, δεν νομίζετε; Έτσι, όλοι πολλαπλάσια των έξι. Τώρα, τι νομίζεις θα συμβεί αν το κάνω αυτό; Θα κάνω αυτό λίγο πιο σαφείς, γ, γ. Τι συμβαίνει λοιπόν, να κάνετε νομίζω, αν το κάνω αυτό; ένα συν γ. [ΜΗ ΑΚΟΥΣΤΌΣ] Κοινό: Είτε ένα λάθος ή προσθέτει μόνο τα τρία πρώτα στοιχεία. CONNER HARRIS: Όχι ακριβώς. Αυτό είναι αυτό που πήραμε. Αυτό που συμβαίνει είναι μια συντομότερη συστοιχία, ένα, πήρε εναλλάσσονται. Έτσι πήραμε 124, 124, 124. Ναι. Και βασικά, μπορείτε να προβάλετε Αυτή η συμπεριφορά πριν, ένα συν 1, ως μία υποκατηγορία αυτής της συμπεριφοράς, όπου η συντομότερη πίνακας είναι απλά ο αριθμός 1, η οποία είναι μια διάταξη ένα στοιχείο. Θέλω μόνο να πω φορέα όλων ο χρόνος αντί του πίνακα, γιατί αυτό είναι που το r τεκμηρίωσης που συνήθως κάνει. Είναι μια βαθιά ριζωμένη συνήθεια γ. Εντάξει, και έτσι τώρα έχουμε αυτό το array. Έτσι, έχουμε αυτό το array, γ. Μπορούμε να πάρουμε περίληψη στατιστικά στοιχεία σχετικά με γ, γ περίληψη. Και αυτό είναι το ωραίο. Έτσι τώρα ας κάνουμε κάποια πράγματα μήτρα. Ας πούμε ότι το m είναι ένας πίνακας. Ας το κάνει ένα από τα τρία τρία ένα. Έτσι nrows ισούται με 3, και ncols ισούται με 3. Και για τα δεδομένα ας do-- έτσι τι νομίζετε ότι αυτό πρόκειται να κάνει; Σωστά, είναι το επόμενο. Είναι nrow και ncolumn. Έτσι, αυτό που έχω κάνει είναι που έχω κήρυξε τρία επί τρία μήτρας και έχω περάσει σε μια σειρά εννέα στοιχείο. Έτσι, το λογάριθμο όλων των στοιχεία, ένα έως εννέα. Και όλες αυτές οι αξίες να συμπληρώσετε μέχρι το array-- συγνώμη; Κοινό: Αυτά είναι τα αρχεία καταγραφής με βάση το 10; CONNER HARRIS: Όχι, το αρχείο καταγραφής είναι φυσικοί λογάριθμοι, έτσι ε βάση. Ναι, αν θέλετε βάσης 10 καταγραφής, νομίζω ότι θα έπρεπε για να συνδεθείτε ό, διαιρούμενο με το log 10. Και έτσι τα δεδομένα του [δεν ακούγεται] μόνο γεμίζει τον πίνακα, έτσι ώστε πάνω προς τα κάτω, έπειτα αριστερά προς τα δεξιά. Και αν θέλετε να κάνετε κάποια άλλη σειρά, ας πούμε n είναι μήτρα. Ας κάνουμε, δεν ξέρω, 2-13. Ή θα κάνω κάτι πιο ενδιαφέρον. Θα κάνω 2 έως 4. nrow ισούται με, ας πούμε, 3. Νοοΐ ισούται με 4. Ν. Έτσι έχουμε αυτό. Και τώρα, αν θέλουμε να πολλαπλασιάσουμε αυτά, θα κάνουμε ν τοις εκατό φορές, γιατί αυτό είναι το n. Και έχουμε τα προϊόντα της μήτρας. Με τον τρόπο που, είδες πώς όταν δήλωσα n, το 2 - 4 διάνυσμα πήρε εναλλάσσονται μέχρι γέμισε το σύνολο των n; Αν ήθελε να πάρει ιδιοτιμή αποσύνθεση, αυτό είναι κάτι που μπορούμε να κάνουμε πολύ εύκολα. Μπορούμε να κάνουμε Έιγκεν n. Και έτσι αυτή είναι η πρώτη μας αντιμετωπίζουν με μια λίστα. Έτσι eigen n είναι μια λίστα με δύο κλειδιά. Αξίες, που είναι αυτή η συστοιχία εδώ. Και οι φορείς, που είναι αυτή η συστοιχία εδώ. Έτσι, αν θέλετε να εξαγάγετε, ας πούμε, αυτή η τρίτη στήλη από τη μήτρα ιδιοδιανύσματα, επειδή τα ιδιοδιανύσματα είναι στήλη φορείς. Έτσι μπορούμε να κάνουμε vec eigen σύμβολο n δολαρίου φορείς, κόμμα 3, του [δεν ακούγεται]. VEC. Είναι αυτό, όπως μπορείτε να φανταστείτε. Τότε λένε n φορές τοις εκατό φορές VEC. Έτσι, το αποτέλεσμα εδώ σίγουρα μοιάζει αν παίρναμε την τρίτη ιδιοτιμή εδώ, το οποίο αντιστοιχεί με η τρίτη ιδιοδιάνυσμα. Απλά πολλαπλασιάζονται τα πάντα στο Αυτό το ιδιοδιάνυσμα, το συστατικό-σοφός, από την ιδιοτιμή. Και αυτό είναι ό, τι θα περίμενε κανείς, γιατί αυτό είναι ό, τι είναι ιδιοτιμές. Έχει κανείς εδώ δεν λαμβάνονται γραμμική άλγεβρα; Ένα ζευγάρι άνθρωποι, ΟΚ. Απλά γυρίστε το μυαλό σας μακριά για λίγο. Και πράγματι, αν λάβουμε eigen n τιμές σύμβολο του δολαρίου 3 φορές VEC, και να πάρει το ίδιο πράγμα. Είναι διαφορετική μορφοποίηση ως μια σειρά διάνυσμα αντί ενός φορέα στήλης, αλλά είναι μεγάλη υπόθεση. Και έτσι αυτά είναι βασικά το ωραίο πράγματα που μπορούμε να κάνουμε με πίνακες, αποδεικνύεται λίστες. Θα πρέπει να αποδείξουν την ωραία πράγματα σχετικά με τις λειτουργίες, καθώς και. Ας say-- [δεν ακούγεται] λειτουργίας, κλήση ας το λει ενάντια στη λειτουργία n n squared-- στην πραγματικότητα, αυτό δεν είναι πραγματικά το καλύτερο. a, b, ένα τετράγωνο συν b. Έτσι, ένα πράγμα για λειτουργιών, και πάλι, είναι αυτοί Δεν χρειάζεται ρητές δηλώσεις επιστροφής. Έτσι, μπορείτε να το just-- τελευταία δήλωση αξιολογηθεί θα είναι η δήλωση επέστρεψε, ή η τιμή που επιστρέφεται. Έτσι, σε αυτή την περίπτωση, είμαστε μόνο αξιολόγηση μια δήλωση, ένα τετράγωνο συν β. Αυτή θα είναι η προεπιλεγμένη τιμή επιστροφής. Δεν βλάπτει ποτέ για να θέσει σε επιστρέφουν τιμές ρητά, ειδικά αν έχουμε να κάνουμε με ένα λειτουργία του πολύ περίπλοκη λογική ροή. Αλλά εσείς δεν τα χρειάζεστε. Έτσι τώρα μπορούμε να κάνουμε λειτουρ 5, 1, και Αυτό είναι βασικά αυτό που θα περίμενε κανείς. Κάτι άλλο που μπορούμε να κάνουμε, μπορούμε να κάνουμε πραγματικότητα λει β ισούται με 1, ένα ισούται 5. Έτσι, αν θέλουμε να καθορίσετε ποια σειρά εδώ, η οποία επιχείρημα αυτό με το οποίο το επιχείρημα στη λειτουργία, μπορούμε να αναστρέψετε γύρω οι τιμές αυτές όπου θέλουμε. Κοινό: Υπάρχει κάποιος λόγος υπάρχει να το γράψετε με το β ισούται, σε αντίθεση με τη χρήση μόνο οι αριθμοί και το κόμμα; CONNER Harris: Ναι, συνήθως κάνετε αυτό, αν έχετε λειτουργίες με πολλά επιχειρήματα. Αυτό μπορεί συχνά να είναι σαν σημαίες ότι θέλετε μόνο θέλετε να χρησιμοποιήσετε σε σπάνιες περιπτώσεις. Και με αυτόν τον τρόπο μπορείτε να έχετε only-- μπορεί να αναφέρεται στα συγκεκριμένα επιχειρήματα που θέλετε να χρησιμοποιήσετε μη προκαθορισμένες τιμές για, και δεν έχετε να γράψετε ένα δέσμη των σημαιών ισούται με ψευδείς μετά από αυτές. Ή μπορώ να γράψω πάλι με αυτό μια προκαθορισμένη τιμή, όπως β ισούται με 2. Και τότε θα μπορούσα να κάνω στ λει, Θα κάνω 4, 1 αυτή τη φορά. Και 17, η οποία είναι 4 τετράγωνο συν 1, όπως μπορείτε να φανταστείτε. Αλλά θα μπορούσα επίσης μόλις καλέστε αυτό με func 4, και θα πάρω 18, επειδή Δεν προσδιορίζει β. Έτσι b παίρνει την προεπιλεγμένη τιμή των 2. ΕΝΤΑΞΕΙ, έτσι τώρα αν είστε μετά μαζί με το demo, πληκτρολογήστε τη γραμμή αυτή στις εντολές σας προτρέψει και να δούμε τι έρχεται. Στην πραγματικότητα, δεν το κάνουμε αυτό. Πληκτρολογήστε αυτό. Θα πρέπει να δείτε κάτι σαν αυτό. Έτσι mtcars είναι ενσωματωμένο στα δεδομένα οριστεί για αυτή τη διαδήλωση σκοπούς που έρχεται with-- ότι έρχεται σε εξ ορισμού με τη διανομή r σας. Αυτή είναι μια συλλογή στατιστικών στοιχείων από του 1974 τεύχος του περιοδικού Motor Trend της σε έναν αριθμό διαφορετικών μοντέλων αυτοκινήτων. Έτσι υπάρχει μίλια ανά γαλόνι, cylinders-- Ξεχάσω τι disp is-- ίππους. Πιθανώς. Εάν μόνο τα αυτοκίνητα της Google ΜΤ, τότε ένα από τα πρώτα αποτελέσματα θα είναι από το επίσημα έγγραφα r και θα εξηγήσω Όλα αυτά τα πεδία δεδομένων. Έτσι, το βάρος is-- βάρος είναι το βάρος του αυτοκινήτου σε τόνους. Q sec είναι η ώρα τρίμηνο μίλια. Έτσι τώρα μπορούμε να κάνουμε κάποια πράγματα διασκέδασης MT για τα αυτοκίνητα είναι ένα πεδίο δεδομένων. Έτσι μπορούμε να κάνουμε πράγματα όπως τα ονόματα σειρά, αυτοκίνητα mt. Και αυτό είναι μια λίστα με όλες τις σειρές στην τα δεδομένα που είναι τα ονόματα που αυτοκινήτων. Μπορούμε να κάνουμε colnames, mt αυτοκίνητα αυτού. Αν το κάνετε αυτοκίνητα mt, υπο-αριθμητικό ευρετήριο, όπως 2. έχουμε τη δεύτερη στήλη από αυτό, το οποίο θα ήταν κυλίνδρους. Κοινό: Τι έκανες; CONNER HARRIS: Έχω πληκτρολογήσει mt αυτοκίνητα, παρένθεση ε, που μου έδωσε την δεύτερη στήλη έξω από τα αυτοκίνητα mt. Ή αν θέλουμε μια σειρά, μπορώ να πληκτρολογήσετε mtcars με κόμμα 2, για παράδειγμα. Άλλα γύρο 2 κόμμα, όπως αυτό. Και αυτό ισχύει στη σειρά σας. Αυτό σου δίνει μόνο μια στήλη, αλλά στήλη ως φορέας. Απλά συνειδητοποίησα τώρα ξέχασε να αποδείξουν μερικά δροσερά πράγματα σχετικά με τα διανύσματα που μπορείτε να κάνετε με τους δείκτες. Επιτρέψτε μου λοιπόν να το κάνουμε τώρα. Ας κάνουμε γ gets-- θέση αυτό σε pause-- 2 φορές 1 έως 10. Έτσι, γ είναι ακριβώς πρόκειται να είναι το διάνυσμα 2 έως 20. Μπορώ να πάρω στοιχεία σαν αυτό, c2. Μπορώ να περάσει σε ένα φορέα όπως αυτό, επιτρέψτε μου να c-- χρησιμοποιήσετε διαφορετικό όνομα από το c, όπως VEC γ. Βασικά, κάνω αυτό, έτσι ώστε δεν παίρνετε σύγχυση μεταξύ c ως λειτουργία κατασκευής φορέα, και στη συνέχεια c ως το όνομα μιας μεταβλητής. Vec παρένθεση c 4, 5, 7. Αυτό θα μου βγει το τέταρτο, πέμπτο, και επτά στοιχεία της συστοιχίας. Μπορώ να κάνω VEC, βάλτε μια αρνητική δείκτη, όπως οι αρνητικές 4. Αυτό θα μου βγει αυτό με το τέταρτο στοιχείο αφαιρεθεί. Στη συνέχεια, αν ήθελα να κάνω φέτες, Μπορώ να κάνω vec 2 έως 6. 2 παχέος εντέρου 6 είναι ακριβώς ένα άλλο φορέα, η οποία είναι 2, 3, 4, 5, 6. Φτύσει αυτό. Έτσι, ούτως ή άλλως, πίσω στα αυτοκίνητα mt. Έτσι, ας κάνουμε κάποιες υποχωρήσεις. Ας πούμε ότι το μοντέλο gets-- ας γραμμικά regress-- Δεν ξέρω. Κατ 'αρχάς ας μην αποδίδουν mtcars, φυσικά. Έτσι, [δεν ακούγεται] μοντέλο LM, ας υποχωρούν μίλια ανά γαλόνι στην περισπωμένη βάρος. Και στη συνέχεια πλαίσιο δεδομένων είναι mtcars. Έτσι περίληψη μοντέλο. Εντάξει, έτσι αυτό φαίνεται λίγο περίπλοκη. Αλλά βασικά, επειδή βλέπω ότι αν προσπαθούν να εκφράσουν μίλια ανά γαλόνι ως γραμμική συνάρτηση του βάρους, τότε έχουμε αυτή τη γραμμή εδώ, η οποία αναχαιτίζει σε 37.28. 37.28 θα είναι οι θεωρητικές μίλια ανά γαλόνι ένα αυτοκίνητο που ζυγίζει μηδέν. Και στη συνέχεια για κάθε επιπλέον τόνο, θα χτυπήσει περίπου πέντε μίλια ανά γαλόνι μακριά από αυτό. Και οι δύο αυτές συντελεστών που μπορείτε να δείτε, υπάρχουν τα τυπικά σφάλματα. Και είναι πολύ στατιστικά σημαντική. Έτσι μπορούμε να είμαστε πολύ σίγουροι για την 1 e 10 στην αρνητική 10. Έτσι 1 φορές κάτι για να το αρνητικό 10, ότι αν κάνετε ένα βαρύτερο αυτοκίνητο, θα έχει χειρότερη μίλια ανά γαλόνι. Ή μπορούμε να εξετάσουμε κάποιο άλλο μοντέλο. Όπως αντί του παλινδρόμηση αυτό σε βάρος, ας το οπισθοδρόμηση σε ημερολόγιο του βάρους, γιατί ίσως την πραγματική στάθμιση στα διανυθέντα χιλιόμετρα δεν είναι κάπως γραμμική. Αυτό μας έδωσε μια r τετράγωνο του 0,7528. Οπότε ας προσπαθήσουμε αυτό. Αυτή τη φορά ας κάνουμε μια διαφορετική μεταβλητή, πάρα πολύ. Model2. Έτσι περίληψη, model2. Εντάξει, οπότε και πάλι, εμείς πήρε καλύτερα προσαρμοσμένης γραμμής μας εδώ. Και αυτό time-- αυτό που λέει, βασικά ότι κάθε φορά που αυξήσει το βάρος της ένα αυτοκίνητο από έναν παράγοντα e χάσετε αυτό πολλά μίλια ανά γαλόνι. Και έτσι αυτή τη φορά υπολειπόμενο πρότυπο μας error it-- που δεν πειράζει, πραγματικά. Η απόκλιση σφάλματος είναι ουσιαστικά μόνο το τυπικό σφάλμα ότι έχετε αφήσει μετά να πάρει τη γραμμή τάσης. Και r τετράγωνο μας εδώ είναι 0,81, το οποίο είναι λίγο καλύτερη από ό, τι είχαμε πριν, 0.52. Και έτσι τώρα ας προσθέσουμε ένα όρο σε αυτήν την παλινδρόμηση. Ας υποχωρούν μίλια ανά γαλόνι τόσο στο αρχείο καταγραφής των βαρών και, ας το κάνουμε, q μίλια, τέταρτο χρόνο μίλι. Εντάξει, πρέπει να έχει the-- εντάξει, qsec. Qsec. Actually-- συγγνώμη, τι; Επιτρέψτε μου να καλέσετε αυτό το κάτι άλλο εκτός από model2. Επιτρέψτε μου να ονομάσουμε αυτό model3. Και έτσι τώρα μπορούμε να κάνουμε περίληψη model3. Και έτσι πάλι, αυτό είναι βασικά ό, τι μπορείτε να φανταστείτε. Έχετε θετικό σημείο τομής. Η αποτελεσματική αύξηση βάρους είναι αρνητικό. Και την αποτελεσματική αυξάνοντας τρίμηνο του χρόνου μίλι είναι θετική, αλλά αν λιγότερο από το βάρος. Τώρα διαισθητικά, μπορείτε να κάνετε αίσθηση αυτό λέγοντας σκεφτείτε σπορ αυτοκίνητα. Υπάρχει μια πολύ γρήγορη επιτάχυνση, ένα πολύ σύντομο χρόνο τέταρτο του μιλίου. Είναι, επίσης, πρόκειται να χρησιμοποιήσει περισσότερο φυσικό αέριο, ενώ οι πιο λογικό αυτοκίνητα θα να έχουν πιο αργή επιτάχυνση, υψηλότερους χρόνους τρίμηνο μιλίων, και να χρησιμοποιούν λιγότερο αέριο ,, έτσι υψηλότερη μίλια ανά γαλόνι. Εξαιρετική. Και τώρα ήρθε η ώρα να οικόπεδο κάτι τέτοιο. Ας do-- τόσο γυμνή οστά που μπορούμε να κάνουμε plots-- γιατί έχω επισυνάψει αυτό το πλαίσιο δεδομένων before-- μπορούμε να κάνουμε απλά οικόπεδα, κβ mpg. Κάντε αυτό το λίγο μεγαλύτερο. Εκεί, έχουμε ουσιαστικά μια γραφική παράσταση, αλλά τα σημεία είναι κάπως δύσκολο να δούμε σε αυτό. Δεν θυμάμαι τι ο αυτοσχέδιος σύνταξη είναι για την αλλαγή του οικοπέδου. Έτσι υποθέτω ότι αυτό θα είναι μια καλή στιγμή για να φέρει επάνω, υπάρχει ένα πολύ ωραίο ενσωματωμένη βοήθεια χαρακτηριστικό, βοήθεια εισαγωγικά λειτουργούν όνομα. Θα εμφανιστεί βασικά κάτι που θα θέλατε. Νομίζω ότι θα το κάνουμε πραγματικότητα αυτό Τύπος ισούται σ για τα σημεία οικόπεδα. Μήπως αυτό αλλάζει τίποτα; Και όχι, δεν είναι πραγματικά. Εντάξει. Για κάποιο λόγο, όταν το έκανα αυτό στον υπολογιστή μου πριν από λίγο καιρό, όλα τα σημεία της διασποράς ήταν πολύ σαφέστερη. Εν πάση περιπτώσει, είναι το είδος της διασποράς των ορατών; Υπάρχει κανείς εκεί. Λίγα εκεί, μερικά εκεί. Μπορείτε είδος του να τα δείτε, σωστά; Έτσι, αν θέλουμε να προσθέσουμε μια γραμμή βέλτιστης εφαρμογής σε αυτό το οικόπεδο εδώ, το οποίο είναι λίγο γυμνό bones-- επιτρέψτε μου να γίνει λίγο καλύτερο. Κύρια ισούται έναντι βάρους. Μίλια ανά γαλόνι. Και πάλι, μπορείτε να δείτε πόσο χρήσιμο προαιρετικό επιχειρήματα είναι εδώ με επίσης Δεν χρειάζεται να βάλει τα πράγματα σε μια Για ορισμένα επιχειρήματα με πληκτρολόγιο όταν έχετε οικόπεδα, επειδή αυτά πάρει πολλά επιχειρήματα. Xlab ισούται με το βάρος, το βάρος, τους τόνους. Εντάξει. Εντάξει, ναι, αυτή η συσκευή είναι να είναι λίγο ενοχλητικό. Αλλά μπορείτε να δείτε το είδος της εκεί, υπάρχει ένας τίτλος γραφήματος στο πλάι. Πάνω από εδώ there's-- στο κάτω μέρος εδώ υπάρχουν άξονα ετικέτες. Δεν θυμάμαι αυτοσχέδιος ποιες είναι οι εντολές ars-- τι οι λειτουργίες είναι να αυξηθούν το μέγεθος αυτών των ετικετών και των τίτλων, αλλά είναι εκεί. Και έτσι, αν θέλουμε να προσθέστε το καλύτερο κατάλληλο γραμμή, θα μπορούσαμε να κάνουμε κάτι like-- μου έχουν τη σύνταξη γραπτής εδώ. Έτσι θυμηθείτε απλά προσθέστε το μοντέλο ήταν mpg, το βάρος, mtcars. Και έτσι αν ήθελα να προσθέσω μια καλύτερη προσαρμογή γραμμή, θα μπορούσα να κάνω μια, β γραμμή μοντέλο. Και έκρηξη, έχουμε μια γραμμή βέλτιστης εφαρμογής. Είναι κάπως δύσκολο να δούμε και πάλι. Είμαι πολύ συγγνώμη για την τεχνολογικές δυσκολίες. Αλλά τρέχει βασικά επάνω αριστερά προς τα κάτω δεξιά. Και αν η κλίμακα ήταν μεγαλύτερο, θα μπορούσατε να δείτε ότι το σημείο τομής είναι ό, τι μπορείτε βρείτε από τα συνοπτικά στατιστικά στοιχεία αν πληκτρολογήσετε περίληψη μοντέλο. Εντάξει, έτσι ελπίζω ότι ο καθένας παίρνει κάτι σαν αίσθηση του τι R είναι, ό, τι είναι καλό για. Θα μπορούσατε να κάνετε πολύ καλύτερο από ό, τι οικόπεδα αυτό στο δικό σας χρόνο, αν θέλετε. Έτσι, το interface ξένων λειτουργία. Αυτό είναι κάτι που δεν είναι τυπικά καλύπτονται στις εισαγωγικές διαλέξεις ή εισαγωγικό τίποτα για r. Δεν είναι πιθανό εσείς πρόκειται να την έχουν ανάγκη. Ωστόσο, βρήκα χρήσιμο σε τα δικά μου projects στο παρελθόν. Και δεν υπάρχει κανένας καλός σεμινάριο για το σε απευθείας σύνδεση. Έτσι, είμαι απλώς πρόκειται να Σας βιαστούμε μέσα από αυτό και, στη συνέχεια, είστε ελεύθεροι να φύγουν. Και έτσι ο ξένος λειτουργική διασύνδεση είναι ό, τι που μπορείτε να χρησιμοποιήσετε για να καλέσετε για να δείτε λειτουργίες με R. Εσωτερικά, R είναι χτισμένο σε αριθμητική Γ Ε είναι ακριβώς C 64-bit κινητής υποδιαστολής αριθμητική, η οποία είναι τύπου double [δεν ακούγεται]. Και ίσως να θέλετε να κάνετε αυτό για ένα μάτσο λόγους. Για το ένα, το R ερμηνεύεται, είναι Δεν συγκεντρωθεί σε κώδικα μηχανής. Έτσι, μπορείτε να ξαναγράψετε σας εσωτερικούς βρόχους σε C και στη συνέχεια να πάρει το πλεονέκτημα της χρήσης R. Όπως είναι λίγο πιο βολικό από το Γ Έχει καλύτερα γραφικά εγκαταστάσεις και εταζέρα. Και ενώ εξακολουθούν να είναι σε θέση να πάρει κορυφή ταχύτητα έξω από τους εσωτερικούς βρόχους, η οποία είναι όπου το χρειάζεστε πραγματικά. Επαναχρησιμοποίηση υπάρχουσες βιβλιοθήκες C, ότι είναι επίσης σημαντικό. Αν έχετε κάποια βιβλιοθήκη C για ομοειδή, Δεν ξέρω, μετασχηματισμός Fourier, ή κάποια πολύ Archean Διαδικασία στατιστικών που χρησιμοποιούνται στην αστροφυσική υψηλών ενεργειών ή κάτι τέτοιο, δεν ξέρω. Αστροφυσική Υψηλών Ενεργειών Δεν είναι καν ένα think, νομίζω. Αλλά μπορείτε να το κάνετε αυτό, αντί να χρειάζεται να γράψει ένα εγγενές λιμάνι R από αυτούς. Και για the-- και ξανά, σαν να φαίνονται στις περισσότερες προεπιλεγμένες βιβλιοθήκες της R, για τα εσωτερικά, τα εσωτερικά είναι πρόκειται να χρησιμοποιήσει την ξένη λειτουργία διεπαφή πολύ μεγάλο βαθμό. Θα έχουν τα πράγματα όπως Fourier μεταμορφώνει ή τον υπολογισμό συσχέτιση συντελεστές γραμμένο σε C, και θα Απλά πρέπει R περιτυλίγματα γύρω τους. Η διεπαφή είναι ένα λίγο δύσκολο. Νομίζω δυσκολία του είναι υπερβολική σε ένα Πολλές από τις οδηγίες που θα βρείτε. Αλλά παρ 'όλα αυτά, είναι λίγο συγκεχυμένη. Και δεν ήταν σε θέση να βρείτε ένα καλό φροντιστήριο για αυτό, έτσι αυτό είναι σωστό τώρα. Και πάλι, όλο αυτό το τμήμα Είναι περισσότερο για μελλοντική αναφορά. Μην ανησυχείτε για την αντιγραφή τα πάντα τώρα. Έτσι, οι ακόλουθες οδηγίες είναι για συστήματα Unix, Linux, BSD, OS X. Δεν ξέρω πώς αυτό λειτουργεί σε Windows, αλλά σας παρακαλώ απλά δεν κάνουν σας τελικό σχέδιο για τα Windows. Μπορείτε πραγματικά δεν θέλουν να. Unix είναι πολύ καλύτερο σύνολο για περιστασιακή προγραμματισμού. Έτσι, βασικά ξένα λειτουργική διασύνδεση. Αν θέλετε να γράψετε ένα C λειτουργία για χρήση με R, πρέπει να λάβει όλα τα επιχειρήματα ως δείκτες. Έτσι, για τις τιμές της μονής, αυτό σημαίνει ότι είναι υπογραμμίσει την αξία. Για συστοιχίες, αυτό είναι ένας δείκτης προς το πρώτο στοιχείο, το οποίο είναι ό, τι ονόματα των πινάκων σημαίνουν πραγματικά. Και πάλι, αυτό είναι κάτι που θα πρέπει να έχουν όμορφη τελείως κάτω μετά σ έθεσε πέντε. Ονόματα Array είναι μόνο δείκτες με το πρώτο στοιχείο, Ο τύπος κινητής υποδιαστολής είναι διπλή. Και η λειτουργία σας πρέπει να επιστρέψει άκυρη. Ο μόνος τρόπος ότι μπορεί στην πραγματικότητα πείτε τι συνέβη R είναι τροποποιώντας τη μνήμη που έδωσε R σε αυτόν μέσω της ξένης λειτουργία διεπαφή. Έτσι έχω γράψει αυτό παράδειγμα εδώ, αυτό είναι μια λειτουργία που υπολογίζει τη χρήση dot προϊόν των δύο φορέων. Παίρνει δύο επιχειρήματα, vec1, vec2, που είναι οι ίδιοι φορείς, και στη συνέχεια n, η οποία είναι μια μήκος, γιατί και πάλι, R έχει ενσωματωμένη [δεν ακούγεται] για να μάθετε το μήκος των διανυσμάτων, αλλά δεν το κάνει C. Στην C, φορείς είναι μια αυθαίρετη οριοθετημένο κομμάτι της μνήμης. Έτσι, ο τρόπος που μπορεί να υπολογισμό γινομένων που είναι ακριβώς αυτό έξω την παράμετρο στο μηδέν και στη συνέχεια επαναλαμβάνεται σε από 1 έως n αστέρι, επειδή n είναι ένας δείκτης προς το μήκος, απλά να προσθέσω κάτι για να Αυτή η παράμετρος έξω. Και μπορεί να είναι ορθή πρακτική εάν πρόκειται να κάνετε αυτό να γράψω δύο ξεχωριστές λειτουργίες Γ. Ένας από αυτούς has-- Ένας από αυτούς μόνο παίρνει τα επιχειρήματα και τα είδη ότι θα είναι κανονικά σε C. Γι 'αυτό χρειάζεται μια σειρά επιχειρήματα ως δείκτες. Αλλά τα επιχειρήματα μίας αξίας, όπως Ν, θα παίρνει μόνο ως τιμές από αντίγραφο, χωρίς δείκτες. Και τότε δεν [Δεν ακούγεται] από το δείκτη. Και τότε μπορείτε να έχετε μια διαφορετική, βασικά, λειτουργία εξομοίωσης που ουσιαστικά χειρίζεται τις απαιτήσεις του ξένου λειτουργίας διεπαφή για εσάς. Ο τρόπος που καλούν αυτό το R είναι, για άλλη μια έχετε τη λειτουργία σας γραμμένο σε C, πληκτρολογείτε cmd shlib R, R Εντολή κοινή βιβλιοθήκη, foo τελεία γ, ή οτιδήποτε άλλο όνομα του αρχείου σας είναι, και το λειτουργικό σύστημα δεν πληρώνω στο τερματικό R. Και αυτό θα δημιουργήσει ένα βιβλιοθήκη που ονομάζεται foo dot έτσι. Και τότε μπορείτε να το φορτώσετε στο σενάριο ή διαδραστικά μας με εντολή φορτίο δίνες τελεία. Τότε υπάρχει μια λειτουργία Ε ονομάζεται dot γ. Αυτό παίρνει τα επιχειρήματα που αρχάς το όνομα της συνάρτησης σε C που θέλετε να καλέσετε. Και τότε όλες οι παράμετροι για αυτή τη λειτουργία, θα πρέπει να είναι στη σωστή σειρά. Θα πρέπει να χρησιμοποιήσετε αυτούς τους τύπους λειτουργίες εξαναγκασμό ως ακέραιος, όπως διπλή, καθώς χαρακτήρα, και ως λογική. Και στη συνέχεια, όταν επιστρέφει η λίστα, η οποία και πάλι είναι απλά μία συνδεδεμένη συστοιχία ο παράμετρος ονόματα και οι τιμές αφού η λειτουργία έχει τρέξει. Έτσι, στην περίπτωση αυτή, επειδή έχει τελεία prod επιχειρήματα vec1, vec2, και int n, έξω. Για να dot γ έχουμε τελεία Prod, το όνομα της συνάρτησης είμαστε καλώντας, vec1, vec2, είδος εκβιασμού. Το μήκος του είτε φορέα, Απλά επέλεξα vec1 αυθαίρετα. Θα ήταν πιο ισχυρή για να πω s ακέραιο μήκος λεπτά vec1, μήκους vec2. Στη συνέχεια, όπως ακριβώς και το διπλό μηδέν, γιατί εμείς δεν κάνουμε πραγματικά με νοιάζει τι πηγαίνει σε η έξω παράμετρο γιατί είμαστε ρύθμιση στο μηδέν ούτως ή άλλως. Και τότε τα αποτελέσματα θα είναι ένα μεγάλο σχετίζεται σειρά από βασικά vec1 είναι ό, vec2 είναι οτιδήποτε. Αλλά μας ενδιαφέρει έξω, έτσι μπορούμε να πάρουμε ότι έξω. Αυτό είναι πάλι μια πολύ παράδειγμα παιχνιδιών της διασύνδεσης ενός ξένου λειτουργία. Αλλά αν πρέπει να υπολογίσουμε τελεία προϊόντα των μαζικών φορέων σε βρόχους, ή αν έχετε να κάνετε κάτι άλλο σε έναν βρόχο, και δεν θέλετε να βασίζονται σε R, η οποία έχει ένα κομμάτι της εναέριας ενσωματωμένη σε αυτό, αυτό μπορεί να είναι χρήσιμο. Και πάλι, αυτό δεν είναι συνήθως ένα εισαγωγικό θέμα στο R. Δεν είναι πολύ καλά τεκμηριωμένη. Είμαι απλά επειδή συμπεριλαμβανομένων Το βρήκα χρήσιμο στο παρελθόν. Έτσι, κακές πρακτικές. Ανέφερα ότι υπάρχει μια για βρόγχο στη λειτουργία. Γενικά, δεν θα πρέπει, η γλώσσα, να μην το χρησιμοποιούν. Με βάση το πώς εφαρμόζει Ε επανάληψη εσωτερικά, μπορεί να είναι αργή. Μπορούν επίσης να εξετάσουμε μόνο άσχημο. Ε χειρίζεται φορείς πολύ όμορφα, έτσι πολλές φορές δεν χρειάζεται να το χρησιμοποιήσετε. Στη συνέχεια, μπορείτε συνήθως αντικαταστήσει έναν φορέα συχνά με αυτές τις λειτουργίες που ονομάζεται high Για λειτουργίες, Χάρτης, Μείωση, Βρείτε, ή φίλτρου. Θα δώσω μερικά μόνο παραδείγματα του τι πρόκειται να κάνει. Χάρτης είναι μια ανώτερη λειτουργία του προκειμένου, διότι παίρνει μια συνάρτηση ως επιχείρημα. Έτσι, μπορείτε να του δώσετε μια λειτουργία, μπορείτε να δώσετε μια σειρά, και θα εφαρμόζει την λειτουργία για κάθε στοιχείο της συστοιχίας και να επιστρέψει η νέα σειρά. Μείωση, ουσιαστικά δίνετε είναι ένας πίνακας, δίνετε μια συνάρτηση που παίρνει δύο επιχειρήματα. Θα τεθεί σε ισχύ την πρώτη λειτουργία, η Το πρώτο επιχείρημα με κάποια τιμή εκκίνησης. Στη συνέχεια, σε αυτό το αποτέλεσμα στο δεύτερο. Στη συνέχεια, σε αυτό το αποτέλεσμα στο τρίτο, τότε στο αποτέλεσμα στην τέταρτη. Και στη συνέχεια να επιστρέψει όταν φτάσει στο τέλος. Έτσι, για παράδειγμα, αν θέλετε να υπολογίζει το άθροισμα όλων των στοιχείων σε μια σειρά, από ό, τι θα μπορούσαμε να πούμε μειώσει με [δεν ακούγεται] μείωση προσθήκη λειτουργία, όπως και λει Α, Β, επιστρέφει ένα συν β. Και στη συνέχεια, ξεκινήστε την τιμή 0. Και όλα αυτά, μπορείτε να τα βρείτε περιγράφεται στην τεκμηρίωση του R, σε κάθε βιβλίο για λειτουργικό προγραμματισμό. Υπάρχει, επίσης, αυτή η κατηγορία λειτουργίες που ονομάζεται ισχύουν λειτουργίες, η οποία θα don't-- ότι είναι λίγο δύσκολο να το εξηγήσω, αλλά αν κοιτάξετε στο [δεν ακούγεται] κράτηση που ανέφερα στην αρχή, Τους εξηγεί πολύ καλά στην προσάρτημα του στην Ε προγραμματισμού. Περισσότερες πληροφορίες σχετικά με τις πρακτικές, προσαρτώντας σε φορείς. Ναι; Νομίζω ότι πρέπει να το διορθώσουμε. Σε αυτή την πρώτη γραμμή, VEC βέλος, ότι το βέλος δεν πρέπει να υπάρχει. Μπορείτε να εκχωρήσετε σε ένα φορέα, και πάλι, να λάβει από το μήκος του συν 1 και την ανάθεση κάποια αξία σε αυτό. Αυτό θα επεκτείνει το φορέα, ή να σας μπορεί να κάνει VEC ίσων γ, VEC newvalue. Και πάλι, αν χρησιμοποιείτε C με ένα επιχείρημα ως φορέα, η προκύπτουσα ιεραρχία παίρνει ισοπέδωσε. Έτσι θα έχετε μόνο ένα διάνυσμα ότι έχει παραταθεί κατά 1. Ποτέ μην το κάνετε αυτό. Ο λόγος για τον οποίο σας δεν θα πρέπει να το κάνετε αυτό είναι αυτό. Όταν διαθέσει ένα φορέα, το δίνει ένα ορισμένο κομμάτι της μνήμης. Αν αυξήσετε το μέγεθος αυτό φορέα, πρέπει να ανακατανείμει το διάνυσμα κάπου αλλού. Και έτσι η ανακατανομή είναι αρκετά ακριβά. Δεν θα υπεισέλθω σε λεπτομέρειες για το πώς Οι κατανεμητές μνήμη υλοποιούνται σχετικά με το επίπεδο του λειτουργικού συστήματος, αλλά παίρνει πολύ χρόνο για να βρείτε ένα νέο κομμάτι της μνήμης. Και επίσης, αν είστε ανακατανομής μέρη και μέρη προοδευτικά μεγαλύτερων κομμάτια, θα καταλήξετε με κάτι που ονομάζεται κατακερματισμού της μνήμης, όπου η διαθέσιμη μνήμη είναι διαιρείται σε πολλά μικρά τεμάχια στο σημείο κατανεμητές μνήμη του άποψη. Και αυτό γίνεται όλο και πιο δύσκολο να βρει μνήμη για άλλα πράγματα. Έτσι, αντ 'αυτού, αν χρειάζεται να το κάνετε αυτό, αν θα πρέπει να αναπτυχθεί ένα φορέα από το ένα άκρο στο επόμενο, αντί του προσαρτώντας σε αυτό συνεχώς, θα πρέπει να προ-κατανείμει. VEC βέλος, μήκους διανύσματος ισούται με 1.000, ή οτιδήποτε άλλο. Και τότε μπορείτε να ορίσετε μόνο στις αξίες ενός του φορέα ένας χρόνος αφότου έχετε να διατεθεί για μία φορά. Έτρεξα σε αυτό, και πάλι, το καλοκαίρι η δουλειά μου όταν έγραφα ΕΡΑ απόκλιση εξίσωση λύτης. Δεν συμβολική αριθμητική. Η ιδέα είναι ότι από τη στιγμή που έχετε μία τιμή για τη λύση σας, μπορείτε να χρησιμοποιήσετε ότι για να υπολογιστεί το επόμενο. Έτσι, το φυσικό μου αφελής κλίση ήταν να πούμε, εντάξει, γι 'αυτό θα ξεκινήσει με ένα φορέα αυτό είναι μια σημαντική αξία. Υπολογίστε ότι από την επόμενη τιμή ότι πηγαίνει επάνω μου διάνυσμα λύσης, και τον επισυνάπτει. Δημιουργήστε κάτι άλλο, να προσαρτήσει αυτό. Πήγε πολύ, πολύ αργά. Και μόλις κατάλαβα ότι αυτό και άλλαξα το σύστημα μου από την επισύναψη σε αυτόν τον φορέα σαν 10.000 έως 100.000 φορές, σε μόλις προ-διάθεση ενός φορέα και απλά τρέχει με αυτό. Πήρα πάνω από 1.000 φορές την ταχύτητα επάνω. Έτσι, αυτό είναι ένα πολύ κοινό παγίδα για τον προγραμματισμό Ε. Αν πρέπει να δημιουργήσουν ένα φορέα κομμάτι από το κομμάτι, προ-κατανείμει. Ένα άλλο κοινό ταξίδι up-- αυτή είναι η τελευταία μου διαφανειών, δεν worry-- είναι λάθος χειρισμό. R, για να είμαι ειλικρινής, δεν πραγματικά κάνει αυτό πολύ καλά. Υπάρχουν πολλά προβλήματα που μπορεί να παρουσιαστούν. Για παράδειγμα, αν έχετε μια σειρά ή ένας φορέας από μια συνάρτηση ότι ανέμεναν μια ενιαία τιμή να έρθει από, ή το αντίστροφο, και ότι θα περάσει σε μια λειτουργία που Γράψατε αναμένει μια ενιαία τιμή, ότι μπορεί να είναι ένα πρόβλημα. Ορισμένες λειτουργίες null επιστρέφουν όπως κάνει, για παράδειγμα, ανάγνωση από ένα ανύπαρκτο κλειδί σε μια λίστα. Αλλά null δεν αρέσει C όπου κι αν προσπαθήσετε να διαβάσετε από ένα παλιό δείκτη, [δεν ακούγεται] σε κενό δείκτη, το SEG απλά σφάλματα και αν είστε στο πρόγραμμα εντοπισμού σφαλμάτων σας, σας λέει ακριβώς πού βρίσκεστε. Αντ 'αυτού, θα null do-- λειτουργίες θα κάνει απρόβλεπτα πράγματα αν είναι μηδενική χέρια. Όπως και αν είστε παρέδωσε max μηδενική, αυτό θα σας δώσει αρνητικό άπειρο. Και έτσι, ναι. Και έτσι έγινε αυτό για μένα μια φορά, όταν είχα άλλαξε ένα σωρό τομείς στη λίστα μου δομή αμέσως χωρίς αλλαγή τους αλλού όταν διάβαζα από αυτούς. Και τότε πήρα όλα τα είδη των τυχαίων Αποτελέσματα άπειρο αναφύονται και δεν έχω ιδέα από πού προέρχονταν. Και, δυστυχώς, δεν υπάρχει καμία πραγματική λειτουργία strict R όπου μπορείτε να πείτε αν κάτι μοιάζει να είναι ένα λάθος, μόλις σταματήσει εκεί για να είμαι πειθαρχημένοι και να το διορθώσουμε αυτό. Ωστόσο, υπάρχει κάτι που ονομάζεται στάση αν όχι. Αυτό είναι ισοδύναμο με διεκδικούν Γ, αν έχετε μιλήσει γι 'αυτό. Δεν νομίζω C διεκδικούν είναι ένα θέμα διάλεξης, αλλά ηγέτη τμήμα σας μπορεί να έχουν περάσει πάνω από αυτό. Και αν δεν σταματήσει να παίρνει βασικά οποιοδήποτε κατηγόρημα, έτσι ώστε οποιαδήποτε δήλωση ότι μπορεί να είναι αληθείς ή ψευδείς. Και αν είναι ψευδής, να σταματήσει το πρόγραμμά του. Θα σας λέει ακριβώς τι γραμμή ήταν και τι κατάσταση απέτυχε. Και αυτό πολύ χρήσιμο, για παράδειγμα, έλεγχος λογική, εισόδους λειτουργία. Έτσι, εάν έχετε μια συνάρτηση και περιμένετε, ας πούμε, αν πρέπει να μου δώσει μια ημερομηνία, θέλω οι ημερομηνίες είναι απλά ένα διάνυσμα μήκους 1 και κάπου μεταξύ 1 και 31. Και αν όχι, ξέρω κάτι πήγε στραβά. Και μπορώ να επιλέξω να σταματήσει εκεί πριν από αυτό έχει τυχαία αλυσιδωτές επιπτώσεις με κωδικό ότι είναι πιο δύσκολο να εντοπίσει μέσα. Έτσι αυτό είναι ένα δυνατό χρησιμοποιήσετε για στάση, εάν όχι. Εν πάση περιπτώσει, εντάξει. Έτσι, αυτό είναι το τέλος. Σας ευχαριστώ πολύ που ήρθατε. Είμαι ερασιτέχνη σε αυτό. Έτσι, συγνώμη αν έχετε βαρεθεί ή σύγχυση ή ό, τι έχετε. Είμαι στην ευχάριστη θέση να πάρουμε τις ερωτήσεις μέσω e-mail σε connorharris@college.harvard.edu. Το ίδιο ισχύει και για όλους βλέποντας αυτό το live ή αργότερα. Επίσης, αν και δεν είμαι ένα TF, είμαι επίσης πολύ πρόθυμοι να χρησιμεύσει ως μια ανεπίσημη σύμβουλος για όποιον χρησιμοποιώντας R σε ένα τελικό σχέδιο. Αν θέλετε να ότι, τότε μιλάμε μόνο για TF σας και στη συνέχεια να γράψει μου ένα email έτσι Ξέρω τι εργάζεστε και έτσι μπορώ να δημιουργήσει συνάντηση φορές μαζί σας, αν θέλετε. Έτσι και πάλι, σας ευχαριστώ πολύ. Ελπίζω να σας άρεσε. Κοινό: [δεν ακούγεται]. CONNER HARRIS: Φυσικά. Κοινό: Τι είδους του έργου θα χρησιμοποιήσει ένας φοιτητής CS R για; CONNER HARRIS: Έτσι, αν δεν είστε κάνετε κάτι που είναι καθαρά στην εξόρυξη δεδομένων, για παράδειγμα, και εκεί είναι πολλά πράγματα θα μπορούσατε να κάνετε με αυτό με τα δεδομένα εξόρυξης και μηχανική μάθηση. Μπορεί να θέλετε να χρησιμοποιήσετε για το R ένα συστατικό του κάτι. Έχω μεγαλώσει, αρχικά, το παράδειγμα του αν είστε γραπτώς μια ιστοσελίδα και θέλετε να εκτελέσετε την αυτοματοποιημένη στατιστική ανάλυση των server σας κούτσουρα σε μια συγκεκριμένη ώρα κάθε μέρα, ότι θα μπορούσε να είναι κάτι που είναι πολύ εύκολο να το κάνουμε μέσα σε μόλις μια σύντομη Ε σενάριο που μπορείτε να προγραμματίσετε να τρέχει κάθε βράδυ, για παράδειγμα. Και είμαι βέβαιος ότι, εάν υπάρχει κάποιος λόγος που θα Θέλετε στατιστικές ή δυνατότητες γραφικών παραστάσεων και να έχουν αυτή την κίνηση αυτόματα αντί έχουν να αλληλεπιδράσουν με τα πράγματα στο Excel, Για παράδειγμα, αυτό είναι κάτι ίσως να θέλετε να χρησιμοποιήσετε για την Ε. Έτσι άλλες ερωτήσεις πριν φύγω; Κανένα? Εντάξει, καλά, πάλι, ευχαριστώ πάρα πολύ που ήρθατε.