CONNOR HARRIS: Still I ვფიქრობ, რამდენიმე საინტერესო ვიდეო მიერ წარმოებული პროფესიული კონსულტაცია რომელიც იყენებს R ბევრი მის მუშაობაში. მთხრობელი: რა არის უკან სტატისტიკას, ანალიტიკა და თვალსაჩინოება რომ დღევანდელი brightest მონაცემები მეცნიერები და ბიზნეს-ლიდერები დაეყრდნოს იმისათვის, რომ ძლიერი გადაწყვეტილებებს? თქვენ შეიძლება ყოველთვის არ დანახვა. მაგრამ ეს არ არსებობს. ეს ე.წ. R, ღია R-- სტატისტიკური პროგრამირების ენა რომ მონაცემები ექსპერტები მსოფლიოში გამოყენების გამო ყველაფერი საწყისი რუკების ფართო სოციალური და მარკეტინგული ტენდენციები ონლაინ განვითარებადი ფინანსური და კლიმატის მოდელები, რომ დავეხმაროთ მართოს ჩვენი ეკონომიკა და თემებში. მაგრამ რა არის R და სად R დაიწყოს? ისე თავდაპირველად, R დაიწყო აქ ორი პროფესორი ვისაც სურდა უკეთესი სტატისტიკური პლატფორმა მათი სტუდენტი. ასე რომ, ისინი შეიქმნა ერთი მოდელირებული მას შემდეგ, რაც სტატისტიკური ენის S. ისინი ერთად მრავალი სხვა, შრომობს და გამოყენებით R, შექმნა ინსტრუმენტები R და მოძიებაში ახალი განაცხადების R ყოველდღე. მადლობა, რომ ეს არის მსოფლიო თანამეგობრობამ ძალისხმევა, R იზრდებოდა ათასობით მომხმარებლის შექმნა ბიბლიოთეკების აშენებული რათა გაზარდოს R ფუნქციონირება და გულშემატკივარი- sourced ხარისხის დადასტურება და მხარდაჭერა ყველაზე აღიარებული ინდუსტრიის ლიდერები ყველა სფეროში, რომ იყენებს რ რომელი არის დიდი, რადგან R არის საუკეთესო რას აკეთებს. იმედისმომცემი ექსპერტები სწრაფად და ადვილად ინტერპრეტაცია, ურთიერთქმედება, და ვიზუალურად მონაცემები გვიჩვენებს მათი სწრაფად მზარდი საზოგადოება R მომხმარებლებს მსოფლიოში და ვხედავ, როგორ ღია წყარო R აგრძელებს აყალიბებს მომავალი სტატისტიკური ანალიზი და მონაცემების მეცნიერება. CONNOR HARRIS: OK, დიდი. ასე რომ, ჩემი საკუთარი პრეზენტაცია იქნება ცოტა უფრო ფხიზელი. ეს არ გულისხმობს, რომ ბევრი საინტერესო ფონური მუსიკა. მაგრამ, როგორც ვნახეთ, ვიდეო, R არის ერთგვარი ზოგადი მიზანი პროგრამის ენაზე. მაგრამ ეს იყო ის, ძირითადად, სტატისტიკური მუშაობა. ასე რომ, ის განკუთვნილია სტატისტიკა, მონაცემების ანალიზი, მონაცემების მოპოვება. და ასე რომ თქვენ ხედავთ, ამ ბევრი დიზაინი არჩევანი, რომ შემქმნელებს R გააკეთა. ის განკუთვნილია ძირითადად, ადამიანები, რომლებიც არ ექსპერტები პროგრამირების, რომელიც მხოლოდ კრეფა პროგრამირების მხარეს, რათა მათ შეუძლიათ მათი მუშაობა სოციალურ მეცნიერებათა და სტატისტიკის ან რასაც. მას აქვს ძალიან ბევრი მნიშვნელოვანი განსხვავებები C. მაგრამ სინტაქსი და პარადიგმების რომ იგი იყენებს ფართოდ იგივე. და თქვენ უნდა გრძნობენ საკმაოდ ბევრი სახლში უფლება off bat. ეს იმპერატიული ენაზე. არ ინერვიულოთ ძალიან ბევრი შესახებ, რომ თუ თქვენ არ იცით, ტერმინი. მაგრამ აქ არის განსხვავება შორის აუცილებელია, დეკლარაციული, და ფუნქციური. აუცილებელია, მხოლოდ იმას ნიშნავს, რომ თქვენ, რათა განცხადებები, რომ ძირითადად ბრძანებები. და მაშინ, თარჯიმანი ან კომპიუტერული შემდეგნაირად მათ ერთი. ეს სუსტად აკრეფილი, არსებობს არ ტიპის დეკლარაციების რ და მაშინ ხაზები შორის სხვადასხვა სახის ცოტა უფრო ფხვიერი, ვიდრე ისინი C, მაგალითად. და როგორც უკვე ვთქვი არსებობს ძალიან ვრცელი ობიექტები ამისთვის გრაფიკული, სტატისტიკური ანალიზი, მონაცემების მოპოვება. ეს ორივე ჩაშენებული ენის და, როგორც ვიდეო განაცხადა, ათასობით მესამე მხარის ბიბლიოთეკები, თქვენ შეგიძლიათ ჩამოტვირთოთ და გამოიყენოთ უფასოა ძალიან ფხვიერი ლიცენზიის პირობებს. ზოგადად, მე რეკომენდაციას რომ შევხედოთ ეს ორი წიგნი თუ თქვენ იმუშავებს R. ერთი მათ ოფიციალური R დამწყები უხელმძღვანელებს. ის მხარს უჭერს, ძირითადი დეველოპერები რ თქვენ შეგიძლიათ გადმოწეროთ ერთხელ, უფასო დააკისროს და სამართლებრივად იმ ლინკი არსებობს. ყველა ეს სლაიდები ვაპირებთ წასვლა ინტერნეტში, on CS50 ნახვა მას შემდეგ, რაც ამ საქმეს. ასე რომ არ უნდა ასლი რამ ქვემოთ გამალებით. მეორე არის სახელმძღვანელოს მიერ Cosma Shalizi, ვინ არის სტატისტიკა პროფესორი Carnegie Mellon, ე.წ. დამატებითი მონაცემები ანალიზის საწყისი დაწყებითი თვალსაზრისით. ეს არ არის პრინციპულად რ წიგნი. ეს არის სტატისტიკური წიგნი და ეს არის მონაცემთა ანალიზი წიგნი. მაგრამ ეს ძალიან ხელმისაწვდომი ადამიანები, რომლებიც აქვს მცირედი სტატისტიკა ცოდნა. მე არასოდეს მიღებული ფორმალური რა თქმა უნდა. მე მხოლოდ ის ვიცი ბიტი და ცალი სხვადასხვა მომიჯნავე საგნები რომ მე აღებული კურსები. და მე შეძლო ესმის კარგად. ყველა მოღვაწეები გეძლევათ რ ისინი მზადდება R და აქვთ კოდი განცხადების ქვემოთ თითოეული ფიგურა, რომ გითხრათ, თუ როგორ, რათა თითოეული ფიგურა R კოდი. და ეს არის ძალიან სასარგებლო, თუ თქვენ ცდილობთ მიბაძოს ზოგიერთი მოღვაწის ხედავთ წიგნი. ისევ და ისევ უფასო ჩამოტვირთვა stat.cmu.edu/cshalizi/ ბოდიში, რომ უნდა სლეში tilde cshalizi. მე დარწმუნდით გამოსწორებას, რომ როდესაც ოფიციალური სლაიდები ახვიდეთ. / ADAfaEPoV, რომელიც მხოლოდ აკრონიმი წიგნის სათაური. ასე რომ, ზოგადად caveats-- R აქვს ბევრი შესაძლებლობები. მე მხოლოდ აპირებს შეძლებს დაფაროს ზედაპირზე ბევრი რამ. გარდა ამისა, პირველი ნაწილი სემინარი იქნება რაღაც მონაცემების ნაგავსაყრელი. მე საკმაოდ ვწუხვარ, რომ. ძირითადად, მე ვაპირებ წარმოგიდგინოთ ბევრი რამ უფლება off bat, აპირებს რაც შეიძლება სწრაფად. და მაშინ მივიღებთ, რომ სახალისო ნაწილი, რომელიც დემო სადაც შემიძლია გაჩვენოთ ყველაფერი რომ ჩვენ ვისაუბრეთ ეკრანზე. და თქვენ შეგიძლიათ ითამაშოთ გარშემო თქვენი საკუთარი. ასე რომ, არ იქნება ბევრი ტექნიკური პერსონალი დააგდეს აქ. არ ინერვიულოთ შესახებ გადაწერა ყველა ქვემოთ. იმის გამო, რომ, თქვენ შეგიძლიათ მიიღოთ ყველა პერსონალის CS50 ნახვა მოგვიანებით. და B, ეს ნამდვილად არ არის, რომ მნიშვნელოვანია გვემახსოვრება ეს სლაიდები. ეს უფრო მნიშვნელოვანია, რომ თქვენ ზოგიერთი ინტუიციური დაწესებულებაში მას და რომ მოდის უბრალოდ თამაშობენ გარშემო. რატომ გამოვიყენოთ R? ძირითადად, თუ თქვენ გაქვთ პროექტი, რომელიც მოიცავს სამთო დიდი მონაცემები კომპლექტი, მონაცემთა ვიზუალიზაცია, თქვენ უნდა გამოვიყენოთ R. თუ თქვენ აკეთებს რთული სტატისტიკური ანალიზი, რომ რთული იქნებოდა, რომ Excel, მაგალითად, ეს იქნებოდა ასევე good-- ასევე თუ თქვენ აკეთებთ სტატისტიკური ანალიზი, რომელიც ავტომატური. მოდით, ვთქვათ, თქვენ შენარჩუნების ნახვა. და გსურთ წაკითხული სერვერზე ჟურნალი ყოველ დღე და კომპილაციის ზოგიერთი სია, როგორიც ზედა ქვეყანას, რომ თქვენი მომხმარებლების მოდის, ზოგიერთი შემაჯამებელი სტატისტიკა, თუ რამდენად ხანგრძლივი ისინი ატარებენ თქვენი საიტი ან რასაც. და გსურთ აწარმოებს ამ ყოველდღე. ახლა, თუ რას აკეთებს ამ Excel, ნეტავ უნდა წავიდეს თქვენს სერვერზე ჟურნალი, იმპორტი რომ შევიდა Excel მონაცემთა ცხრილების, აწარმოებს ყველა ანალიზი ხელით. R, შეგიძლიათ უბრალოდ დაწერეთ ერთი სცენარი. დანიშნოს იგი აწარმოებს ყოველდღე თქვენი ოპერაციული სისტემა. და შემდეგ ყოველ საღამოს 2:00 AM, ან როცა თქვენ დანიშნოს იგი აწარმოებს, ეს გამოიყურება თქვენი ინტერნეტ ტრაფიკი, რომ დღეს. და მაშინ მომდევნო დღეს, თქვენ აქვს ამ გამოუყენებელი, ახალი ანგარიში ან რასაც ყველა იმ ინფორმაცია თქვენ სთხოვა. ასე რომ, ძირითადად R არის Cisco პროგრამირების წინააღმდეგ Cisco ანალიზი. წინასწარი კეთდება. მოდით მოხვედრის რეალური რამ. ასე რომ, არსებობს სამი რეალური სახის ენაზე. არსებობს რიცხვითი ტიპის. არსებობს ერთგვარი განსხვავება რიცხვებით და მცურავი ქულა, მაგრამ ნამდვილად არ. არსებობს ხასიათი ტიპი, რომელიც სიმები. და იქ ლოგიკური ტიპი, რომელიც Booleans. თქვენ შეგიძლიათ დააკონვერტიროთ შორის სახის გამოყენებით ამ ფუნქციებს, როგორც რიცხვითი, როგორც ხასიათი, როგორც ლოგიკური. თუ თქვენ მოვუწოდებთ, მაგალითად, როგორც რიცხვითი სიმში, იგი ეცდება, წავიკითხე, რომ string როგორც რაოდენობის, ისე რომ a2i და scanf გაკეთება, და C. თუ თქვენ მოვუწოდებთ როგორც რიცხვითი ჭეშმარიტი ან ცრუ ეს იქნება კონვერტირება 1 ან 0. თუ თქვენ მოვუწოდებთ როგორც ხასიათი არაფერი, იგი ყველაფერს გარდაქმნას, რომ შევიდა სიმებიანი წარმომადგენლობა. და მაშინ არსებობს ვექტორები და მატრიცების. ასე რომ, ვექტორები, ძირითადად, 1 განზომილებიანი მასივები. ისინი, რაც ჩვენ მოვუწოდებთ კოლექტორები წელს C. მატრიცების, 2 განზომილებიანი მასივები. და შემდეგ უმაღლესი განზომილებიანი მასივები შეგიძლიათ აქვს 3, 4, 5 ზომები ან რასაც რიცხვითი ღირებულებებს, სიმები, ლოგიკური ღირებულებებს. თქვენ ასევე სიები, რომლებიც სახის ასოციაციურ მასივში. მე შეღწევას, რომ ცოტა. ასე რომ, ერთი მთავარია რომ ვიზიტებს ადამიანი წელს R ის არის, რომ არ არსებობს რეალური, სუფთა ატომური ტიპის. იქ არ არის ფაქტობრივი განსხვავება ნომერი, როგორც რიცხვითი მნიშვნელობა, და სიაში რიცხვითი ღირებულებებს. რიცხვითი მნიშვნელობების რეალურად ისევე როგორც ვექტორები სიგრძე 1. და ეს აქვს მთელი რიგი მნიშვნელოვანი გავლენა. ერთ-ერთი, ეს იმას ნიშნავს, რომ შეგიძლიათ გააკეთოთ რამ ძალიან მარტივად, რომ ჩავრთოთ როგორიცაა დასძინა ნომრის ვექტორი. R ძირითადად ფიგურა გარეთ, რას ნიშნავს, რომ. და მე კიდევ, რომ მეორე. ეს იმას ნიშნავს, რომ არ არსებობს გზა ტიპის checker-- იმდენად, რამდენადაც რომ რამე მაგდაგვარს არსებობს R-- ვუთხრა როდესაც თქვენ გავიდა ერთი მნიშვნელობა როდესაც იგი იმედოვნებს მასივი, ან პირიქით. და რომ შეიძლება გამოიწვიოს რაღაც უცნაური პრობლემები რომ მე შეუვარდნენ, როდესაც მე გამოყენებით R დროს ჩემი საზაფხულო სამუშაო. და არ არსებობს შერეული ტიპის მასივები. ასე რომ თქვენ არ აქვს მასივი იყვნენ პირველი ელემენტები, მე არ ვიცი, სიმებიანი "ჯონ" და მეორე ელემენტი ნომერი 42. თუ თქვენ ცდილობენ ამის გაკეთება, მაშინ თქვენ მიიღებთ ყველაფერი უბრალოდ მოაქცია სიმებიანი. ასე რომ, ჩვენ გვაქვს სიმებიანი იოანე, string 42. ასე რომ, უჩვეულო სინტაქსური features-- ყველაზე რ სინტაქსი ძალიან ჰგავს C. არსებობს რამდენიმე მნიშვნელოვანი განსხვავებები. Typing ძალიან სუსტია. ასე რომ არ არსებობს ცვლადი დეკლარაციებს. დავალება იყენებს უცნაური შეცდომა ოპერატორი ნაკლები დეფისი. კომენტარები არიან hash ნიშნის. ვფიქრობ, ახლა დღის განმავლობაში ჩვენ მას hashtag მიუხედავად იმისა, რომ ეს არ არის ნამდვილად accurate-- არა ორმაგი ხაზი. Modular ნარჩენები არიან %% ნიშნები. მთელი განყოფილება არის% /% რომელიც ძალიან მძიმე წასაკითხი, როდესაც ის დაპროექტებული ეკრანზე. თქვენ შეგიძლიათ მიიღოთ მერყეობს რიცხვებით წერტილი. ასე რომ, 2,5 მოგცემთ ვექტორი ყველა ნომრები 2 მეშვეობით 5. კოლექტორები ერთი ინდექსირებული, რომელიც ხრახნები ბევრი ადამიანი up, თუ ისინი უფრო ტიპიური პროგრამირების ენების, C, სადაც ყველაზე რამ არის ნულოვანი ინდექსირებული. ისევ და ისევ, ეს არის, სადაც R მემკვიდრეობის როგორც ენის, როგორც არ პროფესიონალი პროგრამისტების მოდის. თუ თქვენ სოციოლოგი ან ეკონომისტი ან რამე და თქვენ ცდილობთ გამოიყენოთ R ძირითადად როგორც კითხულობს თქვენი უფრო მნიშვნელოვანია პროფესიული მუშაობა, თქვენ ვაპირებთ ერთი ინდექსირებას ცოტა უფრო ბუნებრივი. იმიტომ, რომ თქვენ დაიწყოს დამთვლელი 1 ყოველდღიურ ცხოვრებაში, არ არის 0. იყიდება მარყუჟების, ეს არის მსგავსი foreach მშენებლობა PHP, რომელიც თქვენ მიიღებთ ვისწავლოთ შიგნით საკმაოდ მალე. რა არის ღირებულება ვექტორი და მაშინ შეგვიძლია გავაკეთოთ რამ მნიშვნელობა. აუდიტორია: ეს ამუშავება ლექცია. CONNOR HARRIS: ოჰ, რომ ამუშავება ლექცია, შესანიშნავი. აუდიტორია: დავალება, არის ის, უნდა აღვნიშნო, მარჯვნიდან მარცხნივ? CONNOR HARRIS: მარჯვნიდან მარცხნივ, დიახ. შეგიძლიათ წარმოიდგინოთ, რომ მას, როგორც ღირებულება მარჯვენა ჩატენეს ცვლადი მარცხნივ. აუდიტორია: OK. CONNOR HARRIS და ბოლოს ფუნქცია სინტაქსი არის ცოტა უცნაურია. თქვენ უნდა ფუნქციის სახელი foo, ენიჭება ამ სიტყვით ფუნქცია, მოყვება ყველა არგუმენტები და შემდეგ ორგანოს ფუნქცია შემდეგ. ისევ და ისევ, ეს ყველაფერი შეიძლება როგორც ჩანს, ცოტა უცნაურია. ისინი გახდეს მეორე ბუნება, მას შემდეგ, რაც თქვენ მუშაობა ენის ცოტა. ასე რომ, ვექტორები, გზა თქვენ მშენებლობას ვექტორი არის თუ არა ტიპი C, რომელიც სიტყვით, მაშინ ყველა ნომრები გსურთ და სიმები ან რასაც. არგუმენტები ასევე შეიძლება ვექტორები. მაგრამ შედეგად მასივი იღებს გაბრტყელებული. ასე რომ თქვენ არ აქვს მასივები, სადაც ზოგიერთი ელემენტები ერთ ნომრები და ზოგიერთი ელემენტები კოლექტორები თავს. ასე რომ, თუ თქვენ ცდილობენ მშენებლობა array იყო პირველი ელემენტი 4 და მეორე ელემენტი არის მასივი 3,5 თქვენ უბრალოდ სამი ელემენტების მასივი, 4,3,5. ისინი არ შეიძლება იყოს შერეული ტიპის. თუ თქვენ ცდილობენ წაკითხვის ან ჩაწერის გარეთ ფარგლებში ვექტორი თქვენ მიიღებთ ამ ღირებულება მოუწოდა na a რომელიც დგას დაკარგული მნიშვნელობა. ეს არის განკუთვნილი ისევე როგორც სტატისტიკოსები, რომელიც ვმუშაობთ არასრული კომპლექტი. თუ ვრცელდება ფუნქცია, რომელიც უნდა მიიღოს მხოლოდ ერთი ნომერი მასივი შემდეგ, რაც თქვენ მიიღებთ არის, ფუნქცია განვსაზღვრავთ მეტი მასივი. ასე რომ, თუ თქვენი ფუნქცია მოდით ვთქვათ, იღებს ნომერი და ბრუნდება ის მოედანზე. თქვენ ვრცელდება, რომ მასივი 2,3,5 რაც თქვენ მიიღებთ არის მასივი 4,9,25. და ეს არის ძალიან სასარგებლო იმიტომ, რომ ეს ნიშნავს, რომ თქვენ არ უნდა დაწეროს მარყუჟების აკეთებს ძალიან მარტივი რამ, როგორიცაა გამოყენებით ფუნქცია ყველა წევრს მონაცემები კომპლექტი. რომელ თუ თქვენ მუშაობის დიდი მონაცემები კომპლექტი, რაც თქვენ უნდა გააკეთოთ ბევრი. ორობითი ფუნქციები გამოყენებითი შესვლის შესვლის. მე შეღწევას, რომ. შეგიძლიათ მათ მასივები ან ვექტორები ერთად კვადრატულ ფრჩხილებში. ასე რომ ვექტორი სახელი კვადრატულ ფრჩხილებში 1 მოგცემთ პირველ ელემენტს. Vector სახელი კვადრატულ ფრჩხილებში 2 მოგცემთ მეორე ელემენტს. თქვენ შეგიძლიათ გაიაროს ვექტორი მაჩვენებლების და თქვენ დავუბრუნდეთ ძირითადად sub ფაქტორი. ასე რომ შეგიძლიათ გააკეთოთ ვექტორი სახელი ფრჩხილებში C, 2,4 და თქვენ გავიდნენ ვექტორი შემცველი მეორე და მეოთხე ელემენტების მასივი. და თუ გსურთ მხოლოდ სწრაფი შემაჯამებელი სტატისტიკა ვექტორული როგორიცაა interquartile სპექტრი, მედიანა, მაქსიმუმ, რასაც, შეგიძლიათ უბრალოდ აკრიფოთ შემაჯამებელი ვექტორი სახელი და მიიღოთ, რომ. ეს არ არის სასარგებლო პროგრამირების, მაგრამ თუ თქვენ ვთამაშობდი გარშემო მონაცემები კომპლექტი, ეს მოსახერხებელი. Matrices-- ძირითადად უმაღლესი განზომილებიანი მასივები. მათ აქვთ სპეციალური notation სინტაქსი. Matrix მასივი, რომელიც იღებს სავსე შიგნით ბოდიში, matrix მონაცემები, სტრიქონების რაოდენობა, მწკრივების რიცხვი. როდესაც თქვენ გაქვთ ზოგიერთი მონაცემებით, ის ავსებს მასივი ძირითადად აპირებს ზედა და ქვედა პირველი. მაშინ მარცხნიდან მარჯვნივ. ასე რომ, როგორიცაა, რომ. და R ააშენა matrix გამრავლების, სპექტრალური რღვევა, diagonalization, ბევრი რამ. თუ გსურთ უმაღლესი განზომილებიანი მასივები, ასე 3, 4, 5, ან რასაც ზომები შეგიძლიათ გააკეთოთ, რომ. სინტაქსი მასივი dim ტოლია c, მაშინ სიაში ზომები. ასე რომ, თუ გსურთ 4 განზომილებიანი მასივი ზომები 4, 7, 8, 9, მასივი, dim ტოლია c (4,7,8,9). თქვენ შედიხართ ერთ ღირებულებები ფრჩხილებში პირველი შესვლის მძიმით მეორე ჩანაწერში. თქვენ შეგიძლიათ მიიღოთ მთელი ნაჭერი სტრიქონების ან სვეტების. ამ არასრული სინტაქსი ეს უბრალოდ რიგის ნომერი მძიმით ან მძიმით სვეტი ნომერი. ასე რომ სიები ერთგვარი ასოცირებული მასივი. მათ აქვთ საკუთარი სინტაქსი აქ. ისევ და ისევ არ გამალებით დააკოპირეთ ყველა ქვემოთ. ეს არის მხოლოდ იმიტომ, რომ ადამიანი გადის სლაიდები შემდეგ გვაქვს ეს ყველაფერი ლამაზი მითითება. და ეს იქნება ძალიან ბუნებრივი ერთხელ მე რეალურად გავლა demos. ასე რომ ჩამოთვლილია ძირითადად უკავშირდება მასივები. თქვენ შეგიძლიათ თქვათ ღირებულებები სია სახელი, დოლარის ნიშანი, გასაღები. ასე რომ, თუ თქვენს სიაში დაასახელა foo, მაშინ თქვენ შეგიძლიათ თქვათ, რომ ეს იგრძნობა. თქვენ შეგიძლიათ მიიღოთ მთელი ძირითადი ღირებულების წყვილი გავლით კვადრატული ფრჩხილი ინდექსი. თუ თქვენ წაკითხვის არარსებული გასაღები, თქვენ მიიღებთ null. ეს იქნება არა შეცდომა. საქმე ის არის, R გააკეთებს, ბევრი null როგორც მას შეუძლია. ეს იმას ნიშნავს, რომ, თუ თქვენ არ ელოდა მიიღოს null გარეთ ზოგიერთი სია წაკითხული, თქვენ მიიღეთ რაიმე არაპროგნოზირებადი შეცდომები უფრო ქვემოთ ხაზი. ეს მოხდა ჩემს საზაფხულო სამუშაოს, როცა მე გამოყენებით R სადაც მე შეიცვალოს თუ როგორ გარკვეული სია განისაზღვრა ერთ ადგილზე მაგრამ არ შეცვლის შემდეგ, კოდი, რომელიც წაიკითხა ღირებულებების იგი. ასე რომ, რა მოხდა, მე ვიყავი კითხულობს null ღირებულებების ამ სიაში, გავლის მათ ფუნქციებს, და რომ ძალიან დაბნეული როდესაც მე მივიღე ყველა სახის შემთხვევითი infinities cropping up ამ ფუნქციას. იმიტომ, რომ თუ ვრცელდება გარკვეული მაქსიმალური ან მინიმალური ფუნქციები null, თქვენ მიიღებთ უსასრულო ფასეულობების გარეთ. მონაცემთა ფარგლებში, ისინი ქვეკლასით სიაში. ყოველი ღირებულება ვექტორული იმავე სიგრძის. და ისინი გამოიყენება წარდგენის, ძირითადად, მონაცემთა ცხრილები. არსებობს ამ ინიციალიზაციისას სინტაქსი. ეს იქნება ყველა, კიდევ ერთხელ, იქნება ბევრად ნათელი, როდესაც თქვენ მიიღებთ დემო. და ლამაზი რამ შესახებ მონაცემები ფარგლებში არის, რომ თქვენ შეუძლია სახელები ყველა სვეტები და სახელები რიგები. და ისე, რომ ხდის წვდომის მათ ცოტა მეგობრულად. ასევე, ეს არის, თუ როგორ ყველაზე ფუნქციები, რომელიც წაიკითხონ მონაცემების Excel ცხრილები ან ტექსტური ფაილი, მაგალითად, წაიკითხავს მათი მონაცემები. ისინი ამას შევიდა გარკვეული მონაცემები ჩარჩო. ასე რომ, ფუნქციები ფუნქციები სინტაქსი არის ცოტა უცნაურია. ისევ ეს სახელი ფუნქცია, დაავალოს, ამ სიტყვით ფუნქცია და შემდეგ სია არგუმენტები. ასე რომ, არსებობს კარგი რამ შესახებ, თუ როგორ ფუნქციონირებს მუშაობენ. ერთი, შეგიძლიათ რეალურად მივანიჭოთ default ღირებულებების გარკვეული არგუმენტები. ასე რომ, შეიძლება ითქვას, R1 equals-- შეიძლება ითქვას, foo არის ფუნქცია, სადაც R1 უდრის რაღაც სტანდარტულად, თუ მომხმარებელი განსაზღვრავს არანაირი არგუმენტი. წინააღმდეგ შემთხვევაში, ეს რასაც ის დააყენა. და ეს არის ძალიან მოსახერხებელი იმიტომ, რომ ბევრი ჩვენი ფუნქციები ხშირად ათობით ან ასობით არგუმენტები. მაგალითად პირობა შეთქმულება გრაფიკის ან შეთქმულება scatter ნაკვეთები აქვს არგუმენტები, რომ კონტროლი ყველაფერი სათაური და ღერძი ეტიკეტები ფერი რეგრესია ხაზები. ასე რომ, თუ თქვენ არ გსურთ იმისათვის, რომ ხალხს დააკონკრეტა თითოეული ეს ასობით არგუმენტები მაკონტროლებელი თითოეული ასპექტი მიწის ნაკვეთი და რეგრესია ან რასაც, ეს არის ლამაზი, რომ ამ default ღირებულებების. და მაშინ თქვენ შეგიძლიათ რეალურად წერენ, როგორც თქვენ ნახეთ უკან აქ. ან იპოვოთ უკეთესი მაგალითი. როცა რეკავთ ფუნქციების თქვენ შეგიძლიათ რეალურად მოვუწოდებთ მათ გამოყენებით არგუმენტი სახელები. ასე რომ, აქ არის მაგალითი იმისა, მატრიცა მშენებელი. იგი იღებს სამი არგუმენტები. როგორც წესი, თქვენ გაქვთ მონაცემები, რომელიც არის ვექტორი. თქვენ გაქვთ N ზედიზედ, რომელიც არის სტრიქონების რაოდენობა. თქვენ გაქვთ N cols-- მწკრივების რიცხვი. საქმე ის არის, თუ ჩაწერეთ N ზედიზედ უდრის, რაც არ უნდა და N col უდრის, რაც არ უნდა, როდესაც თქვენ მოუწოდებდა ამ ფუნქციას, თქვენ შეგიძლიათ რეალურად დავამარცხებთ მათ. ასე რომ, შეგიძლიათ N col პირველი და N row მეორე და ეს არაფერს შეცვლის. ასე რომ, ლამაზი პატარა ფუნქცია. ხომ იმპორტი და ექსპორტი. ეს შეიძლება გაკეთდეს, ძირითადად. ასევე არსებობს ობიექტების დაწერა თვითნებური R აპროტესტებს ორობითი ფაილი და მერე წავიკითხე მათ უკან შემდეგ. რომელი არის მოსახერხებელი თუ თქვენ აკეთებთ დიდი ინტერაქტიულ სესიაში R და თქვენ უნდა გადავარჩინოთ რამ ძალიან სწრაფად. By default R აქვს სამუშაო დირექტორია რომ ფაილი მისაღებად დაწერილი შევიდა და წაიკითხეთ უკან ეხლა. თქვენ ხედავთ, რომ getwg, შეცვალოს იგი setdw. არაფერი განსაკუთრებით საინტერესო აქ ასე რომ, ახლა ფაქტობრივი სტატისტიკა stuff-- multilinear რეგრესია. ასე რომ, ჩვეულებრივი სინტაქსი არის ცოტა რთული. მოდელი დიდი ობიექტი ძირითადად. იგი იღებს ენიჭება LM, რომელიც არის ფუნქცია ზარი. პირველი ელემენტი, y tilde x1 პლუს რაც. ჩემი სინტაქსი აქ არის ცოტა გაუგებარია. მე საკმაოდ ვწუხვარ, რომ ეს არის სტანდარტული გზა რომ კომპიუტერული მეცნიერების წიგნები გაკეთება. მაგრამ ეს ცოტა უცნაურია. ასე რომ, ძირითადად, ეს lm ფრჩხილებში, პირველი პუნქტის არის ცვლადი უკაცრავად, დამოკიდებული ცვლადი tilde x1 პლუს x2 პლუს თუმცა ბევრი დამოუკიდებელი ცვლადები გაქვთ. და მაშინ ეს შეიძლება იყოს ვექტორები, ყველა ერთი და იგივე სიგრძის. ან ისინი შეიძლება სვეტი ზედა მონაცემები კარკასი რომ თქვენ უბრალოდ განსაზღვროს მეორე არგუმენტი მონაცემების ფარგლებში. ასევე შეგიძლიათ მიუთითოთ უფრო რთული ფორმულა ასე რომ თქვენ არ უნდა სწორხაზოვნად რეგრესი ერთი დამოკიდებული ცვლადი, ან ერთი ვექტორი წინასწარ არსებული ვექტორი. ამის გაკეთება შეგიძლიათ, მაგალითად, ვექტორი კომპონენტი y კვადრატი პლუს 1 და უკუსვლის, რომ წინააღმდეგ შეხვიდეთ ზოგიერთი სხვა ვექტორი. თქვენ შეგიძლიათ ამობეჭდოთ ანოტაციის მოდელი ამ ბრძანების ე.წ. summary-- უბრალოდ შემაჯამებელი parens მოდელი. ისევ რაღაც მე უნდა გაერკვია. რაღაც რომ მიიღებს შესწორებული როდესაც სლაიდები უფროსი ინტერნეტში. თუ გსურთ გამოთვლა მარტივი კორელაცია თქვენ შეგიძლიათ გამოიყენოთ კორელაცია ვექტორი 1 ვექტორი 2 ფუნქცია core. მეთოდი არის რა Pearson კორელაცია. ეს არის სტანდარტული პირობა შეგიძლიათ გააკეთოთ. არსებობს ასევე Spearman და Kendell კორელაციები რომლებიც ზოგიერთი სხვადასხვა ხარისხის ორდენით კორელაცია. ისე, რომ არ გამოთვლა პროდუქტი მომენტები შორის ვექტორები თავს, მაგრამ ვექტორის წოდება ბრძანებებს. მე ახსნას მოგვიანებით. აუდიტორია: სწრაფი კითხვა CONNER HARRIS: რა თქმა უნდა. აუდიტორია: ასე რომ, როდესაც თქვენ გაანგარიშების იმ მარტივი კორელაციები გააკეთებს თქვენ ვივარაუდოთ, რომ არსებობს სტატისტიკური მნიშვნელობის კორელაცია? CONNER HARRIS თქვენ არ უნდა. Lm ძირითადად მხოლოდ მანქანა. დასჭირდება ორი რამ და ეს იქნება შამფურზე კოეფიციენტებს საუკეთესო fit ონლაინ. იგი ასევე იუწყება სტანდარტული შეცდომები იმ კოეფიციენტები. და ის გეტყვით, როგორც არის კვეთა სტატისტიკურად მნიშვნელოვანი ან სხვაობა 0-დან. ფერდობზე საუკეთესო fit ხაზი სტატისტიკურად სხვადასხვა ნულიდან, და სხვა. ასე რომ, იგი მიიჩნევს, არაფერი, მე ვფიქრობ, არის საუკეთესო პასუხი თქვენს კითხვაზე. კარგი. Plotting-- ასე რომ მთავარი მიზეზი თქვენ უნდა გამოყენება R, როგორც multilinear რეგრესია. ძირითადად ყველა ენის აქვს რამდენიმე დაწესებულებაში, რომ. და პატიოსნად R ის სინტაქსი რეგრესია ცოტა arcane. მაგრამ შეთქმულება არის, სადაც ეს ნამდვილად ანათებს. მუშა ფუნქცია ნაკვეთი და ეს ხდება ორი ვექტორები, x და y. და მაშინ ellipses დგას ძალიან დიდი რაოდენობით სურვილისამებრ არგუმენტები, რომ კონტროლი ყველაფერს ტიტული ფერები სხვადასხვა ხაზების ან სხვადასხვა რაოდენობა, ტიპის მიწის ნაკვეთი. თქვენ შეგიძლიათ scatter მიწის ნაკვეთების და ხაზი ნაკვეთები. [INAUDIBLE] 2 ვექტორები იმავე სიგრძის. თქვენ შეგიძლიათ წინ უძღვის ამ ანიჭებენ მონაცემთა ჩარჩო თქვენი სცენარი. და ეს ნება თქვენ უბრალოდ გამოიყენოთ სვეტი headers ნაცვლად ცალკე ვექტორები. თქვენ შეგიძლიათ დაამატოთ საუკეთესო fit ხაზები და ადგილობრივი რეგრესია მოსახვევებში თქვენს გრაფაში. ეს ბრძანებები ჩამოთვლილი აქ, ab ხაზი და ხაზები, სტანდარტულად ვიღებთ დაწერილი pop up ფანჯარა იმიტომ, რომ ეს გულისხმობს, რომ თქვენ იყენებთ R ინტერაქტიულად. თუ თქვენ არ შეგიძლიათ დაწერა ორი ფაილი, რომელიც არიან ნამდვილად, ნებისმიერ ფორმატში გსურთ. სამწუხაროდ, მე მაქვს შეცდომას მე უბრალოდ მიხვდა. თუ გსურთ გახსნა სხვა გრაფიკული მოწყობილობა თქვენ შეგიძლიათ გამოიყენოთ ეს ფუნქცია მოუწოდა PNG ან JPEG და ბევრი სხვა ფორმატის. და თქვენ შეგიძლიათ დაწეროთ გრაფიკების რასაც ფაილის სახელი თქვენ დააკონკრეტა. გააუქმოს, რომ თქვენ უნდა გამოიყენოს მე არ წერენ ამ წელს slide-- მაგრამ არსებობს ფუნქცია მოუწოდა dev dot off, რომ იღებს არ არგუმენტები. მაშინ არსებობს საშუალებები for 3D შეთქმულება და კონტურის შეთქმულება თუ თქვენ გინდათ გრაფიკის ორი დამოუკიდებელი ცვლადები. მე არ მოხვდება ამ ახლავე. ასევე არსებობს რამდენიმე ობიექტების ანიმაცია ეს არის, როგორც წესი, სასარგებლოდ მესამე მხარის მიერ. მე არ კეთდება ანიმაციების R გრაფიკები, მაგრამ მე არ გამოიყენება ამ მესამე მხარის ბიბლიოთეკები. ასე რომ, მე ნამდვილად ვერ ადასტურებს როგორ კარგი ისინი. რა ვურჩევ, თუ გსურთ რათა ანიმაციის გამოყენებით R არის შეგიძლიათ წერენ გარეთ ყველა ფარგლებში, რომ ანიმაციები და შემდეგ შეგიძლიათ გამოიყენოთ მესამე მხარის პროგრამაში ტიპიური მონას FFmpeg ან ImageMagick-- სტიჩი ყველა თქვენი ფარგლებში ერთ ანიმაცია. ასე რომ, დრო დემო. ასე რომ, თუ თქვენ იყენებთ Unix ნებისმიერი მსგავსი სისტემა რომელიც Linux BSD მაგრამ ვინც იყენებს BSD. OS X გახსენით ტერმინალი ფანჯარა და აკრიფეთ R ბრძანებათა ზოლზე. თუ თქვენ გაქვთ R სტუდიაში ან მოსწონს, რომ ასევე მუშაობს. Windows მომხმარებლებს თქვენ უნდა შევძლოთ R თქვენს Start მენიუში. ეს უნდა ეწოდოს რაღაც როგორიცაა R x64 3 წერტილი რასაც. გახსნა, რომ არსებობს. ასე რომ, ახლა ნება მომეცით გახსენით ტერმინალი ფანჯარა. ყველა უფლება, ძიება. აუდიტორია: Command ფართი CONNER HARRIS: Command ფართი, დიდი მადლობა. მე, ჩვეულებრივ, არ გამოიყენოთ Macs. Terminal, ნახოთ ახალ ფანჯარაში. ახალი ფანჯარა პარამეტრები ძირითადი, რ ასე რომ თქვენ უნდა მიიღოს მისასალმებელი გაგზავნა, რაღაც მსგავსი. ამიტომ მე გამოყენებით R ინტერაქტიულად. თქვენ ასევე შეგიძლიათ დაწეროთ R სკრიპტები რა თქმა უნდა. ძირითადად სცენარების აწარმოებს ზუსტად იგივე გზა, როგორც თუ თქვენ ზის კომპიუტერთან აკრეფით ყველა ხაზი ერთ დროს. მოდით დავიწყოთ მიერ მიღების ვექტორი. Arrow C 1, 2. 1, 2, 4. რათქმაუნდა. მე შემიძლია შრიფტის ზომა დიდია. აუდიტორია: Command-Plus CONNER HARRIS: Command-Plus. Command-Plus. ყველა უფლება, როგორ არის, რომ? კარგი? კარგი. მოდით დავიწყოთ მიერ გამოცხადების ვექტორი სიაში. ნუ, arrow, C 1,2,4. ჩვენ ვხედავთ. არ ინერვიულოთ შესახებ bracket არსებობს. ფრჩხილებში არიან ასე რომ, თუ თქვენ ამობეჭდოთ ძალიან დიდი მასივები, ჩვენ შეგვიძლია, სადაც ხართ. ერთ-ერთი მაგალითია იქნება, თუ მე უბრალოდ მინდა სპექტრი 2 200. თუ მე დაბეჭდილი ძალიან ხანგრძლივი მასივი, ფრჩხილები მხოლოდ ასე შემიძლია შენარჩუნება სიმღერა, რომლის ინდექსი ჩვენ შესახებ თუ მე ვეძებ ამ გზით ვიზუალურად. ამიტომ anyhow, ჩვენ გვაქვს. ასე რომ, მე ვთქვი, რომ კოლექტორები ურთიერთქმედება ძალიან ლამაზად, მაგალითად, unary ოპერაციების მოსწონს ეს. ასე რომ, რას ფიქრობთ მე მიიღებთ თუ მე აკრიფოთ + 1? Yep. მარჯვენა, ახლა მე მიიღოს ამ სხვადასხვა მასივი. მოდით, ვთქვათ, ბ გ 20,40, 80. ასე რომ, რას ფიქრობთ ეს ბრძანება გავაკეთებ? რჩეულებში ელემენტებს. ასე რომ, ძირითადად, ეს არის ის, თუ რას აკეთებს. ასე რომ, ეს არის საკმაოდ მოსახერხებელია. ასე რომ, მე როგორ შესახებ მე ამის გაკეთება. გ არის, ვთქვათ, 6-ჯერ 1 დან 10. ასე რომ, რა არ მინდა, რომ ნახოთ შეიცავდა, როგორ ფიქრობთ? ასე რომ, ყველა ჯერადი ექვსი. ახლა, რა ფიქრობთ მოხდება თუ ამის გაკეთება? მე ეს ცოტა ნათელი, c, c. რა მოხდება, თუ თქვენ ვფიქრობ, რომ თუ ამის გაკეთება? პლუს გ. [INAUDIBLE] აუდიტორია: ან შეცდომა ან მხოლოდ დასძენს პირველი სამი ელემენტები. CONNER HARRIS: არ არის საკმაოდ. ეს არის ის, რაც მივიღეთ. რა ხდება არის მოკლე მასივი,, მიიღო ჩავიდა. ასე რომ, ჩვენ 124, 124, 124. ჰო. და ძირითადად, თქვენ შეგიძლიათ ნახოთ ეს ქცევა ადრე, პლუს 1, როგორც ქვეკლასით ეს საქციელი, სადაც უმოკლეს მასივი არის რიცხვი 1, რომელიც არის ერთ-ერთი ელემენტია მასივი. მე უბრალოდ იყოს განაცხადა, ვექტორი ყველა დროის ნაცვლად მასივი, იმიტომ, რომ ის, რაც r დოკუმენტაცია ჩვეულებრივ აკეთებს. ეს ღრმა გ ჩვევა. OK, და ახლა ჩვენ გვაქვს ეს მასივი. ასე რომ, ჩვენ გვაქვს ეს მასივი, გ. ჩვენ შეგვიძლია მივიღოთ შემაჯამებელი სტატისტიკას გ შემაჯამებელი გ. და ეს კარგია. ასე რომ, ახლა მოდით გავაკეთოთ ზოგიერთი matrix რამ. მოდით ვთქვათ მ არის მატრიცა. მოდით ეს სამი სამი ერთი. ასე რომ, nrows უდრის 3 და ncols უტოლდება 3. და მონაცემების მოდით გავაკეთოთ ისე, რა როგორ ფიქრობთ, აპირებს? უფლება, ეს ერთი. ეს nrow და ncolumn. ასე რომ, რასაც მე ვაკეთებ არის მე გამოცხადდა სამი სამი მატრიცა და მე გავიდა ცხრა ელემენტს მასივი. ასე რომ, ლოგარითმის ყველა ელემენტები ერთი გზით ცხრა. და ყველა ის ღირებულებები, შევსება up მასივი ბოდიში? აუდიტორია: ეს არის ბაზა 10 ჟურნალი? CONNER HARRIS: არა, ჟურნალი ბუნებრივი logarithms, ასე ბაზა e. ჰო, თუ უნდოდა ბაზა 10 ჟურნალი, მე ვფიქრობ, თქვენ უნდა რომ შეხვიდეთ რასაც, იყოფა ჟურნალი 10. ასე რომ, მონაცემები [INAUDIBLE] მხოლოდ ავსებს მასივი, ასე რომ ზემოდან, მაშინ მარცხნიდან მარჯვნივ. და თუ არ უნდოდა, რომ რამდენიმე სხვა მასივი, ვთქვათ, n არის მატრიცა. მოდით, მე არ ვიცი, 2 დან 13. ან მე რამე უფრო საინტერესო. მე ყველაფერს გავაკეთებ 2-დან 4. nrow შეადგენს, ვთქვათ, 3. ncol = 4. n. ამიტომ, ჩვენ მივიღეთ ეს. ახლა კი, თუ ჩვენ გვინდა, რომ გავამრავლოთ ეს, ჩვენ ყველაფერს გააკეთებს n პროცენტი ჯერ პროცენტი, იმიტომ, რომ ო. და ჩვენ გვაქვს matrix პროდუქცია. By მათ გზა, ხედავთ, როგორ როცა განაცხადა, N, 2-დან 4 ვექტორი მიიღო ჩავიდა, სანამ ის შეივსო ყველა ო? თუ თქვენ სურდა მიიღოს eigenvalue რღვევა, ეს არის ის, რომ ჩვენ შეგვიძლია გავაკეთოთ ძალიან ადვილად. ჩვენ შეგვიძლია ამის გაკეთება eigen n. ასე რომ, ეს არის ჩვენი პირველი ექმნებათ სიაში. ასე რომ, eigen n ჩამოთვლილია ორი გასაღებები. ფასეულობები, რომელიც ამ მასივი აქ. და ვექტორები, რომელიც ამ მასივი აქ. ასე რომ, თუ თქვენ სურდა ამონაწერი, ვთქვათ, ამ მესამე სვეტი საწყისი საკუთრივი ვექტორი matrix, რადგან საკუთრივი ვექტორი არის სვეტი ვექტორები. ასე რომ, ჩვენ შეგვიძლია გავაკეთოთ Vec eigen n დოლარის ნიშანი ვექტორები, მძიმით -3 [INAUDIBLE]. Vec. ის არის, რომ, როგორც თქვენ შეიძლება ველოდოთ. მაშინ ამბობენ ო ჯერ პროცენტს ჯერ Vec. ასე რომ შედეგი აქ, რა თქმა ჰგავს თუ ავიღეთ მესამე eigenvalue აქ, რომელიც შეესაბამება მესამე eigenvector. უბრალოდ მრავლდება ყველაფერი ამ eigenvector, კომპონენტი ბრძენი, მიერ eigenvalue. და რომ ის, რაც ჩვენ ველით, იმიტომ, რომ ის, რაც eigenvalues ​​არიან. აქვს ვინმეს აქ არ არის მიღებული წრფივი ალგებრა? რამდენიმე ადამიანი, OK. უბრალოდ ჩართოთ თქვენი ტვინი off ცოტა. მართლაც, თუ ჩვენ ვიღებთ eigen n დოლარის ნიშანი ღირებულებების 3-ჯერ Vec, ასევე მიიღოს იგივე. ეს ფორმატირებული სხვაგვარად a row ვექტორი ნაცვლად სვეტი ვექტორი, მაგრამ დიდი გარიგება. ასე რომ, ეს არის, ძირითადად, ლამაზი რამ, რაც ჩვენ შეგვიძლია გავაკეთოთ მატრიცები, აჩვენა სიები. მე უნდა ვაჩვენოთ ლამაზი რამ ფუნქციები ისევე. ასე ვთქვათ [INAUDIBLE] ფუნქცია, მოდით, ეს func წინააღმდეგ ფუნქცია n n კვადრატი ფაქტობრივად, ეს ნამდვილად არ არის საუკეთესო. a, b, კვადრატი პლუს ბ. ასე რომ, ერთი რამ ფუნქციები, კიდევ ერთხელ, რომ ისინი არ უნდა გამოკვეთილ დაბრუნების განცხადებებს. ასე რომ თქვენ შეგიძლიათ just-- ბოლო განცხადება შეაფასა იქნება განაცხადი დაბრუნდა, ან ღირებულების დაბრუნდა. ასე რომ, ამ შემთხვევაში, ჩვენ მხოლოდ შეფასების ერთ განცხადებაში, კვადრატს დამატებული b. ეს იქნება ძირითადად დაბრუნებული მნიშვნელობა. მას არასოდეს გტკივა დააყენა დაბრუნების ღირებულებების მკაფიოდ, განსაკუთრებით თუ თქვენ საქმე ფუნქცია ძალიან რთული ლოგიკა შემოვა. მაგრამ თქვენ არ გვჭირდება. ასე რომ, ახლა ჩვენ შეგვიძლია გავაკეთოთ func 5, 1, ეს არის ძირითადად რა ნეტავ მოველით. რაღაც ჩვენ შეგვიძლია გავაკეთოთ, ჩვენ შეგვიძლია რეალურად გავაკეთოთ func ბ უდრის 1, შეადგენს 5. ასე რომ, თუ ჩვენ დააკონკრეტა, რომელიც ნომერი აქ, რომელიც არგუმენტი მიდის, რომელიც არგუმენტი ფუნქცია, ჩვენ შეგვიძლია Flip გარშემო ამ ღირებულებების სადაც ჩვენ გვინდა. აუდიტორია: არის მიზეზი დაწერა ის, რომ ბ უდრის როგორც ეწინააღმდეგებოდა უბრალოდ გამოყენებით ნომრები და მძიმე? CONNER HARRIS: ჰო, როგორც წესი, ამის გაკეთება, თუ თქვენ გაქვთ ფუნქციები ბევრი არგუმენტები. ეს შეიძლება ხშირად იყოს, როგორც დროშები, ნეტავ მხოლოდ გსურთ გამოიყენოთ იშვიათად. და ამ გზით თქვენ შეგიძლიათ only-- თქვენ შეუძლია მიმართოს კონკრეტული არგუმენტები რომ გსურთ გამოიყენოთ არასამთავრობო default ღირებულებებს, და თქვენ არ უნდა დაწეროს გარეთ bunch of დროშები ტოლია ცრუ მათ. ან შემიძლია დაწერა ეს კიდევ ერთხელ ნაგულისხმები მნიშვნელობა, როგორიც ბ უტოლდება 2. და მაშინ მე ვერ გავაკეთებ f func, მე ყველაფერს გავაკეთებ 4, 1 ამ დროს. და 17, რომელიც 4-ის კვადრატს პლუს 1, როგორც თქვენ შეიძლება ველოდოთ. მაგრამ მე შეიძლება ასევე მხოლოდ დარეკეთ ამ func 4, და მე 18, იმიტომ, რომ მე არ დააკონკრეტა, ბ. ასე რომ, ბ იღებს ნაგულისხმევი მნიშვნელობა 2. OK, ასე რომ, ახლა, თუ თქვენ შემდეგ ერთად დემო, ჩაწერეთ ეს ხაზი თქვენი ბრძანება შეგახსენებთ, და რა მოდის up. სინამდვილეში, არ გაგვაჩნია. ჩაწერეთ ეს. თქვენ უნდა მიიღოს რაღაც მსგავსი. ასე რომ, mtcars არის აგებული მონაცემები მითითებული ამ დემონსტრირება მიზნით, რომ მოდის with-- რომ მოდის in იყოს თქვენი r გავრცელება. ეს არის შედგენილი სტატისტიკური მონაცემები 1974 საკითხი Motor Trend ჟურნალი მთელ რიგ სხვადასხვა მანქანის მოდელები. ასე რომ, არსებობს მილი gallon, cylinders-- მე დაგვავიწყდეს, რა disp is-- ცხენის. ალბათ. თუ უბრალოდ Google MT მანქანები, შემდეგ ერთ-ერთი პირველი შედეგები იქნება საწყისი ოფიციალური r დოკუმენტაცია და ის აგიხსნით ყველა ეს მონაცემები სფეროებში. ასე რომ, წონის is-- wt არის წონის მანქანა ტონა. Q წ არის მეოთხედი მილის დროს. ასე რომ, ახლა ჩვენ შეგვიძლია გავაკეთოთ გარკვეული fun რამ შესახებ MT მანქანა არის მონაცემების სფეროში. ასე რომ, ჩვენ შეგვიძლია გავაკეთოთ რამ როგორიცაა ზედიზედ სახელები, mt მანქანა. და ეს არის სიაში ყველა სტრიქონების მონაცემები კომპლექტი, რომლებიც სახელები მანქანები. ჩვენ შეგვიძლია ამის გაკეთება colnames, mt მანქანაზე. თუ თქვენ mt მანქანები, ქვე-ციფრული ინდექსის, როგორც 2. ჩვენ კიდევ მეორე სვეტი გარეთ ამ, რომელიც იქნება ბალონები. აუდიტორია: რა ვქნათ? CONNER HARRIS: მე აკრეფილი mt მანქანები, ფრჩხილებში e, რომელიც მომცა მეორე სვეტი გარეთ mt მანქანა. თუ ჩვენ გვინდა, ზედიზედ, შემიძლია აკრიფოთ mtcars მძიმით 2, მაგალითად. სხვა რაუნდი 2 მძიმე, როგორიცაა, რომ. და რომ მიდის თქვენი row. ეს აქ მხოლოდ გაძლევთ სვეტი, მაგრამ სვეტი, როგორც ვექტორი. მე უბრალოდ მიხვდა, ახლა მე დაავიწყდა დემონსტრირება ზოგიერთი cool რამ ვექტორები რომ შეგიძლიათ გააკეთოთ ინდექსები. ნება მომეცით, გავაკეთოთ, რომ ახლა. ასე რომ მოდით გ gets-- აყენებს ამ pause-- 2 ჯერ 1 10. ასე რომ, გ იქნება ვექტორი 2-20. მე შეუძლია მიიღოს ელემენტები, როგორც ეს, c2. მე ვერ გაივლის ვექტორი როგორც ეს, რომ გ მიადევნე თვალი გამოიყენოთ სხვადასხვა სახელი, ვიდრე გ, როგორიცაა Vec გ. ძირითადად, მე ვაკეთებ ასე რომ თქვენ არ მიიღოს დაბნეული შორის გ როგორც ვექტორი მშენებლობა ფუნქცია, და შემდეგ გ როგორც ცვლადის სახელი. Vec ფრჩხილებში გ 4, 5, 7. ეს მიიღებთ me out მეოთხე, მეხუთე, და შვიდი ელემენტები მასივი. მე შემიძლია ამის Vec, უარყოფით ინდექსი, როგორიცაა -4. რომ მიიღებს me out ამ მეოთხე ელემენტს ამოიღეს. მაშინ, თუ მინდოდა ამის გაკეთება ნაჭერი, მე შემიძლია ამის Vec 2-6. 2 ნაწლავის 6 არის კიდევ ერთი ვექტორი, რომელიც არის 2, 3, 4, 5, 6. Spits, რომ. ამიტომ anyhow, უკან mt მანქანა. ასე რომ, მოდით გავაკეთოთ ზოგიერთი რეგრესიას. მოდით, ვთქვათ, მოდელი gets-- მოდით ხაზოვანი regress-- მე არ ვიცი. პირველი მოდით ანიჭებენ mtcars, რა თქმა უნდა. ასე რომ, [INAUDIBLE] მოდელი lm, მოდით რეგრესი მილი პოსტი gallon tilde წონა. და მაშინ მონაცემები ჩარჩო mtcars. ასე რომ, შემაჯამებელი მოდელი. OK, ასე რომ, ეს გამოიყურება ცოტა რთული. მაგრამ, ძირითადად, როგორც ვხედავთ, თუ ჩვენ ცდილობენ გამოხატონ მილი gallon როგორც წრფივი ფუნქცია წონა, შემდეგ ჩვენ მივიღეთ ეს ხაზი აქ, რომელიც სატელეფონო საუბრების დროს 37,28. 37,28 იქნება თეორიული მილი თითო gallon მანქანა, რომელიც იწონის ნულოვანი. და მაშინ ყოველი დამატებითი ტონა, თქვენ დაარტყა დაახლოებით ხუთი მილის თითო gallon off რომ. ორივე ეს კოეფიციენტები თქვენ ხედავთ, სტანდარტული შეცდომები არსებობს. და ისინი ძალიან სტატისტიკურად მნიშვნელოვანი. ასე რომ, ჩვენ შეიძლება ძალიან გარკვეული 1 e 10 უარყოფით 10. ასე რომ 1-ჯერ რაღაც უარყოფითი 10, რომ თუ მძიმე მანქანა, ეს იქნება უარესი მილის თითო gallon. ან ჩვენ შეგვიძლია შევამოწმოთ სხვა მოდელი. Like ნაცვლად რეგრესის ეს წონა, მოდით რეგრესი ეს ჟურნალი წონა, იმიტომ, რომ, შესაძლოა, ეფექტური წონის გარბენსა რატომღაც არ წრფივი. ეს მოგვცა r კვადრატი of 0,7528. მოდით ცდილობენ ამ. ამჯერად მოდით სხვადასხვა ცვლადი, ძალიან. Model2. ასე რომ, შემაჯამებელი, model2. ყველა უფლება, კიდევ ერთხელ, ჩვენ მიიღო ჩვენი საუკეთესო fit ხაზი აქ. ეს time-- ეს ამბობს, ძირითადად, რომ ყოველი გაზრდის წონა მანქანის ფაქტორი e თქვენ დაკარგოს ბევრი მილის თითო gallon. ასე რომ, ამ დროს, ჩვენი ნარჩენი სტანდარტული შეცდომა it-- რომ არ აქვს მნიშვნელობა, ნამდვილად. ნარჩენი სტანდარტული შეცდომა ძირითადად, მხოლოდ სტანდარტული შეცდომა რომ თქვენ არ დაუტოვებიათ შემდეგ თქვენ წართმევას ტენდენცია ხაზი. ჩვენი r კვადრატი აქ არის 0.81, რომელიც ცოტა უკეთესი, ვიდრე ჩვენ გვქონდა ადრე, 0.52. ასე რომ, ახლა მოდით დაამატოთ ტერმინი ამ რეგრესია. მოდით რეგრესი მილი gallon როგორც ჟურნალი წონით და, მოდით, ქ მილი, მეოთხედი მილის დროს. OK, მას უნდა ჰქონდეს the-- ყველა უფლება, qsec. Qsec. რეალურად, ბოდიში, რა? ნება მომეცით მოვუწოდებთ ეს რაღაც სხვა გარდა model2. ნება მომეცით მოვუწოდებთ ამ model3. ასე რომ, ახლა ჩვენ შეგვიძლია გავაკეთოთ შემაჯამებელი model3. ასე რომ, კიდევ ერთხელ, ეს არის ძირითადად რას შეიძლება ველოდოთ. თქვენ გაქვთ დადებითი კვეთა. ეფექტური იზრდება წონა უარყოფითია. და ეფექტური იზრდება მეოთხედი მილის დრო არის დადებითი, მაგრამ მიუხედავად იმისა, ნაკლებად, ვიდრე წონა. ახლა ინტუიციურად, შეგიძლიათ გრძნობა ამ სიტყვებით ვიფიქროთ სპორტული მანქანა. არსებობს ძალიან სწრაფი აჩქარება, ძალიან მოკლე მეოთხედი მილის ჯერ. ისინი ასევე აპირებს გამოიყენოს უფრო გაზი, ხოლო უფრო საღად მოაზროვნე მანქანები ვაპირებთ აქვს ნელი აჩქარება, უმაღლესი მეოთხედი მილის ჯერ, და გამოიყენოთ ნაკლები გაზის ,, ასე უმაღლესი მილის თითო gallon. შესანიშნავი. ასე რომ, ახლა დროა ნაკვეთი რაღაც მსგავსი. ასე რომ, მოდით გავაკეთოთ ისე შიშველი ძვლები ჩვენ შეგვიძლია გავაკეთოთ plots-- იმიტომ, რომ მე ერთვის ამ მონაცემების ჩარჩო ადრე ჩვენ შეგვიძლია უბრალოდ ნაკვეთები, wt mpg. ჩადება ეს ცოტა დიდია. არსებობს, ჩვენ ძირითადად აქვს scatter ნაკვეთი, მაგრამ რაოდენობა სახის მძიმე ვხედავ ამ. მე არ მახსოვს, offhand, რა სინტაქსი შეცვლის ნაკვეთი. ასე რომ, ვფიქრობ, ეს იქნება კარგი დრო აღზრდას, აქ არის ძალიან ლამაზი builtin დახმარება ფუნქცია, დახმარება შეთავაზებები ფუნქციონირებს სახელი. ჩვენ აღზრდას ძირითადად არაფერი გსურთ. მე ვფიქრობ, რომ მე რეალურად ამის გაკეთება ტიპის შეადგენს p რაოდენობა ნაკვეთები. რამე შეიცვალა? და არა, ნამდვილად არ. კარგი. გარკვეული მიზეზების გამო, როდესაც მე ეს ჩემს კომპიუტერში, ცოტა ხნის წინ, ყველა scatter რაოდენობა გაცილებით ნათელი. ყოველ შემთხვევაში, არის scatter სახის ხილული? არსებობს ერთი იქ. რამდენიმე იქ, რამდენიმე არსებობს. შეგიძლიათ სახის ვხედავთ, არა? ასე რომ, თუ ჩვენ გვინდა, რომ დაამატოთ საუკეთესო fit ონლაინ ამ ნაკვეთის აქ, რომელიც ცოტა შიშველი bones-- მიადევნე თვალი, რათა ის ცოტა გავალამაზოთ. მთავარი ტოლია წინააღმდეგ წონა. მილის თითო gallon. ისევ და ისევ, შეგიძლიათ ნახოთ რამდენად სასარგებლო სურვილისამებრ არგუმენტები აქ ასევე არ მქონე დააყენოს რამ გარკვეული მიზნით კლავიატურის არგუმენტები როდესაც თქვენ გაქვთ ნაკვეთები, იმიტომ, რომ ამ მიიღოს ბევრი არგუმენტები. Xlab ტოლია წონა, წონა, ტონა. კარგი. OK, yeah, ამ მოწყობილობის მიმდინარეობს ცოტა შემაშფოთებელი. მაგრამ თქვენ ხედავთ, ერთგვარი იქ, იქ გრაფაში სათაური მხარეს. მეტი აქ there's-- ბოლოში აქ არსებობს ღერძი ეტიკეტები. მე არ მახსოვს, offhand რა ბრძანებები ars-- რა ფუნქციები უნდა გაიზარდოს ზომა იმ ეტიკეტები და სათაურები, მაგრამ ისინი იქ. ასე რომ, თუ ჩვენ გვინდა, რომ რჩეულებში საუკეთესო fit ხაზი, ჩვენ შეიძლება რაღაც მოსწონს მე აქვს სინტაქსი იწერება აქ. ასე მახსოვს, ჩვენ უბრალოდ დაამატოთ მოდელი იყო ქალაქგარეთ, წონა, mtcars. ასე რომ, თუ მინდოდა დაამატოთ საუკეთესო fit ხაზი, მე ვერ გავაკეთებ, ბ ხაზის მოდელი. და ბუმი, ჩვენ გვაქვს საუკეთესო fit ონლაინ. ეს არის სახის მძიმე, რომ კიდევ ერთხელ. მე საკმაოდ ვწუხვარ შესახებ ტექნოლოგიური სირთულეები. მაგრამ ის მუშაობს, ძირითადად, ზედა მარცხენა ქვედა მარჯვენა. და თუ მასშტაბის იყო დიდი, თქვენ ვერ ვხედავ რომ კვეთა არის, თუ რა შეგიძლიათ მოვძებნოთ ეხლა შემაჯამებელი სტატისტიკა თუ თქვენ ჩაწერეთ შემაჯამებელი მოდელი. OK, ასე რომ იმედი მაქვს, ყველას იღებს რაღაც გრძნობა, თუ რა R არის ის, რაც კარგია. თქვენ შესაძლოა გაცილებით გავალამაზოთ ნაკვეთები, ვიდრე ეს საკუთარ დროს, თუ გნებავთ. ასე რომ, საგარეო ფუნქცია ინტერფეისი. ეს არის ის, რომ არ არის, როგორც წესი, დაფარული გაცნობითი ლექციები ან გაცნობითი არაფერი r. ეს არ არის სავარაუდოდ თქვენ აპირებს სჭირდება. თუმცა, მივხვდი, რომ ეს სასარგებლო ჩემი საკუთარი პროექტების წარსულში. და არ არსებობს კარგი სამეურვეო იგი ამჟამად. ასე რომ მე უბრალოდ აპირებს გამოიქცევიან თქვენ მთელი ამ და შემდეგ თქვენ თავისუფლად გავიდეს. ასე რომ, უცხოური ფუნქცია ინტერფეისი არის ის, რაც თქვენ შეგიძლიათ გამოიყენოთ მოვუწოდებთ ვხედავ ფუნქციები რ იძულებით, R აგებულია C. რ არითმეტიკული მხოლოდ C-ის 64-bit მცურავი წერტილი არითმეტიკა, რომელიც აკრიფოთ ორმაგი [INAUDIBLE]. და თქვენ უნდა გააკეთოთ ამ რამოდენიმე მიზეზის გამო. ერთი, R გაგებული, ეს არ არის შედგენილი ქვემოთ მანქანა კოდი. ასე, რომ თქვენ შეგიძლიათ გადაწეროთ თქვენი შიდა მარყუჟების C და შემდეგ მიიღოს უპირატესობა გამოყენებით რ Like ეს ცოტა უფრო მოსახერხებელია, ვიდრე C. მას აქვს უკეთესი გრაფიკული ობიექტების და whatnot. და მიუხედავად იმისა, შეუძლია მიიღოს მაქსიმალური სიჩქარე out შიდა მარყუჟების, სადაც თქვენ ნამდვილად სჭირდება. მეორეული გამოყენება არსებული C ბიბლიოთეკები, ეს ასევე მნიშვნელოვანია. თუ თქვენ გაქვთ გარკვეული C ბიბლიოთეკა, როგორიცაა, მე არ ვიცი, ფურიეს გარდაქმნას, ან ძალიან Archean სტატისტიკა პროცედურა მაღალი ენერგეტიკული ასტროფიზიკა ან რამე, მე არ ვიცი. მაღალი ენერგიების ასტროფიზიკა კი არ არის, ვფიქრობ, ვფიქრობ. მაგრამ შეგიძლიათ ამის გაკეთება რომ ნაცვლად იმისა, დაწერა შექმნილი R პორტში მათ. და the-- და ისევ, როგორიცაა, თუ გამოიყურება ყველაზე R ნაგულისხმები ბიბლიოთეკები, საქართველოს შინაგანი, შინაგანი არიან აპირებს გამოიყენოს უცხო ფუნქცია ინტერფეისი ძალიან ინტენსიურად. ისინი რამ, როგორიცაა ფურიეს გარდაქმნას და კომპიუტერული კორელაცია კოეფიციენტების დაწერილი C, და ისინი უბრალოდ R შეფუთვისა მათ გარშემო. ინტერფეისი არის ცოტა რთულია. ვფიქრობ მისი სირთულის გადაჭარბებულია in a ბევრი ინსტრუქციას ნახავთ. მაგრამ მიუხედავად ამისა, ეს ცოტა გაუგებარია. და მე ვერ შეძლო მოვძებნოთ კარგი სამეურვეო მას, ასე რომ, ეს არის ის ახლა. ისევ და ისევ, ეს მთელი სეგმენტი უფრო მოგვიანებით მითითება. არ ინერვიულოთ შესახებ გადაწერა ყველაფერი ქვემოთ ახლავე. ასე რომ, შემდეგ ინსტრუქციას არის Unix-like სისტემებთან, Linux, BSD, OS X. მე არ ვიცი როგორ მუშაობს ეს Windows, მაგრამ, გთხოვთ, უბრალოდ არ გააკეთებს თქვენი პროექტის საბოლოო Windows. თქვენ ნამდვილად არ მინდა. Unix ბევრად უკეთესი კომპლექტი up შემთხვევით პროგრამირების. ასე რომ, ძირითადად უცხოური ფუნქცია ინტერფეისი. თუ გსურთ დაწერა C ფუნქციის გამოყენება R, მას აქვს მიიღოს ყველა არგუმენტები, როგორც მითითებას. ასე რომ, ერთ ღირებულებები, ამ ნიშნავს, რომ ის აღნიშნა, რომ ღირებულება. იყიდება მასივები, ეს მაჩვენებელი რომ პირველი ელემენტი, რომელიც არის რა მასივი სახელები რეალურად ნიშნავს. ისევ და ისევ, ეს არის ის, რომ თქვენ უნდა ჰქონდეს საკმაოდ მთლიანად მას შემდეგ p მითითებული ხუთ. Array სახელები მხოლოდ პოინტერები რომ პირველი ელემენტი, მცურავი პუნქტიანი ტიპის ორმაგი. და თქვენი ფუნქცია აქვს დაბრუნებას ბათილად. ერთადერთი გზა, რომ მას შეუძლია რეალურად გითხრათ R, თუ რა მოხდა არის შეცვლის მეხსიერება, რომელიც R მისცა ის მეშვეობით უცხოური ფუნქცია ინტერფეისი. ამიტომ მე დაწერილი ეს მაგალითად აქ, ეს არის ფუნქცია, რომელიც computes გამოყენება dot პროდუქტის ორი ვექტორები. იგი იღებს ორი არგუმენტები, vec1, vec2, რომლებიც ვექტორები თავს, და მაშინ N, რომელიც არის სიგრძე, იმიტომ, რომ კიდევ ერთხელ, R ააშენა [INAUDIBLE], რათა გაირკვეს, სიგრძე ვექტორები, მაგრამ C არ არის. In C, ვექტორები არის თვითნებური delimited ბლოკი მეხსიერება. ასე რომ გზა შეგიძლიათ გამოვთვალოთ dot პროდუქცია მხოლოდ მითითებული ამ out პარამეტრი ნულოვანი და შემდეგ iterate მეშვეობით 1 დან ვარსკვლავი ო, იმიტომ, n მომცეთ სიგრძე, უბრალოდ დაამატოთ რაღაც ამ out პარამეტრი. და ეს შეიძლება იყოს კარგი პრაქტიკა თუ ვაპირებთ გავაკეთოთ ეს დაწერა ორი დამოუკიდებელი C ფუნქციები. ერთ-ერთი მათგანი has-- ერთ-ერთი მათგანი მხოლოდ იღებს არგუმენტები და ტიპის რომ ისინი, ჩვეულებრივ იყოს C. ასე რომ, იგი იღებს მასივი არგუმენტები, როგორც მითითებას. მაგრამ ერთ-ღირებულება არგუმენტები, როგორიცაა n, ეს მხოლოდ იღებს, როგორც ღირებულებები ასლი, გარეშე მითითებას. და მაშინ ის არ [INAUDIBLE] out მაჩვენებელი. და მაშინ აქვს სხვადასხვა, ძირითადად, გადატანა ფუნქცია, რომელიც ძირითადად ამუშავებს მოთხოვნები საქართველოს საგარეო ფუნქცია ინტერფეისის თქვენთვის. გზა რეკავთ ამ R არის, კიდევ თქვენ გაქვთ თქვენი ფუნქცია დაწერილი C, თქვენ აკრიფეთ R cmd shlib, R ბრძანება გაუზიარეს ბიბლიოთეკა, foo dot გ, ან რასაც თქვენი ფაილის სახელია, და OS ჭურვი არ R ტერმინალში. ეს შევქმნით ბიბლიოთეკა მოუწოდა foo dot ასე. და მაშინ თქვენ შეგიძლიათ გადაწეროთ ეს ჩვენი სცენარი და ინტერაქტიულად ბრძანება DYN dot დატვირთვა. მაშინ არსებობს ფუნქცია ამ R მოუწოდა dot გ. ეს იღებს არგუმენტები, რომლებიც პირველი სახელი ფუნქცია C რომ თქვენ მინდა მოვუწოდო. და მაშინ ყველა პარამეტრების რომ ფუნქცია, ისინი უნდა იყოს შესაბამისი ბრძანებით. თქვენ უნდა გამოიყენოთ ამ ტიპის იძულების ფუნქციები, როგორც მთელი რიცხვი, როგორც ორმაგი, როგორც ხასიათი, და როგორც ლოგიკური. და მაშინ, როდესაც ის ბრუნდება სია, რომელიც კიდევ ერთხელ არის მხოლოდ ასოცირებული მასივი პარამეტრი სახელები და ღირებულებები შემდეგ ფუნქცია აწარმოებს. ასე რომ, ამ შემთხვევაში, რადგან dot prod აქვს არგუმენტები vec1, vec2, და int n, n out. წერტილით c გვაქვს dot prod, სახელი ფუნქცია ჩვენ მოუწოდებდა, vec1, vec2, ტიპის, იძულების. სიგრძე ორივე ვექტორი, მე უბრალოდ აირჩია vec1 თვითნებურად. ეს იქნება უფრო ძლიერი უნდა ვთქვა s მთელი min სიგრძე vec1, სიგრძე vec2. მაშინ, ისევე როგორც ორმაგი ნულოვანი, იმიტომ, რომ ჩვენ ნამდვილად არ მაინტერესებს, რა გადადის out პარამეტრი იმიტომ, რომ ჩვენ შექმნის ეს ნულის მაინც. და მერე შედეგები იქნება დიდი ასოცირებული მასივი ძირითადად vec1 არის რასაც, vec2 არის რასაც. მაგრამ ჩვენ გვაინტერესებს გარეთ, ასე რომ ჩვენ შეგვიძლია, რომ. ეს არის კიდევ ერთხელ, ძალიან სათამაშო მაგალითად უცხო ფუნქცია ინტერფეისი. მაგრამ თუ თქვენ გაქვთ გამოთვლაც dot პროდუქცია მასიური ვექტორები მარყუჟების, ან თუ უნდა გავაკეთოთ რაღაც მარყუჟის, და თქვენ არ სურს დაეყრდნოს R, რომელიც აქვს ცოტა ოვერჰედის ჩაშენებული, ეს შეიძლება იყოს სასარგებლო. ისევ და ისევ, ეს არ არის, როგორც წესი, გაცნობითი თემის რ ეს არ არის ძალიან კარგად არის დოკუმენტირებული. მე უბრალოდ, მათ შორის, რადგან მივხვდი, რომ ეს სასარგებლო წარსულში. ასე რომ, ცუდი პრაქტიკა. მე ვთქვი, რომ არსებობს ამისთვის loop ფუნქცია. საერთოდ არ უნდა, ამ ენა, არ გამოიყენოს იგი. საფუძველზე, თუ რამდენად R ახორციელებს იტერაციული იძულებით, ეს შეიძლება იყოს ნელი. ისინი უბრალოდ ასევე გამოიყურება მახინჯი. R ამუშავებს ვექტორები ძალიან ლამაზად, ასე რომ, ხშირად თქვენ არ უნდა გამოიყენოთ იგი. შემდეგ შეგიძლიათ ჩვეულებრივ შეცვლის ვექტორი ხშირად ამ ფუნქციების მოუწოდა მაღალი იმისათვის, ფუნქციები, რუკა, შემცირება, მოძებნა, ან ფილტრაციის. მე უბრალოდ მისცეს რამდენიმე მაგალითები, თუ რა ეს გააკეთოს. რუკა არის უმაღლესი წესრიგის ფუნქცია, რადგან იგი იღებს ფუნქციას, როგორც არგუმენტი. ასე რომ, შეგიძლიათ მისცეს მას ფუნქცია, თქვენ შეგიძლიათ მისცეს მას მასივი, და იგი გამოიყენებს ფუნქცია ყველა ელემენტს მასივი და დაუბრუნოს ახალი მასივი. შემცირება, ძირითადად, მისცეს იგი მასივი, თქვენ მას ფუნქცია, რომელიც იღებს ორ არგუმენტს. ეს ვრცელდება ფუნქცია პირველი, პირველი არგუმენტი რამდენიმე დამწყებ ღირებულება. მაშინ, რომ შედეგი მეორე. მაშინ, რომ შედეგი, მესამე შემდეგ, რომ შედეგი მეოთხე. ხოლო შემდეგ დაბრუნდნენ, როდესაც იგი იღებს ბოლომდე. ასე მაგალითად, თუ გვინდა, რომ გამოთვლაც თანხა ყველა ელემენტები მასივი, ვიდრე თქვენ შეიძლება მოვუწოდებთ შემცირება ერთად [INAUDIBLE] შემცირების გარდა ფუნქცია, როგორიცაა func a, b, დაბრუნების plus ბ. და შემდეგ დაიწყოს მნიშვნელობა 0. და ყველა ეს, ნახავთ მათ აღწერილია R დოკუმენტაცია, ნებისმიერი სახელმძღვანელო ფუნქციური პროგრამირების. არსებობს ასევე ამ კლასის ფუნქციები მოუწოდა ვრცელდება ფუნქციები, რომელიც მე do not ისინი ცოტა ძნელი ასახსნელია, მაგრამ თუ გადავხედავთ [INAUDIBLE] გაფრთხილება, რომ მე მოიყვანა დასაწყისში, იგი განმარტავს, მათ კარგად მისი დანართი on R პროგრამირების. უფრო მეტი პრაქტიკა, appending to ვექტორები. ჰო? მე ვფიქრობ, რომ უნდა გამოსწორდეს, რომ. იმ პირველი ხაზი, Vec arrow, ისრის არ უნდა იყოს. თქვენ შეუძლია დაავალოს ვექტორი, ხელახლა მიიღოს მისი სიგრძე პლუს 1 და ზოგიერთი მნიშვნელობა რომ. ეს გავრცელდება ვექტორი, ან თქვენ შეგიძლიათ გააკეთოთ Vec შეადგენს გ, Vec newvalue. ისევ და ისევ, თუ თქვენ იყენებთ C ერთად ერთი არგუმენტი ვექტორი, შედეგად იერარქიის იღებს გაბრტყელებული. ასე, რომ თქვენ უბრალოდ ვექტორი რომ გაგრძელდეს 1. არასოდეს ამის გაკეთება. მიზეზი, თუ რატომ ეს არ უნდა გააკეთოს ეს. როცა გამოყოფს ვექტორი, ის აძლევს გარკვეული ბლოკი მეხსიერება. თუ თქვენ გაზრდის, რომ ვექტორი ზომა, მას აქვს გადაანაწილოს ვექტორი სადმე სხვაგან. და ასე გადანაწილება საკმაოდ ძვირია. მე არ წასვლას დეტალებს, თუ როგორ მეხსიერება allocators ხორციელდება ოპერაციული სისტემის დონეზე, მაგრამ სჭირდება ბევრი დრო იპოვოს ახალი ბლოკი მეხსიერება. და ასევე, თუ თქვენ ხელახალი გამოყოფის უამრავი და უამრავი თანდათანობით უფრო დიდი მოცულობით, თქვენ დასრულდება მდე რაღაც მოუწოდა მეხსიერების ფრაგმენტაცია, სადაც შესაძლებელი მეხსიერება იყოფა უამრავი პატარა ბლოკები მეხსიერების allocators თვალსაზრისით. და იგი იღებს უფრო და უფრო იპოვოს მეხსიერების სხვა რამ. ასე რომ, ნაცვლად, თუ თქვენ გჭირდებათ რომ გააკეთოთ, თუ თქვენ უნდა გაიზარდოს ვექტორი ერთი ბოლოდან შემდეგ, ნაცვლად appending მას მუდმივად, თქვენ უნდა წინასწარ გამოყოფს მას. Vec arrow, ვექტორი სიგრძე უდრის 1,000, ან რასაც. და მაშინ მხოლოდ მივანიჭოთ ვექტორი ღირებულებების ერთი დროის შემდეგ თქვენ გამოყო ერთხელ. მე შეუვარდნენ ეს, კიდევ ერთხელ, ჩემი საზაფხულო სამუშაო როცა ვწერდი NRA დიფერენციალური განტოლება solver. არა სიმბოლური რიცხვითი. იდეა ისაა, რომ კიდევ გაქვთ ერთი მნიშვნელობა თქვენი გადაწყვეტილება, თქვენ იყენებთ, რომ გამოთვლაც მომდევნო ერთი. ასე რომ, ჩემი ბუნებრივი გულუბრყვილო მიდრეკილება იყო იმის თქმა, OK, ასე დავიწყებ ვექტორი რომ არის არსებითი მნიშვნელობა. გამოთვლაც, რომ შემდეგი მნიშვნელობა რომ მიდის გადატანა ჩემი გამოსავალი ვექტორი, და დამატება რომ. შექმნა რაღაც, დამატება, რომ. იგი წავიდა ძალიან, ძალიან ნელა. და კიდევ მივხვდი, ეს და შევიცვალე სისტემა საწყისი მიერთება ამ გამოსახულების ვექტორული ანალოგი მოსწონს 10.000 100,000 ჯერ, უბრალოდ წინასწარი გამოყოფის ვექტორი და უბრალოდ გაშვებული რომ. მე მივიღე მეტი 1,000 ჯერ სიჩქარე. ასე რომ, ეს არის ძალიან გავრცელებული ხაფანგი R პროგრამირების. თუ თქვენ უნდა ავაშენოთ ვექტორი ნაჭერი, წინასწარ გამოყოფს მას. კიდევ ერთი საერთო მოგზაურობა up-- ეს არის ჩემი ბოლო slide, არ worry-- არის შეცდომა გატარება. R, უნდა იყოს გულწრფელი, არ მართლაც ამ ძალიან კარგად. არსებობს უამრავი პრობლემები, რომელიც შეიძლება მოსავლის up. მაგალითად, თუ თქვენ გაქვთ მასივი ან ვექტორული გარეთ ფუნქცია რომ ელოდნენ ერთი მნიშვნელობა მოდის, ან პირიქით, და თქვენ გაივლის რომ შევიდა ფუნქცია, რომელიც წერდა ელოდება ერთი მნიშვნელობა, რომელიც შეიძლება იყოს პრობლემა. გარკვეული ფუნქციები დაბრუნების null ისევე როგორც, ვთქვათ, კითხულობს არარსებული გასაღები სიაში. მაგრამ null არ მინდა C სადაც თუ ცდილობენ წაიკითხონ ძველი მაჩვენებელი, [INAUDIBLE] to null მაჩვენებელი, ის უბრალოდ seg ხარვეზებით და თუ თქვენ თქვენს debugger ეს გიჩვენებთ ზუსტად სადაც ხართ. ამის ნაცვლად, null იქნება გავაკეთოთ ფუნქციები გავაკეთებ არაპროგნოზირებადი რამ თუ ისინი გადასცა null. Like თუ თქვენ გადასცა max null, ეს მოგცემთ უარყოფითი უსასრულობა. ასე რომ, yeah. ასე რომ, ეს მოხდა ჩემთან ერთხელ, როცა მე მქონდა შეიცვალა რამოდენიმე სფეროებში ჩემს სიაში სტრუქტურა ერთხელ შეცვლის გარეშე მათ სხვაგან როდესაც ვკითხულობდი მათ. და შემდეგ მე მივიღე ყველა სახის შემთხვევითი infinity შედეგები cropping up და მე არ ვიცი, სადაც ისინი მოვიდა. და სამწუხაროდ, არ არსებობს არსებობს რეალური R მკაცრი რეჟიმი სადაც თქვენ შეიძლება ითქვას, თუ რამე ჰგავს ეს შეიძლება იყოს შეცდომა, უბრალოდ მთავრდება ასე, რომ შეიძლება იყოს დისციპლინირებული და დაფიქსირება, რომ. თუმცა, არსებობს რაღაც ე.წ. stop თუ არა. ეს არის ეკვივალენტი C ს მტკიცებით, თუ თქვენ საუბრობდა. მე არ ვფიქრობ, C ამტკიცებენ, არის ლექცია თემაზე, მაგრამ თქვენი მონაკვეთზე ლიდერი ალბათ წავიდა მას. და შეწყვიტოს თუ არა ძირითადად იღებს ნებისმიერი შემასმენელს, ასე რომ რაიმე განცხადება, რომელიც შეიძლება იყოს ჭეშმარიტი ან მცდარი. და თუ ეს ყალბი, შეწყვეტს მისი პროგრამა. იგი მოგვითხრობს, თუ ზუსტად რა გამოდიან თქვენ იყო და რა მდგომარეობაში ვერ მოხერხდა. და ეს ძალიან სასარგებლო, მაგალითად, საღი აზრის შემოწმება, ფუნქცია საშუალებებით. ასე რომ, თუ თქვენ გაქვთ ფუნქცია და ველოდებით, ვთქვათ, თუ თქვენ უნდა მომეცი თარიღი, მინდა ვადები იყოს მხოლოდ ვექტორი სიგრძე 1 და სადღაც შორის 1 და 31. და თუ არა, მე ვიცი, რაღაც წავიდა არასწორია. და მე აირჩიოს მთავრდება, სანამ ეს აქვს შემთხვევითი ანტიდეტონაციური ეფექტებს კოდი რომ ეს რთული კვალი მეშვეობით. ასე რომ, ერთ-ერთ შესაძლო გამოყენება გაჩერება თუ არა. ყოველ შემთხვევაში, OK. ასე რომ, ბოლომდე. დიდი მადლობა მობრძანებისთვის. მე ვარ წოდება მოყვარული, ამ. ასე რომ, ბოდიში თუ თქვენ შეწუხებული ან დაბნეული და რა. მოხარული ვარ, რომ მიიღოს შეკითხვებს ელექტრონული განთავსებულია connorharris@college.harvard.edu. ეს გრძელდება ასევე ყველას თვალს ამ ცხოვრობენ და მოგვიანებით. გარდა ამისა, მიუხედავად იმისა, რომ მე არ ვარ ვთქვათ, TF, მე ასევე ძალიან სურს, რომ ემსახურება როგორც არაოფიციალური მრჩეველი, ვინც არის გამოყენებით რ საბოლოო პროექტი. თუ გსურთ, რომ, მაშინ უბრალოდ გაიგო თქვენი TF და მაშინ მომწერეთ ელ ამიტომ მე ვიცი, რას ვმუშაობთ და ამიტომ შეიძლება შეიქმნას შეხვედრა ჯერ, თუ გსურთ. ასე რომ კიდევ ერთხელ, დიდი მადლობა. ვიმედოვნებ, რომ სარგებლობდა იგი. აუდიტორია: [INAUDIBLE]. CONNER HARRIS: რა თქმა უნდა. აუდიტორია: რა სახის პროექტი იქნებოდა CS სტუდენტი გამოიყენოთ რ? CONNER HARRIS: ასე რომ, თუ თქვენ არ გააკეთებს რაღაც რომ წმინდა მონაცემების მოპოვება, მაგალითად, და არ არსებობს ბევრი რამ თქვენ შეიძლება გავაკეთოთ, რომ მონაცემები სამთო და მანქანა სწავლის. დაგვჭირდება გამოიყენოთ რ კომპონენტი რაღაც. მე გავზარდე, თავდაპირველად, მაგალითად, საქართველოს თუ თქვენ წერა ნახვა და გსურთ აწარმოებს ავტომატური სტატისტიკური ანალიზი თქვენს სერვერზე ჟურნალი გარკვეულ დროს, ყოველდღე, რომ შეიძლება იყოს ის, რაც არის ძალიან ადვილია ამის გაკეთება მხოლოდ ხანმოკლე R სკრიპტი რომ თქვენ შეგიძლიათ დანიშნოს აწარმოებს ყოველ ღამე, მაგალითად. და დარწმუნებული ვარ, თუ არსებობს რაიმე მიზეზი, ნეტავ მინდა სტატისტიკური და გრაფიკული შესაძლებლობები და ამ პერსპექტივაში ავტომატურად ნაცვლად მქონე ურთიერთქმედება რამ Excel, მაგალითად, რომ რაღაც დაგვჭირდება გამოიყენოთ რ. ასე რომ, უფრო მეტი შეკითხვა ადრე დავტოვო? არ არის? ყველა უფლება, ასევე, კიდევ ერთხელ, მადლობა მოგახსენებთ მობრძანებისთვის.