1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 קונור אריס: ובכל זאת אני חושב כמה וידאו מרגש 3 00:00:07,690 --> 00:00:12,570 המיוצר על ידי חברת ייעוץ מקצועי המשתמש בR הרבה בעבודה שלה. 4 00:00:12,570 --> 00:00:16,329 >> קריין: מה עומד מאחורי הנתונים הסטטיסטיים, הניתוח, וחזותי 5 00:00:16,329 --> 00:00:19,770 מדעני נתונים הבהירים של היום ש ומנהיגים עסקיים לסמוך על 6 00:00:19,770 --> 00:00:22,012 לקבל החלטות רבות עוצמה? 7 00:00:22,012 --> 00:00:23,540 אתה לא יכול תמיד לראות את זה. 8 00:00:23,540 --> 00:00:24,790 אבל זה שם. 9 00:00:24,790 --> 00:00:29,460 זה נקרא R, קוד פתוח r-- שפת תכנות סטטיסטית 10 00:00:29,460 --> 00:00:32,630 שמומחי נתונים העולם על שימוש לכל דבר 11 00:00:32,630 --> 00:00:35,350 ממיפוי רחב חברתי ומגמות שיווק באינטרנט 12 00:00:35,350 --> 00:00:39,210 לפיתוח הכלכלי ואקלים מודלים המסייעים לנהוג הכלכלות שלנו 13 00:00:39,210 --> 00:00:40,780 וקהילות. 14 00:00:40,780 --> 00:00:44,910 >> אבל מה בדיוק R וכאשר R התחיל? 15 00:00:44,910 --> 00:00:48,620 ובכן במקור, התחיל R כאן עם שני פרופסורים 16 00:00:48,620 --> 00:00:51,950 שרצו סטטיסטי טוב יותר פלטפורמה לתלמידיהם. 17 00:00:51,950 --> 00:00:56,030 אז הם יצרו את אחד מודל לאחר השפה הסטטיסטית ס 18 00:00:56,030 --> 00:01:00,480 הם, יחד עם רבים אחרים, המשיך לעבוד על ובאמצעות R, 19 00:01:00,480 --> 00:01:05,489 יצירת כלים לR ומציאת יישומים חדשים למחקר בכל יום. 20 00:01:05,489 --> 00:01:07,750 >> הודות לכך הוא מאמץ קהילתי ברחבי העולם, 21 00:01:07,750 --> 00:01:11,850 R המשיך לגדול עם אלפים ספריות נוצרו על ידי משתמשים שנבנו 22 00:01:11,850 --> 00:01:15,500 כדי לשפר את הפונקציונליות R ו אימות איכות מקורות קהל 23 00:01:15,500 --> 00:01:19,740 ותמיכה ממוכרת ביותר מנהיגים בכל תחום תעשייה ש 24 00:01:19,740 --> 00:01:25,040 משתמש ר 'וזה נהדר, כי R הוא הכי טוב במה שהיא עושה. 25 00:01:25,040 --> 00:01:28,540 ניצני מומחים במהירות וב בקלות לפרש, אינטראקציה עם, 26 00:01:28,540 --> 00:01:33,790 ולדמיין הנתונים מראים במהירות קהילה הולכת וגדלה של משתמשים ברחבי העולם R 27 00:01:33,790 --> 00:01:36,380 ותראה איך קוד פתוח R ממשיך לעצב 28 00:01:36,380 --> 00:01:39,340 העתיד של סטטיסטי ניתוח ומדע הנתונים. 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> קונור אריס: אישור, גדול. 31 00:01:47,710 --> 00:01:50,360 אז המצגת שלי יהיה קצת יותר מפוכח. 32 00:01:50,360 --> 00:01:54,380 זה לא יהיה כרוך בכל כך הרבה מוסיקה רקע מרגשת. 33 00:01:54,380 --> 00:01:59,160 אבל כפי שראית בווידאו, R הוא סוג של שפת תכנית למטרות כללית. 34 00:01:59,160 --> 00:02:03,720 אבל זה נוצר בעיקר לעבודה סטטיסטית. 35 00:02:03,720 --> 00:02:07,980 >> אז זה מיועד לסטטיסטיקה, לניתוח נתונים, לכריית נתונים. 36 00:02:07,980 --> 00:02:12,420 ואז אתה יכול לראות את זה בהרבה אפשרויות עיצוב שמקבלי של R 37 00:02:12,420 --> 00:02:13,320 עָשׂוּי. 38 00:02:13,320 --> 00:02:15,472 זה מיועד במידה רבה, אנשים שאינם 39 00:02:15,472 --> 00:02:17,930 מומחים בתכנות, ש רק להרים תכנות 40 00:02:17,930 --> 00:02:23,460 בצד כדי שהם יוכלו לעשות את העבודה שלהם במדעי חברה או בסטטיסטיקה 41 00:02:23,460 --> 00:02:25,440 או מה שלא יהיה. 42 00:02:25,440 --> 00:02:27,850 >> יש לו הרבה מאוד הבדלים חשובים מג 43 00:02:27,850 --> 00:02:33,200 אבל התחביר ופרדיגמות כי היא משתמשת הם רחבה אותו הדבר. 44 00:02:33,200 --> 00:02:36,830 ואתה צריך להרגיש יפה הרבה בבית מייד את הבת. 45 00:02:36,830 --> 00:02:38,520 זה שפה הכרחית. 46 00:02:38,520 --> 00:02:40,260 >> אל תדאגו יותר מדי על זה אם אתה לא מכיר את המונח. 47 00:02:40,260 --> 00:02:42,676 אבל יש הבחנה בין ציווי, הצהרתי, 48 00:02:42,676 --> 00:02:43,810 ופונקציונלי. 49 00:02:43,810 --> 00:02:47,600 הכרחי רק אומר לך לעשות הצהרות שהם בעצם פקודות. 50 00:02:47,600 --> 00:02:52,340 ואז המתורגמן או מחשב מלווה אותם האחד אחד. 51 00:02:52,340 --> 00:02:56,630 זה חלש הקליד, יש לא הצהרות סוג בר ' 52 00:02:56,630 --> 00:02:59,130 >> ולאחר מכן הקווים בין סוגים שונים 53 00:02:59,130 --> 00:03:03,920 הם קצת יותר משוחררים מאשר הם נמצאים בC, למשל. 54 00:03:03,920 --> 00:03:06,450 וכמו שאמרתי יש מתקנים נרחבים מאוד 55 00:03:06,450 --> 00:03:15,610 לגרפים, לסטטיסטי ניתוח, לכריית נתונים. 56 00:03:15,610 --> 00:03:19,540 אלה שני מובנים ב שפה ו, כווידאו אמר, 57 00:03:19,540 --> 00:03:23,680 אלפי ספריות צד שלישיים ש אתה יכול להוריד ולהשתמש ללא תשלום 58 00:03:23,680 --> 00:03:25,340 עם תנאי רישיון רופפים מאוד. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> אז באופן כללי, אני ממליץ שאתה מסתכל על שני הספרים הללו 61 00:03:31,500 --> 00:03:34,610 אם אתה הולך לעבוד על ר 'אחת שלהם הוא מתחיל של R הרשמי 62 00:03:34,610 --> 00:03:35,110 להנחות. 63 00:03:35,110 --> 00:03:38,660 זה מתוחזק על ידי מפתחי ליבה של ר ' 64 00:03:38,660 --> 00:03:42,400 אתה יכול להוריד אותו שוב, ללא לחייב באופן חוקי ובקישור שיש. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 כל שקופיות אלה הולכים עד באינטרנט, באתר האינטרנט של CS50 67 00:03:49,869 --> 00:03:50,660 אחרי זה נעשה. 68 00:03:50,660 --> 00:03:53,690 כך שאין צורך להעתיק דברים למטה בטירוף. 69 00:03:53,690 --> 00:03:56,800 >> השני הוא ספר לימוד על ידי Cosma Shalizi, 70 00:03:56,800 --> 00:04:00,100 מי הוא פרופסור לסטטיסטיקה ב קרנגי מלון, הנקרא נתונים מתקדמים 71 00:04:00,100 --> 00:04:02,160 ניתוח מ נקודה יסודי של תצוגה. 72 00:04:02,160 --> 00:04:04,010 זה לא בעיקר ספר R. 73 00:04:04,010 --> 00:04:07,130 זה ספר סטטיסטיקה ו זה ספר ניתוח נתונים. 74 00:04:07,130 --> 00:04:11,990 אבל זה מאוד נגיש לאנשים ש יש קורטוב של ידע סטטיסטיקה. 75 00:04:11,990 --> 00:04:13,750 >> אני אף פעם לא לקחתי קורס פורמלי. 76 00:04:13,750 --> 00:04:17,269 אני רק יודע שפיסות מנושאים שונים של בעלות הברית 77 00:04:17,269 --> 00:04:18,579 כי אני כבר לקחתי קורסים ב. 78 00:04:18,579 --> 00:04:21,839 ואני היה מסוגל להבין זה היטב. 79 00:04:21,839 --> 00:04:25,630 >> מקבלים את כל הנתונים בר 'הם עשו בR 80 00:04:25,630 --> 00:04:30,280 ויש להם גם רישומי קוד מתחת לכל דמות שאומרות לך 81 00:04:30,280 --> 00:04:33,270 איך לגרום לך כל דמות עם קוד R. 82 00:04:33,270 --> 00:04:37,400 וזה מאוד שימושי אם אתה מנסה לחקות 83 00:04:37,400 --> 00:04:38,650 כמה דמות שאתה רואה בספר. 84 00:04:38,650 --> 00:04:47,840 >> ולהוריד שוב בחינם stat.cmu.edu/cshalizi/ מצטער, 85 00:04:47,840 --> 00:04:50,230 כי יש לקצץ cshalizi טילדה. 86 00:04:50,230 --> 00:04:53,150 אני אוודא לתקן ש כאשר השקופיות הרשמיות לעלות. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV שהוא רק ראשי התיבות של כותרת הספר. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> R caveats-- אז כללי יש לו הרבה יכולות. 90 00:05:02,500 --> 00:05:05,331 אני הולך רק כדי להיות מסוגל לכסות פני השטח של הרבה דברים. 91 00:05:05,331 --> 00:05:08,580 גם החלק הראשון של הסמינר הולך להיות משהו של מזבלה נתונים. 92 00:05:08,580 --> 00:05:11,437 אני די מצטער על כך. 93 00:05:11,437 --> 00:05:13,770 בעיקרון, אני הולך אכיר לך הרבה דברים 94 00:05:13,770 --> 00:05:15,350 מייד את הבת, הולך מהר ככל האפשר. 95 00:05:15,350 --> 00:05:17,058 ואז אנחנו מגיעים ל החלק המהנה, שהוא 96 00:05:17,058 --> 00:05:20,570 ההדגמה שבו אני יכול להראות לך הכל שדברנו על על המסך. 97 00:05:20,570 --> 00:05:23,321 ואתה יכול לשחק בעצמך. 98 00:05:23,321 --> 00:05:26,070 אז יש הולך להיות הרבה נזרקו עד דברים טכניים על כאן. 99 00:05:26,070 --> 00:05:28,060 אל תדאגו העתקה את כל זה. 100 00:05:28,060 --> 00:05:31,740 משום, שאתה יכול לקבל את כל דברים באתר CS50 מאוחר יותר. 101 00:05:31,740 --> 00:05:37,780 ו- B, זה לא באמת כל כך חשוב לשנן את זה מהשקופיות. 102 00:05:37,780 --> 00:05:40,462 זה יותר חשוב כי אתה מקבל כמה מתקן אינטואיטיבי עם זה 103 00:05:40,462 --> 00:05:44,220 ושמגיע מרק משתעשע. 104 00:05:44,220 --> 00:05:45,720 >> אז למה להשתמש R? 105 00:05:45,720 --> 00:05:49,440 בעיקרון, אם יש לך פרויקט ש כרוך כריית ערכות נתונים גדולות, נתונים 106 00:05:49,440 --> 00:05:52,664 הדמיה, צריך להשתמש ר 'אם אתה 107 00:05:52,664 --> 00:05:55,830 עושה ניתוחים סטטיסטיים מורכבים, שיהיה קשה ב- Excel, 108 00:05:55,830 --> 00:05:58,010 לדוגמא, זה היה גם good-- גם 109 00:05:58,010 --> 00:06:00,506 אם אתה עושה סטטיסטי ניתוח זה אוטומטי. 110 00:06:00,506 --> 00:06:02,130 בואו נגיד שאתה תחזוקה של אתר אינטרנט. 111 00:06:02,130 --> 00:06:06,320 ואתה רוצה לקרוא את יומן השרת כל יום ולאסוף כמה רשימה, 112 00:06:06,320 --> 00:06:10,320 כמו המדינות המובילות ש המשתמשים שלך מגיעים, 113 00:06:10,320 --> 00:06:15,100 כמה נתונים סטטיסטיים סיכום על כמה זמן הם מבלים באתר או בכל מה ששלך. 114 00:06:15,100 --> 00:06:16,910 ואתה רוצה להפעיל את זה כל יום. 115 00:06:16,910 --> 00:06:20,280 >> עכשיו, אם אתה עושה את זה ב- Excel, היית צריך ללכת ליומן השרת שלך, 116 00:06:20,280 --> 00:06:23,490 לייבא את זה לתוך גיליון אלקטרוני Excel נתונים, 117 00:06:23,490 --> 00:06:24,910 להפעיל את כל הניתוח באופן ידני. 118 00:06:24,910 --> 00:06:27,100 עם R, אתה יכול פשוט לכתוב תסריט אחד. 119 00:06:27,100 --> 00:06:29,520 לתזמן אותו לרוץ כל יום ממערכת ההפעלה שלך. 120 00:06:29,520 --> 00:06:33,657 ואז כל לילה בשעה 2:00 בבוקר, או בכל פעם שאתה לתזמן אותו לרוץ, 121 00:06:33,657 --> 00:06:35,990 זה ייראה דרכך תעבורת אינטרנט באותו יום. 122 00:06:35,990 --> 00:06:39,010 ולאחר מכן על ידי הבא היום, תוכל יש לי דו"ח מבריק, חדש 123 00:06:39,010 --> 00:06:41,710 או מה עם כל מידע שביקשת. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> אז בעצם R הוא עבור סיסקו תכנות לעומת ניתוח סיסקו. 126 00:06:50,217 --> 00:06:51,050 ראשוני נעשה. 127 00:06:51,050 --> 00:06:53,104 בואו להיכנס לדברים האמיתיים. 128 00:06:53,104 --> 00:06:55,020 אז יש שלוש אמיתיים סוגים בשפה. 129 00:06:55,020 --> 00:06:56,120 יש סוג מספרי. 130 00:06:56,120 --> 00:07:01,250 יש סוג של הבדל בין מספרים שלמים ונקודות צפות, 131 00:07:01,250 --> 00:07:02,769 אבל לא ממש. 132 00:07:02,769 --> 00:07:04,560 יש אופי הקלד, אשר היא מחרוזות. 133 00:07:04,560 --> 00:07:07,100 ויש הגיוני הקלד, שהוא Booleans. 134 00:07:07,100 --> 00:07:11,080 >> ואתה יכול להמיר בין סוגים שימוש בפונקציות אלה כמספריים, 135 00:07:11,080 --> 00:07:15,220 כדמות, כהגיוני. 136 00:07:15,220 --> 00:07:17,510 אם אתה קורא, למשל, כמספרי על חוט, 137 00:07:17,510 --> 00:07:20,030 הוא ינסה לקרוא מחרוזת ש כמספר, באותה הדרך 138 00:07:20,030 --> 00:07:25,897 שa2i וscanf לעשות, ואם ג אתה קורא כמספרי על אמת או שקר 139 00:07:25,897 --> 00:07:26,980 זה יהיה להמיר עד 1 או 0. 140 00:07:26,980 --> 00:07:29,110 אם אתה קורא כדמות על כל דבר שהוא ימצא 141 00:07:29,110 --> 00:07:32,550 להמיר את זה ב ייצוג מחרוזת. 142 00:07:32,550 --> 00:07:34,990 >> ואז יש וקטורים ומטריצות. 143 00:07:34,990 --> 00:07:37,580 אז וקטורים הם בעצם 1 מערכים ממדיים. 144 00:07:37,580 --> 00:07:40,600 הם מה שאנו מכנים במערכים ג מטריצות, 2 מערכים ממדיים. 145 00:07:40,600 --> 00:07:42,350 ואז גבוה יותר ממדיים מערכים שאתה יכול 146 00:07:42,350 --> 00:07:48,560 יש 3, 4, 5 ממדים או מה ש של ערכים מספריים, מחרוזות, 147 00:07:48,560 --> 00:07:52,860 ערכים של הגיוניים. 148 00:07:52,860 --> 00:07:55,380 >> יש לך גם רשימות ש סוג של מערך אסוציאטיבי. 149 00:07:55,380 --> 00:07:57,390 אני נכנסתי לזה קצת. 150 00:07:57,390 --> 00:07:59,390 אז דבר אחד חשוב כי טיולים עד אנשים בR 151 00:07:59,390 --> 00:08:01,470 הוא שאין , סוגים אטומיים טהורים אמיתיים. 152 00:08:01,470 --> 00:08:05,870 אין הבחנה ממשית בין מספר, כמו ערך מספרי, 153 00:08:05,870 --> 00:08:07,920 ורשימה של ערכים מספריים. 154 00:08:07,920 --> 00:08:12,370 ערכים מספריים הם למעשה כמו הווקטורים באורך 1. 155 00:08:12,370 --> 00:08:14,959 ואת זה יש מספר השלכות חשובות. 156 00:08:14,959 --> 00:08:17,500 אחד, זה אומר שאתה יכול לעשות דברים בקלות רב הכרוכים ב 157 00:08:17,500 --> 00:08:21,037 כמו הוספת מספר לוקטור. 158 00:08:21,037 --> 00:08:23,120 R יהיה בעצם דמות מה אתה מתכוון בזה. 159 00:08:23,120 --> 00:08:24,610 ואני אגיע לזה בשנייה. 160 00:08:24,610 --> 00:08:27,930 זה גם אומר שאין שום דרך לסוג checker-- למידה 161 00:08:27,930 --> 00:08:30,530 שמשהו כזה קיים בr-- לספר 162 00:08:30,530 --> 00:08:33,780 כשאתה כבר עברת בערך היחיד כאשר היא מצפה להיפך מערך או סגן. 163 00:08:33,780 --> 00:08:39,159 וזה יכול לגרום לכמה מוזר צרות שאני נתקלתי בכאשר 164 00:08:39,159 --> 00:08:42,252 אני משתמש R בעבודת הקיץ שלי. 165 00:08:42,252 --> 00:08:43,710 ואין מערכים מעורב-סוג. 166 00:08:43,710 --> 00:08:46,543 אז אתה לא יכול להיות מערך היה האלמנטים ראשון, אני לא יודע, 167 00:08:46,543 --> 00:08:49,332 המחרוזת "ג'ון" ו אלמנט שני הוא מספר 42. 168 00:08:49,332 --> 00:08:52,540 אם אתה מנסה לעשות את זה, אז אתה תקבל כמעט כל מה יומר למחרוזת. 169 00:08:52,540 --> 00:08:54,760 אז יש לנו מחרוזת ג'ון, מחרוזת 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> תחבירי כל כך יוצא דופן features-- ביותר של R תחביר דומה מאוד לג 172 00:09:02,025 --> 00:09:04,690 יש כמה הבדלים חשובים. 173 00:09:04,690 --> 00:09:05,620 הקלדה היא חלשה מאוד. 174 00:09:05,620 --> 00:09:07,360 ולכן אין הצהרות משתנים. 175 00:09:07,360 --> 00:09:12,670 הקצאה משתמשת המוזרה מפעיל שגיאה פחות ממקף. 176 00:09:12,670 --> 00:09:15,340 תגובות הן עם סימן החשיש. 177 00:09:15,340 --> 00:09:19,230 אני מניח שעכשיו ימים אנחנו קוראים לזה hashtag אם כי זה לא ממש accurate-- לא 178 00:09:19,230 --> 00:09:21,810 הקו הנטוי הכפול. 179 00:09:21,810 --> 00:09:24,710 >> שאריות מודולרי הן עם סימני %%. 180 00:09:24,710 --> 00:09:30,172 חלוקת מספר שלם היא עם% /% שהוא מאוד קשה לקריאה כאשר הוא מוקרן 181 00:09:30,172 --> 00:09:30,880 על המסך. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 אתה יכול לקבל טווחים של מספרים שלמים עם המעי הגס. 184 00:09:37,200 --> 00:09:41,840 אז 2,5 ייתן לך וקטור של כל המספרים 2 עד 5. 185 00:09:41,840 --> 00:09:44,530 >> מערכים צמודים אחד, שברגים הרבה אנשים 186 00:09:44,530 --> 00:09:47,540 עד אם הם מיותר שפות תכנות טיפוסיות, 187 00:09:47,540 --> 00:09:50,450 כמו C, שבו רוב הדברים אפס צמודים. 188 00:09:50,450 --> 00:09:54,420 שוב, זה שבו המורשת של R כשפה ללא כמו 189 00:09:54,420 --> 00:09:56,560 מתכנתים מקצועיים מגיעים ב. 190 00:09:56,560 --> 00:09:59,680 אם אתה סוציולוג או כלכלן או משהו 191 00:09:59,680 --> 00:10:01,980 ואתה מנסה להשתמש R בעצם כתוספת 192 00:10:01,980 --> 00:10:03,832 לחשוב יותר עבודה מקצועית, 193 00:10:03,832 --> 00:10:06,040 אתה הולך למצוא אחד-אינדקס קצת יותר טבעי. 194 00:10:06,040 --> 00:10:09,890 מכיוון שאתה מתחיל לספור ב 1 בחיי היומיום, לא 0. 195 00:10:09,890 --> 00:10:13,260 >> ל- לולאות, זה דומה ל foreach לבנות ב- PHP, 196 00:10:13,260 --> 00:10:17,090 שתקבל ל ללמוד in-- די מהר. 197 00:10:17,090 --> 00:10:22,540 שהוא ערך בוקטור ו אז אתה יכול לעשות דברים עם ערך. 198 00:10:22,540 --> 00:10:24,040 קהל: זה לבוא בהרצאה. 199 00:10:24,040 --> 00:10:26,248 קונור אריס: אה, זה לבוא הרצאה, מעולה. 200 00:10:26,248 --> 00:10:29,815 קהל: המשימה, הוא אותו אמור להצביע מימין לשמאל? 201 00:10:29,815 --> 00:10:31,440 קונור אריס: מימין לשמאל, כן. 202 00:10:31,440 --> 00:10:34,720 אתה יכול לחשוב על זה כעל הערך הזכות דחפה לתוך המשתנה 203 00:10:34,720 --> 00:10:36,240 בצד שמאל. 204 00:10:36,240 --> 00:10:36,781 קהל: אישור. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> קונור אריס: ולבסוף תחביר פונקציה הוא קצת מוזר. 207 00:10:42,330 --> 00:10:48,460 יש לך את שם הפונקציה foo, הוקצה לפונקציה זו מילת המפתח, ואחרי 208 00:10:48,460 --> 00:10:51,530 על ידי כל הטיעונים ולאחר מכן גוף של הפונקציה לאחר ש. 209 00:10:51,530 --> 00:10:53,280 שוב הדברים האלה רשאי נראה קצת מוזר. 210 00:10:53,280 --> 00:10:57,181 הם יהפכו לטבע שני לאחר אתה עובד עם השפה קצת. 211 00:10:57,181 --> 00:10:58,930 אז וקטורים, הדרך לך לבנות וקטור 212 00:10:58,930 --> 00:11:04,550 הוא הסוג C, אשר הוא מילת מפתח, אז כל המספרים שאתה רוצה או מחרוזות 213 00:11:04,550 --> 00:11:06,490 או מה שלא יהיה. 214 00:11:06,490 --> 00:11:07,995 טענות גם להיות וקטורים. 215 00:11:07,995 --> 00:11:09,620 אבל מערך התוצאה מקבל בברוטליות. 216 00:11:09,620 --> 00:11:14,385 אז אתה לא יכול לקבל מערכים בי כמה אלמנטים מספרים בודדים 217 00:11:14,385 --> 00:11:17,010 וכמה אלמנטים הם מערכים עצמם. 218 00:11:17,010 --> 00:11:20,010 >> אז אם אתה מנסה לבנות המערך היה האלמנט הראשון הוא 4 219 00:11:20,010 --> 00:11:22,370 והמרכיב השני הוא 3.5 המערך אתה 220 00:11:22,370 --> 00:11:25,890 רק לקבל מערך שלושה אלמנטים, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 הם לא יכולים להיות מעורב סוג. 222 00:11:27,760 --> 00:11:32,290 אם אתה מנסה לקרוא או לכתוב מחוץ לגבולות וקטור 223 00:11:32,290 --> 00:11:36,640 תקבל הערך הזה שנקרא NA אשר מייצג ערך חסר. 224 00:11:36,640 --> 00:11:39,900 וזה מיועד ל כמו סטטיסטיקאים ש 225 00:11:39,900 --> 00:11:43,080 עובדים עם ערכות נתונים שלמות. 226 00:11:43,080 --> 00:11:46,460 >> אם תחיל פונקציה שאמורה לקחת רק מספר אחד למערך 227 00:11:46,460 --> 00:11:49,220 אז מה שתקבל הוא, פונקציה תמפה על המערך. 228 00:11:49,220 --> 00:11:52,130 אז אם הפונקציה שלך נניח לוקח מספר ומחזיר אותו מרובע. 229 00:11:52,130 --> 00:11:58,170 החלת שלמערך 2,3,5 מה שתקבל הוא את המערך 4,9,25. 230 00:11:58,170 --> 00:12:00,010 >> וזה מאוד שימושי כי זה אומר שאתה 231 00:12:00,010 --> 00:12:03,374 לא צריך לכתוב ללולאות ל עושה דברים מאוד פשוטים כמו החלת 232 00:12:03,374 --> 00:12:05,040 פונקציה לכל החברים של קבוצת נתונים. 233 00:12:05,040 --> 00:12:08,557 שאם אתה עובד עם גדול ערכות נתונים, אתה צריך לעשות הרבה. 234 00:12:08,557 --> 00:12:10,390 פונקציות בינארי הן כניסה מיושמת על ידי כניסה. 235 00:12:10,390 --> 00:12:12,430 אני נכנסתי לזה. 236 00:12:12,430 --> 00:12:16,750 אתה יכול לגשת אליהם עם מערכים או וקטורים עם סוגריים מרובעים. 237 00:12:16,750 --> 00:12:22,300 סוגריים אז את שם וקטור מרובע 1 אתן לך את האלמנט הראשון. 238 00:12:22,300 --> 00:12:25,510 סוגריים מרובעים שם וקטור 2 אתן לך את המרכיב השני. 239 00:12:25,510 --> 00:12:27,530 >> אתה יכול לעבור על וקטור מדדים ואתה תמצאו 240 00:12:27,530 --> 00:12:29,640 לחזור החוצה בעצם גורם תת. 241 00:12:29,640 --> 00:12:34,990 אז אתה יכול לעשות C שם סוגריים וקטור, 2,4 ותקבל את וקטור המכיל 242 00:12:34,990 --> 00:12:38,804 השני והרביעי אלמנטים של המערך. 243 00:12:38,804 --> 00:12:40,720 ואם אתה רוצה רק נתון סיכום מהיר 244 00:12:40,720 --> 00:12:47,529 של וקטור כמו רבעוני טווח, חציון, מקסימום, מה, 245 00:12:47,529 --> 00:12:49,820 אתה יכול פשוט להקליד סיכום שם וקטור ולקבל את זה. 246 00:12:49,820 --> 00:12:52,680 זה לא ממש שימושי ב תכנות אבל אם אתה משחק 247 00:12:52,680 --> 00:12:55,990 סביב ערכות נתונים, זה שימושי. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- בעצם מערכי ממדים גבוהים יותר. 249 00:12:58,650 --> 00:13:01,190 יש להם תחביר סימון מיוחד זה. 250 00:13:01,190 --> 00:13:07,620 מטריקס עם מערך שמקבל מילא in-- מצטערת, מטריצה ​​עם נתונים, 251 00:13:07,620 --> 00:13:09,780 מספר השורות, מספר העמודות. 252 00:13:09,780 --> 00:13:13,180 כאשר יש לך כמה נתונים, זה ממלא ב המערך בעצם הולך מלמעלה למטה 253 00:13:13,180 --> 00:13:13,380 ראשון. 254 00:13:13,380 --> 00:13:14,190 אז משמאל לימין. 255 00:13:14,190 --> 00:13:15,030 אז, כמו ש. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 וR בנה ב כפל מטריצה, 258 00:13:19,600 --> 00:13:24,310 פירוק ספקטרלי, diagonalization, הרבה דברים. 259 00:13:24,310 --> 00:13:27,785 אם אתה רוצה ממדי גבוה יותר מערכים, כך 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 או מה שממדים אתה יכול לעשות את זה. 261 00:13:29,410 --> 00:13:34,400 התחביר הוא עמום מערך שווה ג, אז הרשימה של הממדים. 262 00:13:34,400 --> 00:13:38,620 אז אם אתה רוצה מערך ממדי 4 עם ממדים 4, 7, 8, 9, המערך, 263 00:13:38,620 --> 00:13:45,470 עמום שווה ג (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> אתה ניגש לערכים יחידים עם סוגריים פסיק כניסה ראשון כניסה שנייה. 265 00:13:51,180 --> 00:13:54,870 אתה יכול לקבל כל פרוסות של שורות או עמודות. 266 00:13:54,870 --> 00:13:59,900 עם תחביר שלם זה זה רק שורה או עמודת פסיק מספר פסיק 267 00:13:59,900 --> 00:14:00,400 מִספָּר. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 אז רשימות הן סוג של המערך קשור. 270 00:14:04,540 --> 00:14:06,360 יש להם התחביר שלהם כאן. 271 00:14:06,360 --> 00:14:08,320 לעשות שוב לא בטירוף להעתיק את כל זה. 272 00:14:08,320 --> 00:14:11,370 זה רק כדי שאנשים עובר את השקופיות מאוחר יותר 273 00:14:11,370 --> 00:14:13,089 יש את כל זה בהתייחסות נחמדה. 274 00:14:13,089 --> 00:14:16,130 וזה יהפוך ברגע מאוד טבעי אני באמת ללכת דרך ההדגמות. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 אז מפרט מערכים בעצם קשורים. 277 00:14:20,920 --> 00:14:27,040 אתה יכול לגשת לערכים ב שם רשימה, סימן דולר, מפתח. 278 00:14:27,040 --> 00:14:31,370 אז אם הרשימה שלך נקראת foo, אז אתה יכול לגשת אליו ככה. 279 00:14:31,370 --> 00:14:37,032 אתה יכול לקבל זוג מפתחות-ערך כל על ידי עובר במדד הסוגר המרובע. 280 00:14:37,032 --> 00:14:39,240 אם אתה קורא מאינו קיים מפתח, תקבל null. 281 00:14:39,240 --> 00:14:41,150 זה לא שגיאה. 282 00:14:41,150 --> 00:14:43,590 עניין הוא, R יעשה כ הרבה עם null כפי שהוא יכול. 283 00:14:43,590 --> 00:14:46,580 וזה יכול להיות שאם אתה לא מצפה לקבל את null 284 00:14:46,580 --> 00:14:51,840 חלק קריאת רשימה, תקבל כמה שגיאות בלתי צפויות בהמשך 285 00:14:51,840 --> 00:14:52,620 השורה. 286 00:14:52,620 --> 00:14:54,890 >> זה קרה לי שלי עבודה בקיץ כאשר הייתי משתמש R 287 00:14:54,890 --> 00:14:58,410 שבו שיניתי את אופן מסוים רשימה הוגדרה במקום אחד 288 00:14:58,410 --> 00:15:05,410 אבל לא שינה בשלב מאוחר יותר קוד שקורא ערכים מזה. 289 00:15:05,410 --> 00:15:10,190 ואז מה שקרה הוא שהייתי קריאת ערכים מתוך רשימה זו null, 290 00:15:10,190 --> 00:15:13,090 עובר אותם לפונקציות, ולהיות מאוד מבולבל 291 00:15:13,090 --> 00:15:16,000 כשהגעתי כל מיני אינסופים אקראיים צצים 292 00:15:16,000 --> 00:15:16,790 בפונקציה זו. 293 00:15:16,790 --> 00:15:20,730 כי אם אתה מחיל מרבי מסוים או פונקציות מינימום ל null, 294 00:15:20,730 --> 00:15:22,570 תקבל את ערכים אינסופיים. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> מסגרות נתונים, הם סדרה של רשימה. 297 00:15:29,180 --> 00:15:31,170 כל ערך הוא וקטור באותו האורך. 298 00:15:31,170 --> 00:15:34,220 והם משמשים להצגת, בעצם, טבלאות נתונים. 299 00:15:34,220 --> 00:15:36,175 יש תחביר אתחול זה. 300 00:15:36,175 --> 00:15:38,800 זה יהיה כל, שוב, יהיה הרבה ברור כשאתה מגיע להדגמה. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 והדבר נחמד על מסגרות הנתונים היא שאתה 303 00:15:44,240 --> 00:15:49,380 יכול לתת שמות לכל הטורים ושמות לכל השורות. 304 00:15:49,380 --> 00:15:53,890 וכך זה עושה את הגישה אותם קצת יותר ידידותיים. 305 00:15:53,890 --> 00:15:59,130 גם ככה רוב הפונקציות ש לקרוא בנתונים מגיליונות אלקטרוניים Excel 306 00:15:59,130 --> 00:16:03,820 או מקבצי טקסט, למשל, יקרא בנתונים שלהם. 307 00:16:03,820 --> 00:16:07,555 הם הכניסו אותו לתוך איזה מסגרת נתונים. 308 00:16:07,555 --> 00:16:09,680 אז functions-- הפונקציות התחביר הוא קצת מוזר. 309 00:16:09,680 --> 00:16:16,160 שוב זה את השם של הפונקציה, להקצות, פונקצית מילת מפתח זו ולאחר מכן 310 00:16:16,160 --> 00:16:17,900 הרשימה של טיעונים. 311 00:16:17,900 --> 00:16:24,080 אז יש כמה דברים נחמדים על איך פונקציות לעבוד כאן. 312 00:16:24,080 --> 00:16:28,170 לאחד, למעשה אתה יכול להקצות ערכי ברירת מחדל לטענות מסוימות. 313 00:16:28,170 --> 00:16:32,910 אז אתה יכול לומר R1 equals-- אתה יכול להגיד foo 314 00:16:32,910 --> 00:16:38,290 היא פונקציה שבי R1 שווה משהו כברירת מחדל, אם המשתמש מציין 315 00:16:38,290 --> 00:16:39,090 אין טענות. 316 00:16:39,090 --> 00:16:41,932 אחרת, זה כל מה שהוא מכניס. 317 00:16:41,932 --> 00:16:44,140 וזה מאוד נוח כי הרבה פונקציות שלנו 318 00:16:44,140 --> 00:16:47,910 יש לעתים קרובות עשרות או מאות טיעונים. 319 00:16:47,910 --> 00:16:51,210 לדוגמא אלה לזוממים גרפים או מגרשי פיזור זוממים 320 00:16:51,210 --> 00:16:54,430 יש טענות ששולטות הכל מהסרט והציר 321 00:16:54,430 --> 00:16:59,512 תוויות לצבע של קווי רגרסיה. 322 00:16:59,512 --> 00:17:01,470 ולכן אם אתה לא רוצה כדי לגרום לאנשים לציין 323 00:17:01,470 --> 00:17:04,050 כל אחד מאלה מאות טיעונים 324 00:17:04,050 --> 00:17:07,674 שליטה בכל היבט של עלילה או רגרסיה או מה, 325 00:17:07,674 --> 00:17:09,299 זה נחמד שיש ערכי ברירת מחדל אלה. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> ואז אתה בעצם יכול לכתוב כמו שאתה ראית לכאן. 328 00:17:19,146 --> 00:17:22,869 או למצוא דוגמא טובה יותר. 329 00:17:22,869 --> 00:17:28,690 כאשר אתה קורא פונקציות שאתה באמת יכול קורא להם באמצעות שמות הטיעון. 330 00:17:28,690 --> 00:17:33,919 אז הנה דוגמא ל בנאי המטריצה. 331 00:17:33,919 --> 00:17:34,960 זה לוקח שלוש טענות. 332 00:17:34,960 --> 00:17:36,760 בדרך כלל יש לך נתונים, אשר הוא וקטור. 333 00:17:36,760 --> 00:17:38,920 יש לך שורת N, ש הוא מספר השורות. 334 00:17:38,920 --> 00:17:41,160 יש לך N cols-- מספר העמודות. 335 00:17:41,160 --> 00:17:43,920 העניין הוא אם אתה מקליד שורת N שווה כל מה ש 336 00:17:43,920 --> 00:17:46,520 וcol N שווה כל עת אתה קורא בפונקציה זו, 337 00:17:46,520 --> 00:17:47,770 למעשה אתה יכול להפוך אותם. 338 00:17:47,770 --> 00:17:51,590 אז אתה יכול לשים את col N ראשון ושורת N שני וזה יעשה את כל הבדל. 339 00:17:51,590 --> 00:17:54,660 אז זה תכונה קטנה ונחמדה. 340 00:17:54,660 --> 00:17:56,260 >> עשה יבוא ויצוא. 341 00:17:56,260 --> 00:18:00,010 ניתן לעשות זאת, בעצם. 342 00:18:00,010 --> 00:18:03,816 ישנם גם מתקנים לכתוב את R השרירותי מתנגד לקובץ בינארי 343 00:18:03,816 --> 00:18:05,190 ולאחר מכן לקרוא אותם בחזרה במועד מאוחר יותר. 344 00:18:05,190 --> 00:18:08,030 וזה נוח אם אתה עושה R הפעלה אינטראקטיבי גדול 345 00:18:08,030 --> 00:18:12,850 ואתה צריך לשמור דברים מהר מאוד. 346 00:18:12,850 --> 00:18:16,460 כברירת מחדל R יש ספריית עבודה כי קבצים ייכתבו אל 347 00:18:16,460 --> 00:18:19,410 ולקרוא בחזרה מ. 348 00:18:19,410 --> 00:18:22,350 ניתן לראות כי ב getwg, לשנות אותו עם setdw. 349 00:18:22,350 --> 00:18:25,630 שום דבר לא מעניין במיוחד כאן 350 00:18:25,630 --> 00:18:28,270 >> אז עכשיו את הסטטיסטיקה בפועל stuff-- רגרסיה multilinear. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 אז התחביר הרגיל זה קצת מסובך. 353 00:18:34,910 --> 00:18:37,260 המודל הוא אובייקט גדול בעצם. 354 00:18:37,260 --> 00:18:39,910 הוא מקבל שהוקצה לLM, אשר היא קריאה לפונקציה. 355 00:18:39,910 --> 00:18:43,840 האלמנט הראשון, y x1 טילדה בתוספת מה ש. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 התחביר שלי כאן הוא קצת מבלבל. 358 00:18:47,990 --> 00:18:49,490 אני מצטער מאוד, זה היא הדרך סטנדרטית 359 00:18:49,490 --> 00:18:50,990 שספרי מדע המחשב לעשות את זה. 360 00:18:50,990 --> 00:18:54,890 אבל זה קצת מוזר. 361 00:18:54,890 --> 00:18:58,200 >> אז בעצם, זה LM סוגריים פריט, ראשון 362 00:18:58,200 --> 00:19:06,730 הוא variable-- מצטערים, תלוי x1 טילדה משתנה בתוספת x2 בתוספת 363 00:19:06,730 --> 00:19:10,910 עם זאת רבים עצמאיים משתנים שיש לך. 364 00:19:10,910 --> 00:19:14,240 ואז אלה יכולים להיות או וקטורים, כל באותו האורך. 365 00:19:14,240 --> 00:19:16,220 או שהם יכולים להיות טור כותרות במסגרת הנתונים 366 00:19:16,220 --> 00:19:18,553 כי אתה פשוט לציין ב מסגרת נתוני טיעון שנייה. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> ניתן גם לציין נוסחה מורכבת יותר 369 00:19:26,380 --> 00:19:31,990 ולכן אין לך באופן ליניארי לסגת משתנה אחד תלוי, 370 00:19:31,990 --> 00:19:34,440 או וקטור אחד על וקטור קיים מראש. 371 00:19:34,440 --> 00:19:38,070 אתה יכול לעשות, למשל, y רכיב וקטור בריבוע בתוספת 1 372 00:19:38,070 --> 00:19:42,100 ולסגת כי נגד יומן של כמה וקטור אחר. 373 00:19:42,100 --> 00:19:45,200 אתה יכול להדפיס סיכומים מודל עם פקודה זו נקראת 374 00:19:45,200 --> 00:19:48,607 summary-- רק סיכום פארנס מודל. 375 00:19:48,607 --> 00:19:50,190 שוב משהו אחר שאני צריך להבהיר. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 משהו אחר שיקבלו מתוקן כאשר השקופיות לעלות באינטרנט. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 אם אתה רק רוצה לחשב מתאם פשוט 380 00:20:03,210 --> 00:20:09,170 אתה יכול להשתמש במתאם וקטור וקטור 1 2 ליבת פונקציה. 381 00:20:09,170 --> 00:20:11,856 שיטה היא כברירת מחדל מתאמי פירסון. 382 00:20:11,856 --> 00:20:13,480 אלה הם סטנדרטיים אלה שאתה יכול לעשות. 383 00:20:13,480 --> 00:20:15,990 יש גם חנית ו מתאמי Kendell 384 00:20:15,990 --> 00:20:19,530 שכמה מגוון מתאם כדי דרגה. 385 00:20:19,530 --> 00:20:23,600 ובכן הם לא לחשב מוצר רגעים שבין הווקטורים עצמם, 386 00:20:23,600 --> 00:20:28,511 אבל בדרגת ההזמנות של הווקטור. 387 00:20:28,511 --> 00:20:29,510 אני אסביר כי מאוחר יותר. 388 00:20:29,510 --> 00:20:30,120 >> קהל: שאלה מהירה 389 00:20:30,120 --> 00:20:30,360 >> CONNER אריס: בטח. 390 00:20:30,360 --> 00:20:33,151 >> קהל: אז כשאתה אתה חישוב למתאמים הפשוטים לעשות 391 00:20:33,151 --> 00:20:37,655 אתה מניח שיש סטטיסטי משמעות למתאם? 392 00:20:37,655 --> 00:20:39,030 CONNER אריס: אתה לא צריך. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 LM הוא בעצם רק מכונה. 395 00:20:43,960 --> 00:20:47,690 זה ייקח בשני דברים וזה יהיה לירוק 396 00:20:47,690 --> 00:20:49,770 מקדמי הקו בכושר הטוב ביותר. 397 00:20:49,770 --> 00:20:52,310 כמו כן מדווח סטנדרטי שגיאות במקדמים אלה. 398 00:20:52,310 --> 00:20:55,865 והוא יגיד לך, כמו הוא ליירט משמעותי מבחינה סטטיסטית 399 00:20:55,865 --> 00:20:56,740 או הבדל בין 0. 400 00:20:56,740 --> 00:20:59,400 האם שיפוע הטוב ביותר קו הכושר סטטיסטי 401 00:20:59,400 --> 00:21:01,510 שונה מאפס, וכולי. 402 00:21:01,510 --> 00:21:06,260 אז הוא מניח שום דבר, אני חושב ש היא התשובה הטובה ביותר לשאלתך. 403 00:21:06,260 --> 00:21:07,410 אוקיי. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- כך הסיבה העיקרית שאתה צריך להשתמש R, כמו רגרסיה multilinear. 405 00:21:14,650 --> 00:21:17,320 בעיקרון כל שפה יש כמה מתקן של. 406 00:21:17,320 --> 00:21:21,365 והתחביר בכנות של R ל רגרסיה היא מסתורית קצת. 407 00:21:21,365 --> 00:21:22,990 אבל מזימות היא המקום שבו באמת זורחת. 408 00:21:22,990 --> 00:21:28,090 >> פונקצית סוס העבודה היא עלילה וזה לוקח שני וקטורים, x ו- y. 409 00:21:28,090 --> 00:21:33,010 ולאחר מכן האליפסות מייצגת מאוד מספר גדול של טיעונים אופציונליים ש 410 00:21:33,010 --> 00:21:39,190 לשלוט בכל דבר מכותרות לצבעים של קווים שונים או נקודות שונות, 411 00:21:39,190 --> 00:21:40,200 לסוג של עלילה. 412 00:21:40,200 --> 00:21:42,250 אתה יכול להיות פיזור חלקות או מגרשי קו. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> 2 וקטורים [לא ברור] באותו האורך. 415 00:21:49,710 --> 00:21:53,780 אתה יכול להקדים את זה עם חבר מסגרת הנתונים בתסריט שלך. 416 00:21:53,780 --> 00:22:01,220 וזה יאפשר לך פשוט להשתמש בעמודה כותרות במקום וקטורים נפרדים. 417 00:22:01,220 --> 00:22:05,410 אתה יכול להוסיף קווים בכושר הטובים ביותר ומקומיים עקומות רגרסיה לגרף שלך. 418 00:22:05,410 --> 00:22:09,390 >> פקודות אלה רשומות כאן, ab קו וקווים, 419 00:22:09,390 --> 00:22:11,640 כברירת מחדל אלה מקבלים נכתב בחלונות קופצים 420 00:22:11,640 --> 00:22:15,560 משום שהיא מניחה ש אתה משתמש R אינטראקטיבי. 421 00:22:15,560 --> 00:22:17,310 אם אתה לא יכול לכתוב שני קבצים ש 422 00:22:17,310 --> 00:22:21,600 בבאמת כל פורמט שאתה רוצה. 423 00:22:21,600 --> 00:22:25,410 מצטער, יש לי טעות דפוס רק עכשיו הבנתי. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 אם אתה רוצה לפתוח עוד מכשיר גרפי 426 00:22:32,720 --> 00:22:39,200 אתה יכול להשתמש בפונקציה זו נקראת PNG או JPEG או הרבה פורמטים של תמונות אחרות. 427 00:22:39,200 --> 00:22:42,319 ואתה יכול לכתוב גרפים ל מה שם קובץ שאתה מציין. 428 00:22:42,319 --> 00:22:45,110 כדי לבטל שיש לך use-- אני לא כותב את זה בslide-- 429 00:22:45,110 --> 00:22:49,650 אבל יש פונקציה שנקראת dev נקודת הנחה שלא לוקחת את טענות. 430 00:22:49,650 --> 00:22:51,517 >> אז יש מתקנים למזימות 3D 431 00:22:51,517 --> 00:22:53,350 ולגובה זומם אם אתה רוצה לעשות 432 00:22:53,350 --> 00:22:55,700 גרפים של שני משתנים בלתי תלויים. 433 00:22:55,700 --> 00:22:57,150 אני לא אכנס לאלה עכשיו. 434 00:22:57,150 --> 00:22:59,130 >> יש גם כמה מתקנים לאנימציה 435 00:22:59,130 --> 00:23:01,300 אלה הם בדרך כלל מתוחזק על ידי צדדים שלישיים. 436 00:23:01,300 --> 00:23:06,330 עשיתי אנימציות עם גרפים R, אבל לא השתמשתי צד השלישי אלה 437 00:23:06,330 --> 00:23:06,940 ספריות. 438 00:23:06,940 --> 00:23:09,929 אז אני לא ממש יכול להעיד לכמה הם טובים. 439 00:23:09,929 --> 00:23:12,220 מה שאני ממליץ אם אתה רוצה לעשות אנימציות באמצעות R 440 00:23:12,220 --> 00:23:16,480 הוא אתה יכול לכתוב את כל המסגרות לאנימציות 441 00:23:16,480 --> 00:23:18,470 ואז אתה יכול להשתמש program-- הצד השלישי 442 00:23:18,470 --> 00:23:23,630 טיפוסיים אלה נקראים FFmpeg או ImageMagick-- לתפור 443 00:23:23,630 --> 00:23:26,540 כל מסגרותיך לאנימציה אחת. 444 00:23:26,540 --> 00:23:28,380 >> אז בפעם להדגמה. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 אז אם אתה משתמש בכל יוניקס כמו מערכת אשר הוא BSD לינוקס, אבל מי שמשתמש BSD. 447 00:23:37,189 --> 00:23:39,730 X OS לפתוח חלון מסוף ו Type R בשורת הפקודה. 448 00:23:39,730 --> 00:23:42,820 אם יש לך אולפן R או כמו, שגם עובד. 449 00:23:42,820 --> 00:23:46,270 למשתמשי Windows אתה צריך להיות תוכל למצוא R בתפריט התחל שלך. 450 00:23:46,270 --> 00:23:50,390 צריך להיקרא זה משהו כמו x64 R 3 נקודות מה. 451 00:23:50,390 --> 00:23:53,110 פתח ששם למעלה. 452 00:23:53,110 --> 00:23:58,850 >> אז עכשיו תן לי רק לפתוח חלון מסוף. 453 00:23:58,850 --> 00:24:02,562 בסדר, החיפוש. 454 00:24:02,562 --> 00:24:03,520 קהל: פיקוד-חלל 455 00:24:03,520 --> 00:24:06,675 CONNER אריס: פיקוד-חלל, תודה. 456 00:24:06,675 --> 00:24:10,030 אני בדרך לא משתמש במחשבי מקינטוש. 457 00:24:10,030 --> 00:24:13,310 מסוף, להראות חלון חדש. 458 00:24:13,310 --> 00:24:18,120 חלון חדש הוא הגדרות בסיסי, ר 'אז אתה צריך לקבל 459 00:24:18,120 --> 00:24:22,230 הודעת ברכה, משהו כזה. 460 00:24:22,230 --> 00:24:31,060 >> אז אני משתמש R אינטראקטיבי. 461 00:24:31,060 --> 00:24:32,719 גם אתה יכול לכתוב תסריטי R כמובן. 462 00:24:32,719 --> 00:24:34,510 בעיקרון תסריטים לרוץ באותו אופן כמו המדויק 463 00:24:34,510 --> 00:24:40,250 אם אתה יושב מול המחשב הקלדה בכל שורה אחת בכל פעם. 464 00:24:40,250 --> 00:24:42,660 אז בואו נתחיל בכך שוקטור. 465 00:24:42,660 --> 00:24:46,230 C חץ 1, ​​2. 466 00:24:46,230 --> 00:24:49,400 1, 2, 4. 467 00:24:49,400 --> 00:24:50,050 אוקיי בטח. 468 00:24:50,050 --> 00:24:51,630 אני יכול לעשות את גודל הגופן גדול יותר. 469 00:24:51,630 --> 00:24:53,030 >> קהל: הפיקוד-פלוס 470 00:24:53,030 --> 00:24:53,650 >> CONNER אריס: הפיקוד-פלוס. 471 00:24:53,650 --> 00:24:54,191 הפקודה פלוס. 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 בסדר, איך זה? 474 00:25:00,370 --> 00:25:00,870 טוֹב? 475 00:25:00,870 --> 00:25:01,551 אוקיי. 476 00:25:01,551 --> 00:25:03,300 אז בואו נתחיל ב הכרזת רשימת וקטור. 477 00:25:03,300 --> 00:25:08,710 האם, חץ, C 1,2,4. 478 00:25:08,710 --> 00:25:11,181 אנחנו יכולים לראות. 479 00:25:11,181 --> 00:25:12,680 אל תדאגו את התושבת שם. 480 00:25:12,680 --> 00:25:18,590 הסוגריים מציין כך שאם אתה מדפיס מערכים ארוכים מאוד, אנחנו יכולים בו אתה נמצא. 481 00:25:18,590 --> 00:25:26,987 דוגמא אחת תהיה אם אני רק רוצה מגוון 2-200. 482 00:25:26,987 --> 00:25:28,820 אם אני מודפס מאוד מערך ארוך, סוגריים 483 00:25:28,820 --> 00:25:31,060 רק כך אני יכול לשמור אחר שמדד 484 00:25:31,060 --> 00:25:33,250 אנחנו באם אני מחפש באמצעות זה מבחינה ויזואלית. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 אז בכל מקרה, יש לנו. 487 00:25:38,280 --> 00:25:43,326 >> אז אמרתי לפני המערכים כי אינטראקציה יפה מאוד עם, למשל, 488 00:25:43,326 --> 00:25:44,450 פעולות יונארית כמו זה. 489 00:25:44,450 --> 00:25:46,500 אז מה אתה חושב שאני מקבל אם אני מקליד בתוספת 1? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 כֵּן. 492 00:25:51,140 --> 00:25:54,250 נכון, עכשיו אני אעשה מערך שונה זה. 493 00:25:54,250 --> 00:26:01,650 נניח ב ג 20,40, 80. 494 00:26:01,650 --> 00:26:03,400 אז מה אתה חושב פקודה זו תעשה? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 הוסף את האלמנטים. 497 00:26:10,670 --> 00:26:14,950 ואז בעצם זה מה שהיא עושה. 498 00:26:14,950 --> 00:26:16,740 אז זה די נוח. 499 00:26:16,740 --> 00:26:23,800 אז מה דעתך עליי לעשות את זה. ג הוא, נניח, 6 פעמים 1 עד 10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 אז מה לעשות אני רוצה לראות הכיל, מה אתה חושב? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 אז כל כפולות של שש. 504 00:26:38,110 --> 00:26:42,170 עכשיו, מה אתה חושב יקרה אם אני עושה את זה? 505 00:26:42,170 --> 00:26:48,090 אני אעשה את זה קצת יותר ברור, ג, ג. 506 00:26:48,090 --> 00:26:50,365 אז מה קורה, אתה חושב, אם אני עושה את זה? 507 00:26:50,365 --> 00:26:51,488 תוספת ג. 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [לא ברור] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> קהל: או שגיאה או זה רק מוסיף שלושה האלמנטים הראשונים. 512 00:27:02,350 --> 00:27:04,510 >> CONNER אריס: לא די. 513 00:27:04,510 --> 00:27:05,522 זה מה שיש לנו. 514 00:27:05,522 --> 00:27:08,910 מה שקורה הוא קצר יותר מערך,, קיבל רכב על אופניו. 515 00:27:08,910 --> 00:27:13,990 אז יש לנו 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 כֵּן. 517 00:27:15,710 --> 00:27:18,940 ובעצם, אתה יכול להציג התנהגות זו לפני, בתוספת 1, 518 00:27:18,940 --> 00:27:22,190 כסדרה של התנהגות, שבו זה המערך הקצר ביותר הוא רק המספר 519 00:27:22,190 --> 00:27:25,410 1, שהוא מערך אלמנט אחד. 520 00:27:25,410 --> 00:27:27,740 אני רק אומר להיות וקטור כל הזמן במקום מערך, 521 00:27:27,740 --> 00:27:30,290 כי זה מה שr תיעוד עושה בדרך כלל. 522 00:27:30,290 --> 00:27:33,070 זה הרגל מושרש ג. 523 00:27:33,070 --> 00:27:37,590 >> אישור, ואז עכשיו יש לנו מערך זה. 524 00:27:37,590 --> 00:27:38,830 אז יש לנו המערך, ג זו. 525 00:27:38,830 --> 00:27:41,380 אנחנו יכולים לקבל סיכום נתונים סטטיסטיים על ג, סיכום ג. 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 וזה נחמד. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 אז עכשיו בואו לעשות כמה דברים מטריצה. 530 00:27:52,670 --> 00:27:56,160 נניח מ 'היא מטריצה. 531 00:27:56,160 --> 00:27:57,780 בואו נעשה את זה שלושה על ידי שלוש אחד. 532 00:27:57,780 --> 00:28:01,630 אז nrows שווה 3, וncols שווה 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 ולנתונים בואו do-- אז מה אתה חושב שזה הולך לעשות? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> נכון, זה הבא. 537 00:28:16,580 --> 00:28:17,970 זה nrow וncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 אז מה שעשיתי הוא לי הכריז שלושה על ידי שלוש מטריצה 540 00:28:24,580 --> 00:28:26,950 ואני כבר עברתי במערך של תשעה אלמנט. 541 00:28:26,950 --> 00:28:30,530 אז הלוגריתם של כל אלמנטים אחד עד תשע. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 וכל הערכים אלה למלא את מצטער array--? 544 00:28:37,285 --> 00:28:38,660 קהל: אלה הם בסיס 10 יומנים? 545 00:28:38,660 --> 00:28:41,284 CONNER אריס: לא, יומן הוא לוגריתמים טבעיים, דואר כך בסיס. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 כן, בסיס אם אתה רוצה 10 יומן, אני חושב שיהיה לך 548 00:28:47,010 --> 00:28:51,620 כדי להיכנס מה, מחולק ביומן 10. 549 00:28:51,620 --> 00:28:56,750 וכך נתונים של [לא ברור] פשוט ממלא את המערך, כך מלמעלה למטה, 550 00:28:56,750 --> 00:28:59,490 אז משמאל לימין. 551 00:28:59,490 --> 00:29:06,890 ואם אתה רוצה לעשות קצת אחר מערך, נניח n הוא מטריצה. 552 00:29:06,890 --> 00:29:10,317 בואו לעשות, אני לא יודע, 2-13. 553 00:29:10,317 --> 00:29:11,900 או שאני אעשה משהו מעניין יותר. 554 00:29:11,900 --> 00:29:13,770 אני אעשה 2 עד 4. 555 00:29:13,770 --> 00:29:15,780 nrow שווה, נניח, 3. 556 00:29:15,780 --> 00:29:18,992 ncol שווה 4. 557 00:29:18,992 --> 00:29:20,360 n. 558 00:29:20,360 --> 00:29:22,090 אז יש לנו את זה. 559 00:29:22,090 --> 00:29:26,130 >> ועכשיו אם אנחנו רוצים להכפיל את אלה, היינו עושה פעמים אחוזים n אחוזים, 560 00:29:26,130 --> 00:29:27,680 כי זה n. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 ויש לנו מוצרי מטריצה. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 על ידי שהם בדרך, ראית איך כשהכרזתי n, 2 עד 4 565 00:29:37,810 --> 00:29:43,570 וקטור יש רכב על אופניו עד זה מילא את כל n? 566 00:29:43,570 --> 00:29:45,710 אם אתה רוצה לקחת פירוק ערך עצמי, 567 00:29:45,710 --> 00:29:46,960 זה משהו שאנחנו יכולים לעשות בקלות. 568 00:29:46,960 --> 00:29:47,709 אנחנו יכולים לעשות את n אייגן. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 ואז זה הראשון שלנו מפגש עם רשימה. 571 00:29:54,600 --> 00:29:57,000 >> אז n אייגן הוא רשימה עם שני מפתחות. 572 00:29:57,000 --> 00:29:58,430 ערכים, שהוא מערך זה כאן. 573 00:29:58,430 --> 00:30:01,030 ווקטורים, שהוא מערך זה כאן. 574 00:30:01,030 --> 00:30:08,240 אז אם אתה רוצה לחלץ, למשל, עמודה שלישית 575 00:30:08,240 --> 00:30:13,080 ממטריצת הווקטורים העצמית, משום ש הווקטורים העצמיים הם וקטורי עמודה. 576 00:30:13,080 --> 00:30:24,400 אז אנחנו יכולים לעשות סימן דולר n אייגן vec וקטורים, פסיק 3, של [לא ברור]. 577 00:30:24,400 --> 00:30:29,800 578 00:30:29,800 --> 00:30:30,900 Vec. 579 00:30:30,900 --> 00:30:34,100 האם זה, כמו שהיית מצפה. 580 00:30:34,100 --> 00:30:39,210 >> ואז אומר n פעמים פעמים אחוזים vec. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 אז התוצאה כאן בהחלט נראית כמו אם לקחנו את הערך העצמי השלישי כאן, 583 00:30:48,320 --> 00:30:50,390 אשר תואם עם eigenvector השלישי. 584 00:30:50,390 --> 00:30:53,190 זה פשוט מוכפל כל דבר ב eigenvector זו, רכיב חכם, 585 00:30:53,190 --> 00:30:53,990 על ידי הערכים העצמיים. 586 00:30:53,990 --> 00:30:57,760 וזה מה שהיינו מצפה, כי זה מה שהם ערכים עצמיים. 587 00:30:57,760 --> 00:31:00,890 יש כאן מישהו שלא לקח אלגברה לינארית? 588 00:31:00,890 --> 00:31:02,530 כמה אנשים, על אישור. 589 00:31:02,530 --> 00:31:04,030 פשוט לכבות את המוח שלך קצת. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 ואכן, אם אנחנו לוקחים אייגן n ערכי סימן דולר 3 פעמים vec, 592 00:31:20,720 --> 00:31:21,810 גם לקבל את אותו הדבר. 593 00:31:21,810 --> 00:31:24,726 זה מעוצב באופן שונה כשורה וקטור במקום וקטור עמודה, 594 00:31:24,726 --> 00:31:25,640 אבל עניין גדול. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 ולכן אלה הם בעצם נחמדים דברים שאנחנו יכולים לעשות עם מטריצות, 597 00:31:35,170 --> 00:31:36,489 רשימות הפגינו. 598 00:31:36,489 --> 00:31:39,030 אני צריך להפגין נחמד דברים על פונקציות כמו גם. 599 00:31:39,030 --> 00:31:41,750 >> אז בואו say-- [לא ברור] פונקציה, השיחה בואו 600 00:31:41,750 --> 00:31:51,960 זה func נגד פונקצית n n squared-- למעשה, זה לא באמת הטוב ביותר. 601 00:31:51,960 --> 00:31:55,632 , ב, בתוספת בריבוע B. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 אז דבר אחד על פונקציות, שוב, הוא שהם 604 00:32:00,380 --> 00:32:01,963 לא צריכים הצהרות תמורה מפורשות. 605 00:32:01,963 --> 00:32:04,250 אז אתה יכול פשוט- ההצהרה האחרונה הוערכה 606 00:32:04,250 --> 00:32:07,502 תהיה ההצהרה חזר, או מחזיר את הערך. 607 00:32:07,502 --> 00:32:10,460 אז במקרה הזה, אנחנו מעריכים רק הצהרה אחת, ב בתוספת בריבוע. 608 00:32:10,460 --> 00:32:12,043 שיהיה ערך החזרת ברירת מחדל. 609 00:32:12,043 --> 00:32:14,530 זה לא כואב לשים ב לחזור ערכים במפורש, 610 00:32:14,530 --> 00:32:16,880 עם במיוחד אם יש לך עסק פונקציה של היגיון מאוד מסובך 611 00:32:16,880 --> 00:32:17,380 זְרִימָה. 612 00:32:17,380 --> 00:32:18,450 אבל אתה לא צריך אותם. 613 00:32:18,450 --> 00:32:24,890 אז עכשיו אנחנו יכולים לעשות func 5, 1, ו זה בעצם מה שהיית מצפה. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 משהו אחר שאנחנו יכולים לעשות, אנחנו באמת יכולים לעשות func ב 616 00:32:31,270 --> 00:32:33,260 שווה 1, שווה 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 אז אם אנחנו לציין שמספר כאן, שטיעון הולך שטיעון 619 00:32:40,770 --> 00:32:44,680 בפונקציה, אנחנו יכולים להעיף סביב ערכים אלה בכל מקום שאנחנו רוצים. 620 00:32:44,680 --> 00:32:48,405 >> קהל: האם יש סיבה כדי לכתוב את זה עם B 621 00:32:48,405 --> 00:32:52,404 שווה לעומת רק באמצעות המספרים ופסיק? 622 00:32:52,404 --> 00:32:54,820 CONNER אריס: כן, בדרך כלל לעשות את זה אם יש לך פונקציות 623 00:32:54,820 --> 00:32:58,540 עם הרבה ויכוחים. 624 00:32:58,540 --> 00:33:00,690 זה יכול להיות לעתים קרובות כמו דגלים שרק היית 625 00:33:00,690 --> 00:33:03,130 רוצה להשתמש במקרים נדירים. 626 00:33:03,130 --> 00:33:06,740 ודרך זו תוכל only-- יכול להתייחס לטענות הספציפיות 627 00:33:06,740 --> 00:33:09,110 שברצונך להשתמש ערכים שאינו ברירת מחדל ל, 628 00:33:09,110 --> 00:33:14,470 ואתה לא צריך לכתוב את חבורה של דגלים שווים שווא אחריהם. 629 00:33:14,470 --> 00:33:19,710 או שאני יכול לכתוב את זה שוב עם ערך ברירת מחדל כמו ב שווה 2. 630 00:33:19,710 --> 00:33:26,289 ואז אני יכול לעשות את func F, אני אעשה 4, 1 זה זמן. 631 00:33:26,289 --> 00:33:28,580 ו -17, אשר הוא 4 בריבוע בתוספת 1, כפי שאתה יכול לצפות. 632 00:33:28,580 --> 00:33:34,290 >> אבל אני גם יכול רק קורא לזה עם func 4, 633 00:33:34,290 --> 00:33:36,970 ואני אקבל 18, משום ש אני לא תציין ב. 634 00:33:36,970 --> 00:33:38,550 אז ב מקבל את ערך ברירת המחדל של 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> אוקיי, אז עכשיו אם אתה הבא יחד עם ההדגמה, 637 00:33:47,200 --> 00:33:51,010 הקלד את הקו הזה לפקודתך תנחה ולראות מה עולה. 638 00:33:51,010 --> 00:33:52,090 למעשה, לא עושה את זה. 639 00:33:52,090 --> 00:33:52,590 סוג זה. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 אתה צריך לקבל משהו כזה. 642 00:34:01,000 --> 00:34:04,780 אז mtcars הוא נבנה בנתונים נקבע להפגנה זו 643 00:34:04,780 --> 00:34:13,550 מטרות שמגיעה with-- שמגיע בברירת מחדל עם הפצת r. 644 00:34:13,550 --> 00:34:19,211 זהו אוסף של נתונים סטטיסטיים מ נושא -1974 של מגזין Motor Trend 645 00:34:19,211 --> 00:34:20,710 במספר דגמי מכוניות שונים. 646 00:34:20,710 --> 00:34:28,270 >> אז יש מייל לגלון, cylinders-- אני שוכח מה חד פעמי הוא-- כוחות סוס. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 כַּנִראֶה. 649 00:34:32,420 --> 00:34:36,920 אם אתה רק מכוניות Google MT, אז אחת מהתוצאות הראשונות 650 00:34:36,920 --> 00:34:38,730 יהיה מ תיעוד r רשמי 651 00:34:38,730 --> 00:34:41,080 והוא יסביר כל שדות נתונים אלה. 652 00:34:41,080 --> 00:34:47,020 אז משקל הוא-- WT הוא משקל של המכונית בטון. 653 00:34:47,020 --> 00:34:48,880 Q שניות היא הזמן רבע מייל. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 אז עכשיו אנחנו יכולים לעשות כמה דברים כיף על מכוניות MT הוא שדה נתונים. 656 00:34:55,850 --> 00:35:01,640 >> אז אנחנו יכולים לעשות דברים כמו שורת שמות, מכוניות הר. 657 00:35:01,640 --> 00:35:05,490 וזו רשימה של כל השורות ב נתונים שנקבעו שהם שמות של מכוניות. 658 00:35:05,490 --> 00:35:10,780 אנחנו יכולים לעשות את colnames, מכוניות הר זה. 659 00:35:10,780 --> 00:35:15,500 אם אתה עושה את מכוניות הר, מדד תת-מספרי, כמו 2. 660 00:35:15,500 --> 00:35:18,177 אנחנו מקבלים את העמודה השנייה מ זה, אשר יהיה צילינדרים. 661 00:35:18,177 --> 00:35:19,370 >> קהל: מה עשה? 662 00:35:19,370 --> 00:35:21,570 >> CONNER אריס: הקלדתי דואר מכוניות, סוגריים הר, 663 00:35:21,570 --> 00:35:24,180 שנתן לי את השנייה טור ממכוניות הר. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 או אם אנחנו רוצים שורה, אני יכול להקליד mtcars באמצעות פסיק 2, למשל. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 סיבוב 2 פסיק אחר, כמו ש. 668 00:35:46,390 --> 00:35:48,880 ושהולך בשורה שלך. 669 00:35:48,880 --> 00:35:54,680 זה כאן פשוט נותן לך טור, אבל טור כוקטור. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 רק עכשיו הבנתי עכשיו אני שכח להפגין 672 00:36:06,425 --> 00:36:09,150 כמה דברים מגניבים על וקטורים שאתה יכול לעשות עם מדדים. 673 00:36:09,150 --> 00:36:10,480 אז תן לי לעשות את זה עכשיו. 674 00:36:10,480 --> 00:36:17,130 אז בואו לעשות לשים ג gets-- זה על פי 2 pause-- 1 עד 10. 675 00:36:17,130 --> 00:36:21,360 אז ג הוא פשוט הולך להיות הווקטור 2 עד 20. 676 00:36:21,360 --> 00:36:24,640 אני יכול לקחת אלמנטים כמו זה, C2. 677 00:36:24,640 --> 00:36:30,942 אני יכול לעבור בוקטור כמו זה, תן לי c-- 678 00:36:30,942 --> 00:36:34,470 להשתמש בשם שונה מג, כמו ג vec. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 בעיקרון, אני עושה זה כל כך אתה לא מקבל 681 00:36:39,340 --> 00:36:45,010 מבולבל בין ג כ פונקצית בניית וקטור, 682 00:36:45,010 --> 00:36:48,800 ולאחר מכן ג כשם משתנה. 683 00:36:48,800 --> 00:36:53,120 סוגריים vec ג 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 זה יהיה להוציא אותי מרביעי, חמישי, ושבעה אלמנטים של המערך. 685 00:36:56,540 --> 00:37:01,740 אני יכול לעשות vec, להכניס לשלילי מדד, כמו 4 שליליים. 686 00:37:01,740 --> 00:37:06,500 שיקבל אותי זה עם האלמנט הרביעי הוסר. 687 00:37:06,500 --> 00:37:10,140 אז אם אני רוצה לעשות פרוסות, אני יכול לעשות vec 2 עד 6. 688 00:37:10,140 --> 00:37:15,480 2 נקודתיים 6 היא רק עוד וקטור, שהוא 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 יורק את זה. 690 00:37:18,230 --> 00:37:20,770 >> אז בכל אופן, בחזרה למכוניות הר. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 אז בואו נעשה קצת רגרסיות. 693 00:37:28,450 --> 00:37:34,240 נניח שמודל gets-- בוא באופן ליניארי regress-- אני לא יודע. 694 00:37:34,240 --> 00:37:41,780 ראשית בואו ניתן לצרף mtcars, כמובן. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 אז [לא ברור] LM מודל, בוא לסגת מייל לגלון במשקל טילדה. 697 00:38:00,010 --> 00:38:03,300 ולאחר מכן מסגרת הנתונים היא mtcars. 698 00:38:03,300 --> 00:38:06,830 אז מודל סיכום. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> אוקיי, אז זה נראה קצת מסובך. 701 00:38:15,595 --> 00:38:19,380 אבל בעצם, רואה כאילו אנחנו אנסה להביע את מייל לגלון 702 00:38:19,380 --> 00:38:23,970 כפונקציה ליניארית של משקל, אז יש לנו את הקו הזה כאן, 703 00:38:23,970 --> 00:38:28,730 שמיירט ב37.28. 704 00:38:28,730 --> 00:38:33,830 37.28 יהיו מיילים התיאורטי לגלון של מכונית ששוקלת אפס. 705 00:38:33,830 --> 00:38:41,210 ולאחר מכן לכל טון נוסף, אתה דופק על חמישה מייל לגלון 706 00:38:41,210 --> 00:38:42,440 הנחה של ש. 707 00:38:42,440 --> 00:38:45,120 שני מקדמים אלה ניתן לראות, שגיאות סטנדרטי שם. 708 00:38:45,120 --> 00:38:47,870 והם מאוד משמעותי מבחינה סטטיסטית. 709 00:38:47,870 --> 00:38:55,740 >> אז אנחנו יכולים להיות מאוד מסוימים ל 1 דואר 10 עד 10 השליליים. 710 00:38:55,740 --> 00:38:59,510 אז 1 פעמים משהו השלילי 10, שאם אתה עושה את המכונית כבדה יותר, 711 00:38:59,510 --> 00:39:01,440 זה יהיה יותר גרוע קילומטרים לגלון. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 או שאנחנו יכולים לבדוק כמה מודל אחר. 714 00:39:07,250 --> 00:39:09,230 כמו במקום רגרסיה זה על משקל, 715 00:39:09,230 --> 00:39:12,600 בואו לסגת אותו על יומן משקל, כי אולי המשקל היעיל 716 00:39:12,600 --> 00:39:15,690 על קילומטראז הוא איכשהו לא ליניארי. 717 00:39:15,690 --> 00:39:18,540 >> זה נתן לנו r בריבוע של .7528. 718 00:39:18,540 --> 00:39:19,610 אז בואו ננסה את זה. 719 00:39:19,610 --> 00:39:21,485 הפעם בואו נעשה משתנה שונה, מדי. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 אז לסיכום, model2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 בסדר, אז שוב, אנחנו יש הקו בכושר הטוב ביותר שלנו כאן. 724 00:39:31,390 --> 00:39:36,160 וזה time-- זה אומר, בעצם שכל פעם שאתה 725 00:39:36,160 --> 00:39:38,090 להגדיל את המשקל של מכונית בפקטור של דואר 726 00:39:38,090 --> 00:39:40,580 אתה מאבד קילומטרים רבים זה לגלון. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> ואז זה זמן סטנדרטי השיורי שלנו השגיאה it-- זה לא משנה, באמת. 729 00:39:50,326 --> 00:39:53,540 השגיאה סטנדרטית השיורי היא בעצם רק השגיאה סטנדרטית 730 00:39:53,540 --> 00:39:57,760 שהשארת אחריך לקחת את קו המגמה. 731 00:39:57,760 --> 00:40:02,805 וr בריבוע שלנו כאן הוא 0.81, שהוא קצת יותר טוב ממה ש 732 00:40:02,805 --> 00:40:07,640 היו לנו לפני, 0.52. 733 00:40:07,640 --> 00:40:09,750 >> ואז עכשיו בואו נוסיף טווח לרגרסיה זו. 734 00:40:09,750 --> 00:40:13,020 אז בואו לסגת מייל לגלון שני ביומן של המשקולות 735 00:40:13,020 --> 00:40:21,130 ו, בואו לעשות, מייל q, זמן רבע מייל. 736 00:40:21,130 --> 00:40:26,190 אישור, זה חייב להיות כל-- בסדר, qsec. 737 00:40:26,190 --> 00:40:26,690 Qsec. 738 00:40:26,690 --> 00:40:30,630 739 00:40:30,630 --> 00:40:35,000 מעשה-- מצטער, מה? 740 00:40:35,000 --> 00:40:37,000 תן לי לקרוא משהו זה אחר מלבד model2. 741 00:40:37,000 --> 00:40:38,000 תן לי לקרוא model3 זה. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 אז עכשיו אנחנו יכולים לעשות model3 סיכום. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 וכך שוב, זה בעצם מה שאפשר לצפות. 746 00:40:49,100 --> 00:40:51,750 יש לך ליירט חיובי. 747 00:40:51,750 --> 00:40:54,550 יעיל הגדלת המשקל הוא שלילי. 748 00:40:54,550 --> 00:40:58,490 ויעיל זמן רבע מייל הגדלת 749 00:40:58,490 --> 00:41:02,420 הוא חיובי, אבל למרות ש פחות ממשקל. 750 00:41:02,420 --> 00:41:06,010 עכשיו באופן אינטואיטיבי, אתה יכול להבין זו באומרו לחשוב על מכוניות ספורט. 751 00:41:06,010 --> 00:41:08,950 יש האצה מהירה מאוד, פעמים רבע מייל קצר מאוד. 752 00:41:08,950 --> 00:41:13,729 הם גם הולכים להשתמש יותר גז, אילו מכוניות הגיוניות יותר הולכים 753 00:41:13,729 --> 00:41:16,020 יש תאוצה איטית יותר, פעמים רבע מייל גבוה יותר, 754 00:41:16,020 --> 00:41:20,890 ולהשתמש בפחות גז ,, כך מיילים לגלון גבוהים יותר. 755 00:41:20,890 --> 00:41:21,390 גדול. 756 00:41:21,390 --> 00:41:23,431 ואז עכשיו זה זמן עלילה משהו כזה. 757 00:41:23,431 --> 00:41:27,810 אז בואו do-- כך חשוף עצמות שאנחנו יכולים לעשות plots-- 758 00:41:27,810 --> 00:41:35,280 כי אני כבר מצורף מסגרת נתונים זה before-- אנחנו יכולים פשוט לעשות את החלקות, mpg WT. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 להפוך את זה לקצת יותר גדול. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 יש, בעצם יש לנו עלילת פיזור, אבל נקודות 763 00:41:57,350 --> 00:41:58,690 הם סוג של קשה לראות בזה. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> אני לא זוכר מה כלאחר יד תחביר הוא לשינוי העלילה. 766 00:42:10,900 --> 00:42:14,100 אז אני מניח שזה יהיה זמן טוב להעלות את, 767 00:42:14,100 --> 00:42:18,000 יש עזרה builtin מאוד נחמדה תכונה, ציטוטי עזרה לתפקד שם. 768 00:42:18,000 --> 00:42:21,690 אנחנו נביא את בעצם כל דבר שאתה רוצה. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 אני חושב שאני באמת אעשה את זה סוג שווה p עבור חלקות נקודות. 771 00:42:32,730 --> 00:42:34,369 האם זה משנה משהו? 772 00:42:34,369 --> 00:42:35,160 ולא, לא ממש. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 בסדר. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> מסיבה כלשהי, כאשר עשיתי את זה במחשב שלי לפני כמה זמן, 777 00:42:49,580 --> 00:42:52,080 כל נקודות הפיזור היו הרבה יותר ברורים. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 בכל אופן, הוא הסוג של הפיזור גלוי? 780 00:43:13,970 --> 00:43:15,124 יש אחד שיש. 781 00:43:15,124 --> 00:43:16,165 כמה יש, כמה יש. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 אתה סוג של יכול לראות אותם, נכון? 784 00:43:21,185 --> 00:43:24,310 אז אם אנחנו רוצים להוסיף קו בכושר הטוב ביותר לעלילה זו כאן, וזה קצת חשוף 785 00:43:24,310 --> 00:43:29,290 bones-- תן לי לעשות את זה קצת יותר נחמד. 786 00:43:29,290 --> 00:43:38,075 ראשי שווים לעומת משקל. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 מייל לגלון. 789 00:43:49,740 --> 00:43:53,570 שוב, אתה יכול לראות כמה שימושי טיעונים אופציונליים נמצאים כאן עם גם 790 00:43:53,570 --> 00:43:58,090 לא שיש לשים את הדברים ב סדר מסוים עם טיעוני מקלדת 791 00:43:58,090 --> 00:44:01,600 כאשר יש לך חלקות, משום ש אלה לקחת הרבה ויכוחים. 792 00:44:01,600 --> 00:44:07,490 >> Xlab שווה משקל, משקל, טון. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 בסדר. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 אישור, כן, המכשיר הזה הוא להיות קצת מעצבן. 797 00:44:21,480 --> 00:44:30,160 אבל אתה יכול לראות סוג של שם למעלה, יש כותרת גרף בצד. 798 00:44:30,160 --> 00:44:35,260 כאן יש-- בתחתית כאן יש תוויות ציר. 799 00:44:35,260 --> 00:44:37,700 אני לא זוכר אגב מה פקודות ars-- 800 00:44:37,700 --> 00:44:41,000 מה הפונקציות כדי להגדיל גודלם של תוויות וכותרות, 801 00:44:41,000 --> 00:44:43,110 אבל הם שם. 802 00:44:43,110 --> 00:44:46,625 >> ולכן אם אנחנו רוצים להוסיף את השורה בכושר הטובה ביותר, 803 00:44:46,625 --> 00:44:49,250 אנחנו יכולים לעשות משהו like-- אני כתב את התחביר כאן. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 אז זוכר שרק להוסיף מודל היה mpg, משקל, mtcars. 806 00:45:11,130 --> 00:45:16,470 ולכן אם אני רוצה להוסיף הטוב ביותר בכושר קו, שאני יכול לעשות מודל, קו B. 807 00:45:16,470 --> 00:45:18,556 ובום, יש לנו קו בכושר הטוב ביותר. 808 00:45:18,556 --> 00:45:19,970 זה קצת קשה לראות שוב. 809 00:45:19,970 --> 00:45:22,178 אני די מצטער על קשיים טכנולוגיים. 810 00:45:22,178 --> 00:45:25,230 אבל הוא פועל בעצם עליון משמאל לימין תחתון. 811 00:45:25,230 --> 00:45:27,550 >> ואם בקנה מידה היה גדול יותר, אתה יכול לראות 812 00:45:27,550 --> 00:45:31,260 שליירט הוא מה שאתה יכול למצוא מסיכום הנתונים הסטטיסטיים 813 00:45:31,260 --> 00:45:34,790 אם תקליד מודל סיכום. 814 00:45:34,790 --> 00:45:40,130 בסדר, אז אני מקווה שכולם מקבל משהו מתחושה של מה ש 815 00:45:40,130 --> 00:45:42,030 R הוא, מה זה טוב ל. 816 00:45:42,030 --> 00:45:45,520 אתה יכול לעשות את מגרשים רחוקים יותר נחמדים זה על הזמן שלך, אם תרצה. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> אז ממשק הפונקציה הזרה. 819 00:45:53,950 --> 00:46:00,330 זה משהו שהוא בדרך כלל לא מכוסה בהרצאות מבוא 820 00:46:00,330 --> 00:46:03,560 או כל דבר מבוא למחקר. 821 00:46:03,560 --> 00:46:05,584 זה לא סביר שאתה הולך צריך את זה. 822 00:46:05,584 --> 00:46:08,000 עם זאת, מצאתי את זה שימושי ב הפרויקטים שלי בעבר. 823 00:46:08,000 --> 00:46:10,984 ואין טוב הדרכה לזה באינטרנט. 824 00:46:10,984 --> 00:46:12,900 אז רק אני הולך למהר כל מה שאתה תעבור את זה 825 00:46:12,900 --> 00:46:16,606 ואז אתה חופשי לעזוב. 826 00:46:16,606 --> 00:46:18,480 וכך זר ממשק פונקציה הוא מה 827 00:46:18,480 --> 00:46:23,130 אתה יכול להשתמש בו כדי לקרוא לראות פונקציות עם ר 'פנימי, 828 00:46:23,130 --> 00:46:29,850 R בנוי על חשבונו של ג R הוא פשוט חשבון הנקודה צפה של 64 סיביות של C, 829 00:46:29,850 --> 00:46:32,852 שהוא כפול סוג [לא ברור]. 830 00:46:32,852 --> 00:46:35,060 ואולי כדאי לך לעשות זה עבור חבורה של סיבות. 831 00:46:35,060 --> 00:46:39,250 לאחד, R מתפרש, זה לא נערך עד קוד מכונה. 832 00:46:39,250 --> 00:46:42,170 אז אתה יכול לשכתב אותך לולאות פנימיות בC ולאחר מכן לקבל 833 00:46:42,170 --> 00:46:45,920 היתרון של שימוש בר 'כמו זה קצת יותר נוח מאשר ג 834 00:46:45,920 --> 00:46:48,899 יש לו גרפים טובים יותר מתקנים ומה לא. 835 00:46:48,899 --> 00:46:51,690 ועדיין להיות מסוגל לקבל במהירות שיא מהלולאות הפנימיות, 836 00:46:51,690 --> 00:46:53,650 המקום שבו אתה באמת צריך את זה. 837 00:46:53,650 --> 00:46:56,330 >> שימוש חוזר בספריות C קיימות, זה גם חשוב. 838 00:46:56,330 --> 00:47:00,320 אם יש לך כמה ספריית C עבור כמו, אני לא יודע, פורייה הופך, 839 00:47:00,320 --> 00:47:05,190 או כמה Archean מאוד הליך מדדים סטטיסטי 840 00:47:05,190 --> 00:47:09,470 באסטרופיזיקה אנרגיה הגבוהה או משהו, אני לא יודע. 841 00:47:09,470 --> 00:47:13,058 אסטרופיזיקה אנרגיה גבוהה הוא אפילו לא חושב, אני חושב. 842 00:47:13,058 --> 00:47:16,480 אבל אתה יכול לעשות את זה במקום שיש לכתוב נמל R ילידם. 843 00:47:16,480 --> 00:47:22,725 ועל כל-- ושוב, כמו אם נראה ברוב ספריות ברירת המחדל של R, 844 00:47:22,725 --> 00:47:25,600 על internals, internals הם הולך להשתמש בפונקציה הזרה 845 00:47:25,600 --> 00:47:26,724 ממשק מאוד נרחב. 846 00:47:26,724 --> 00:47:31,630 תהיה להם דברים כמו פורייה הופך או מחשוב מתאם 847 00:47:31,630 --> 00:47:34,890 מקדמים נכתבו ב- C, והם יהיו רק צריכים עטיפות R סביבם. 848 00:47:34,890 --> 00:47:38,230 הממשק הוא קצת קשה. אני חושב 849 00:47:38,230 --> 00:47:43,750 הקושי שלה הוא מוגזם ב הרבה הוראות שתמצאו. 850 00:47:43,750 --> 00:47:46,200 אבל בכל זאת, זה קצת מבלבל. 851 00:47:46,200 --> 00:47:48,650 ולא היינו מסוגל למצוא הדרכה טובה לזה, 852 00:47:48,650 --> 00:47:51,980 אז זה זה עכשיו. 853 00:47:51,980 --> 00:47:55,360 שוב, כל הקטע הזה הוא יותר לעיון מאוחר יותר. 854 00:47:55,360 --> 00:47:57,687 אל תדאגו העתקה את הכל עכשיו. 855 00:47:57,687 --> 00:48:00,020 אז ההוראות הבאות הם למערכות כמו יוניקס, 856 00:48:00,020 --> 00:48:05,150 לינוקס, BSD, X. מערכת ההפעלה אני לא יודע איך זה עובד על Windows, 857 00:48:05,150 --> 00:48:08,280 אבל בבקשה פשוט לא עושה פרויקט גמר ב- Windows. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 אתה באמת לא רוצה. 860 00:48:12,460 --> 00:48:14,770 יוניקס הוא קבוצה הרבה יותר טובה לתכנות מזדמן. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 אז, בעצם זר ממשק פונקציה. 863 00:48:21,390 --> 00:48:24,420 אם אתה רוצה לכתוב C פונקציה לשימוש עם R, 864 00:48:24,420 --> 00:48:27,250 יש לנקוט בכל טיעונים כמצביעים. 865 00:48:27,250 --> 00:48:30,666 >> אז לערכים בודדים, זה פירוש זה הצביע על הערך. 866 00:48:30,666 --> 00:48:33,040 למערכים, זה הוא מצביע לאלמנט הראשון, ש 867 00:48:33,040 --> 00:48:36,750 מה שמות מערך באמת מתכוונים. 868 00:48:36,750 --> 00:48:40,140 שוב, זה משהו שצריך להיות לך די לגמרי למטה אחרי עמ 'להגדיר חמש. 869 00:48:40,140 --> 00:48:43,334 שמות מערך הם רק מצביעים לאלמנט הראשון, 870 00:48:43,334 --> 00:48:44,750 סוג הנקודה צפה הוא כפול. 871 00:48:44,750 --> 00:48:47,310 והתפקוד שלך יש לחזור חלל. 872 00:48:47,310 --> 00:48:50,810 הדרך היחידה שהוא יכול בעצם אומר לי R מה שקרה 873 00:48:50,810 --> 00:48:54,410 הוא על ידי שינוי הזיכרון שR נתן אליו דרך הפונקציה הזרה 874 00:48:54,410 --> 00:48:54,910 מִמְשָׁק. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> אז כתבתי את זה דוגמא כאן, זה הוא 877 00:49:00,127 --> 00:49:02,460 פונקציה שמחשבה שימוש מוצר נקודה של שני וקטורים. 878 00:49:02,460 --> 00:49:05,060 זה לוקח שני טיעונים, vec1, vec2, שהם הווקטורים עצמם, 879 00:49:05,060 --> 00:49:06,934 ואז n, שהוא אורך, כי שוב, 880 00:49:06,934 --> 00:49:12,630 R בנה ב[ לא ברור] כדי לגלות האורך של וקטורים, אבל C לא. 881 00:49:12,630 --> 00:49:16,182 ב- C, וקטורים הוא שרירותי נתח מופרד של זיכרון. 882 00:49:16,182 --> 00:49:17,890 אז הדרך שתוכל לחשב מוצרי dot 883 00:49:17,890 --> 00:49:23,470 הוא פשוט להגדיר את זה פרמטר לאפס ואז לחזר דרך 884 00:49:23,470 --> 00:49:28,760 מ -1 עד n לככב, כי N של מצביע לאורך, 885 00:49:28,760 --> 00:49:32,929 רק להוסיף משהו ל זה את פרמטר. 886 00:49:32,929 --> 00:49:34,970 וזה יכול להיות תרגול טוב אם אתה הולך לעשות 887 00:49:34,970 --> 00:49:37,270 זה לכתוב שתי פונקציות C נפרדות. 888 00:49:37,270 --> 00:49:41,970 אחד מהם has-- אחד מהם רק לוקח את הטיעונים וסוגים 889 00:49:41,970 --> 00:49:43,970 שהם יהיו בדרך בג 890 00:49:43,970 --> 00:49:47,780 >> אז זה לוקח מערך טיעונים כמצביעים. 891 00:49:47,780 --> 00:49:57,090 אבל טיעונים חד ערכיים כמו n, זה פשוט לוקח כערכים על ידי העתקה, 892 00:49:57,090 --> 00:49:57,917 ללא מצביעים. 893 00:49:57,917 --> 00:49:59,750 ואז זה לא מצביע [לא ברור] החוצה. 894 00:49:59,750 --> 00:50:01,290 ואז אתה יכול לקבל שונה, בעצם, 895 00:50:01,290 --> 00:50:03,623 פונקצית מעטפת שבעצם מטפל בדרישות 896 00:50:03,623 --> 00:50:07,740 של הפונקציה הזרה ממשק בשבילך. 897 00:50:07,740 --> 00:50:11,840 >> הדרך בה אתה קורא לזה בR היא, פעם אחת יש לך הפונקציה שלך נכתבה ב- C, 898 00:50:11,840 --> 00:50:17,770 אתה מקליד shlib cmd R, R ספרייה משותפת הפקודה, 899 00:50:17,770 --> 00:50:20,110 foo ג נקודה, או מה ש שם הקובץ שלך הוא, 900 00:50:20,110 --> 00:50:23,020 ומערכת ההפעלה לא להפגיז במסוף R. 901 00:50:23,020 --> 00:50:25,200 וזה ייצור ספרייה נקראת foo נקודה כל כך. 902 00:50:25,200 --> 00:50:28,180 ואז אתה יכול לטעון אותו ב התסריט או אינטראקטיבי שלנו 903 00:50:28,180 --> 00:50:32,310 עם עומס נקודת DYN הפקודה. 904 00:50:32,310 --> 00:50:35,720 ואז יש פונקציה במחקר בשם ג נקודה. 905 00:50:35,720 --> 00:50:39,310 >> זה לוקח טיעונים ש ראשון את השם של הפונקציה בC 906 00:50:39,310 --> 00:50:40,970 שאתה רוצה לקרוא. 907 00:50:40,970 --> 00:50:43,920 ולאחר מכן את כל הפרמטרים לפונקציה ש, 908 00:50:43,920 --> 00:50:45,420 הם צריכים להיות בסדר הנכונים. 909 00:50:45,420 --> 00:50:48,580 אתה צריך להשתמש בסוג אלה פונקציות כפייה כשלמה, כ 910 00:50:48,580 --> 00:50:52,050 כפול, כדמות, והגיונית כ. 911 00:50:52,050 --> 00:50:54,710 ואז כשהוא חוזר רשימה, ששוב היא פשוט 912 00:50:54,710 --> 00:50:57,550 מערך קשור של שמות פרמטר והערכים 913 00:50:57,550 --> 00:51:00,950 לאחר הפונקציה יש להפעיל. 914 00:51:00,950 --> 00:51:08,520 >> אז במקרה הזה, בגלל לדרבן נקודה יש טיעוני vec1, vec2, וint n, n החוצה. 915 00:51:08,520 --> 00:51:11,980 כדי נקודה ג יש לנו לדרבן נקודה, שמו של הפונקציה 916 00:51:11,980 --> 00:51:16,250 אנחנו קוראים, vec1, vec2, לכפות סוג. 917 00:51:16,250 --> 00:51:20,060 האורך של שני וקטורים, אני רק בחרתי vec1 באופן שרירותי. 918 00:51:20,060 --> 00:51:25,479 זה יהיה יותר חזק כדי לומר של אורך שלם דקות של vec1, vec2 אורך. 919 00:51:25,479 --> 00:51:27,520 אז בדיוק כמו אפס כפול, כי אנחנו לא באמת 920 00:51:27,520 --> 00:51:29,644 אכפת לי מה עובר ל פרמטר החוצה בגלל שאנחנו 921 00:51:29,644 --> 00:51:32,270 הגדרת את זה לאפס בכל מקרה. 922 00:51:32,270 --> 00:51:37,560 >> ואז תוצאות הולכים להיות המערך הקשורים גדול של יסוד 923 00:51:37,560 --> 00:51:42,090 vec1 הוא מה, vec2 הוא מה. 924 00:51:42,090 --> 00:51:44,330 אבל אנחנו מתעניינים ב החוצה, כדי שנוכל לקבל את זה. 925 00:51:44,330 --> 00:51:47,780 זה שוב, דוגמא צעצוע מאוד של ממשק פונקציה זרה. 926 00:51:47,780 --> 00:51:54,160 אבל אם אתה צריך לחשב נקודה מוצרים של וקטורים מסיביים בלולאות, 927 00:51:54,160 --> 00:51:56,960 או אם אתה צריך לעשות משהו בלולאה אחר, 928 00:51:56,960 --> 00:51:59,850 ואתה לא רוצה להסתמך על R, שיש לו קצת מעל 929 00:51:59,850 --> 00:52:02,830 נבנה לתוך זה, זה יכול להיות שימושי. 930 00:52:02,830 --> 00:52:05,870 >> שוב, זה בדרך כלל לא נושא מבוא לר ' 931 00:52:05,870 --> 00:52:08,571 זה לא מתועד היטב. 932 00:52:08,571 --> 00:52:11,070 אני רק כולל את זה כי אני מצאתי את זה שימושי בעבר. 933 00:52:11,070 --> 00:52:13,654 שיטות אז, רעות. 934 00:52:13,654 --> 00:52:15,820 שציינתי שיש ללולאה בתפקוד. 935 00:52:15,820 --> 00:52:21,150 בדרך כלל אתה לא צריך, ב השפה, לא להשתמש בו. 936 00:52:21,150 --> 00:52:26,100 בהתבסס על איך מיישם R איטרציה פנימי, זה יכול להיות איטי. 937 00:52:26,100 --> 00:52:28,540 הם פשוט גם מכוערים. 938 00:52:28,540 --> 00:52:32,410 >> R מטפל וקטורים יפה מאוד, כל כך לעתים קרובות אתה לא צריך להשתמש בו. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 אז אתה יכול בדרך כלל להחליף וקטור לעתים קרובות 941 00:52:38,900 --> 00:52:42,490 עם פונקציות אלה נקראים גבוהים פונקציות כדי, מפה, צמצום, 942 00:52:42,490 --> 00:52:44,404 מצא, או סינון. 943 00:52:44,404 --> 00:52:46,320 אני רק אתן כמה דוגמאות למה אלה לעשות. 944 00:52:46,320 --> 00:52:49,957 מפה היא פונקציה מסדר גבוהה יותר משום ש זה לוקח תפקיד כטיעון. 945 00:52:49,957 --> 00:52:52,290 אז אתה יכול לתת לו פונקציה, אתה יכול לתת אותו מערך, 946 00:52:52,290 --> 00:52:54,640 והוא יחול הפונקציה לכל אלמנט של המערך 947 00:52:54,640 --> 00:52:55,681 ולהחזיר את המערך החדש. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 להפחית, בעצם אתה נותן זה מערך, אתה נותן לו 950 00:53:00,160 --> 00:53:02,930 פונקציה שלוקחת שתי טענות. 951 00:53:02,930 --> 00:53:07,100 היא תחול הפונקציה ראשונה, טיעון ראשון עם כמה ערך המתנע. 952 00:53:07,100 --> 00:53:09,440 אז לתוצאה שבשנייה. 953 00:53:09,440 --> 00:53:12,590 אז לתוצאה שבשלישית, אז לתוצאה שברביעית. 954 00:53:12,590 --> 00:53:14,870 ואז לחזור כשהוא מגיע לסוף. 955 00:53:14,870 --> 00:53:17,620 כך למשל, אם ברצונך לחשב את הסכום של כל האלמנטים 956 00:53:17,620 --> 00:53:23,240 במערך, ממה שאתה יכול לקרוא לי להפחית עם [לא ברור] להפחית בנוסף 957 00:53:23,240 --> 00:53:26,620 פונקציה, כמו func , ב, לחזור ב בתוספת. 958 00:53:26,620 --> 00:53:28,960 ולאחר מכן להתחיל ערך של 0. 959 00:53:28,960 --> 00:53:32,950 >> וכל אלה, אתה יכול למצוא אותם מתואר בתיעוד R, 960 00:53:32,950 --> 00:53:35,720 בספר לימוד כלשהו ב תכנות פונקציונלי. 961 00:53:35,720 --> 00:53:38,330 יש גם המעמד הזה של פונקציות נקראות להחיל פונקציות, 962 00:53:38,330 --> 00:53:42,807 שאני don't-- הם קצת קשה להסביר, 963 00:53:42,807 --> 00:53:45,640 אבל אם אתה מסתכל ב[ לא ברור] הזמנתי שצוטטתי בתחילת, 964 00:53:45,640 --> 00:53:48,615 הוא מסביר להם די טוב ב הנספח שלו על תכנות R. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 נוסף על נהלים, צירוף לוקטורים. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 כֵּן? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 אני חושב שאני צריך לתקן את זה. 971 00:54:02,900 --> 00:54:07,450 שבשורה ראשונה, חץ vec, חץ שלא צריך להיות שם. 972 00:54:07,450 --> 00:54:10,920 ניתן להקצות לוקטור, שוב, על ידי לקחת אורך בתוספת 1 973 00:54:10,920 --> 00:54:13,220 והקצאת ערך כלשהו לכך. 974 00:54:13,220 --> 00:54:18,970 שאאריך את הווקטור, או שאתה יכול לעשות ג שווים vec, NEWVALUE vec. 975 00:54:18,970 --> 00:54:21,540 שוב, אם אתה משתמש ב- C עם טיעון אחד כוקטור, 976 00:54:21,540 --> 00:54:23,300 ההיררכיה וכתוצאה מכך מקבלת בברוטליות. 977 00:54:23,300 --> 00:54:27,160 אז אתה פשוט מקבל וקטור זה הוארך 1. 978 00:54:27,160 --> 00:54:30,410 אף פעם לא לעשות את זה. 979 00:54:30,410 --> 00:54:33,330 >> הסיבה למה אתה לא צריך לעשות את זה הוא זה. 980 00:54:33,330 --> 00:54:37,430 כאשר אתה להקצות וקטור, זה נותן לה נתח מסוים של זיכרון. 981 00:54:37,430 --> 00:54:40,680 אם תגדיל כי גודל וקטור, יש להקצות מחדש את הווקטור 982 00:54:40,680 --> 00:54:43,820 במקום אחר. 983 00:54:43,820 --> 00:54:46,980 וכך הקצאה מחדש היא די יקרה. 984 00:54:46,980 --> 00:54:50,530 אני לא אכנס לפרטים של איך מקצי זיכרון מיושמים 985 00:54:50,530 --> 00:54:57,280 ברמת מערכת הפעלה, אבל זה לוקח הרבה זמן 986 00:54:57,280 --> 00:54:58,962 למצוא נתח חדש של זיכרון. 987 00:54:58,962 --> 00:55:00,920 וגם, אם אתה הקצאה מחדש המון המון 988 00:55:00,920 --> 00:55:03,500 של בהדרגה גדולה יותר נתחים, אתה בסופו 989 00:55:03,500 --> 00:55:06,420 עם משהו שנקרא פיצול זיכרון, 990 00:55:06,420 --> 00:55:09,390 שבו הזיכרון זמין הוא מחולק להמון לוקים קטנים 991 00:55:09,390 --> 00:55:11,500 בנקודת מבט מקצי זיכרון. 992 00:55:11,500 --> 00:55:15,340 וזה נהיה קשה יותר ויותר כדי למצוא זיכרון לדברים אחרים. 993 00:55:15,340 --> 00:55:19,455 אז במקום, אם אתה צריך לעשות את זה, אם אתה צריך לגדול וקטור מקצה אחד 994 00:55:19,455 --> 00:55:24,240 למשנהו, במקום להוסיף לזה כל הזמן, אתה צריך מראש להקצות אותו. 995 00:55:24,240 --> 00:55:29,310 חץ vec, אורך וקטור שווה 1,000, או משהו כזה. 996 00:55:29,310 --> 00:55:33,200 >> ואז אתה יכול פשוט להקצות לערכים אחד של הווקטור 997 00:55:33,200 --> 00:55:36,000 זמן מה לאחר שהוקצית את זה פעם אחת. 998 00:55:36,000 --> 00:55:40,140 נתקלתי בזה, שוב, עבודת הקיץ שלי כשכתבתי ההפרש NRA 999 00:55:40,140 --> 00:55:42,120 פותר משוואה. 1000 00:55:42,120 --> 00:55:43,180 לא סמלי מספרי. 1001 00:55:43,180 --> 00:55:49,290 הרעיון הוא שברגע שיש לך ערך אחד לפתרון שלך, 1002 00:55:49,290 --> 00:55:51,240 אתה משתמש בזה כדי לחשב את הבאה. 1003 00:55:51,240 --> 00:55:53,700 אז טבעי נאיבי נטייה הייתה לומר על אישור, 1004 00:55:53,700 --> 00:55:56,930 אז אני אתחיל עם וקטור זה ערך משמעותי. 1005 00:55:56,930 --> 00:56:01,260 לחשב שמהערך הבא שהולך על וקטור הפתרון שלי, 1006 00:56:01,260 --> 00:56:02,630 ולצרף את זה. 1007 00:56:02,630 --> 00:56:05,290 >> ליצור משהו אחר, לצרף את זה. 1008 00:56:05,290 --> 00:56:08,120 זה הלך מאוד, מאוד לאט. 1009 00:56:08,120 --> 00:56:11,540 וברגע שהבנתי את זה ושיניתי את המערכת שלי 1010 00:56:11,540 --> 00:56:16,020 מצירוף לוקטור זה כמו 10,000 עד 100,000 פעמים, 1011 00:56:16,020 --> 00:56:18,910 רק מראש הקצאת וקטור ופשוט רצתי עם זה. 1012 00:56:18,910 --> 00:56:22,100 יש לי יותר מ -1,000 את המהירות של פי. 1013 00:56:22,100 --> 00:56:26,280 אז זה מאוד נפוץ מלכודת לתכנות R. 1014 00:56:26,280 --> 00:56:31,560 אם אתה צריך לבנות את וקטור פיסה אחרת פיסה, מראש להקצות אותו. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> עוד טיול משותף up-- זה אחרון שלי שקופיות, לא worry-- הוא טיפול בשגיאות. 1017 00:56:40,240 --> 00:56:42,890 R, להיות כנה, לא טוב מאוד באמת לעשות את זה. 1018 00:56:42,890 --> 00:56:45,010 יש הרבה בעיות שיכולים לצוץ. 1019 00:56:45,010 --> 00:56:48,360 לדוגמא, אם אתה מקבל מערך או וקטור מתוך פונקציה 1020 00:56:48,360 --> 00:56:52,377 שציפיתם יחיד ערך לבוא מ, או להיפך, 1021 00:56:52,377 --> 00:56:55,460 ואתה עובר את זה בפונקציה ש אתה כתב מצפה ערך יחיד, 1022 00:56:55,460 --> 00:56:57,270 כי יכולה להיות בעיה. 1023 00:56:57,270 --> 00:57:01,440 >> פונקציות מסוימות תחזיר null כלעשות, למשל, 1024 00:57:01,440 --> 00:57:05,560 קריאה מ מפתח אינו קיים ברשימה. 1025 00:57:05,560 --> 00:57:08,527 אבל null הוא לא כמו C שבו אם אתה מנסה לקרוא 1026 00:57:08,527 --> 00:57:11,360 ממצביע ישן, [לא ברור] לnull מצביע, זה פשוט צינוק תקלות 1027 00:57:11,360 --> 00:57:14,109 ואם אתה בהבאגים שלך זה אומר לך בדיוק איפה אתה נמצא. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 במקום זאת, null יהיה do-- פונקציות יעשה דברים בלתי צפויים 1030 00:57:20,772 --> 00:57:21,730 אם הם ריקים ביד. 1031 00:57:21,730 --> 00:57:24,575 כמו שאם אתה מסר null מקסימום, זה ייתן לך אינסוף שלילי. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 וכך, כן. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 וכך זה קרה לי פעם שהייתי לי 1036 00:57:32,630 --> 00:57:34,771 השתנה חבורה של שדות במבנה הרשימה שלי 1037 00:57:34,771 --> 00:57:37,520 פעם אחת מבלי לשנות אותם במקום אחר כאשר אני קורא מהם. 1038 00:57:37,520 --> 00:57:40,670 ואז יש לי כל מיני אקראיים תוצאות אינסוף לצוץ 1039 00:57:40,670 --> 00:57:43,080 ולי מושג מאיפה הם באו. 1040 00:57:43,080 --> 00:57:45,310 ולמרבה הצער, יש אין מצב מחמיר R אמיתי 1041 00:57:45,310 --> 00:57:48,940 שבו אתה יכול להגיד אם משהו נראה כמו שזה יכול להיות שגיאה, 1042 00:57:48,940 --> 00:57:51,960 רק לעצור שם כדי שאוכל להיות ממושמע ולתקן את זה. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 עם זאת, יש משהו נקרא תחנה אם לא. 1045 00:57:57,240 --> 00:58:00,480 זה שווה לתבוע את של C, אם אתה כבר דיברת על זה. 1046 00:58:00,480 --> 00:58:02,690 אני לא חושב שC טוען הוא נושא הרצאה, 1047 00:58:02,690 --> 00:58:06,370 אבל מנהיג הסעיף שלך אולי הלך על זה. 1048 00:58:06,370 --> 00:58:10,393 ואם לא תפסיק בעצם לוקח כל נשוא, ולכן כל אמירה ש 1049 00:58:10,393 --> 00:58:11,824 יכול להיות אמת או שקר. 1050 00:58:11,824 --> 00:58:13,490 ואם זה שקר, הוא מפסיק את תכניתה. 1051 00:58:13,490 --> 00:58:18,260 זה אומר לך בדיוק מה הקו ש היו ובמה המצב נכשל. 1052 00:58:18,260 --> 00:58:21,910 >> וזה מאוד שימושי, למשל, בדיקת שפיות, תשומות פונקציה. 1053 00:58:21,910 --> 00:58:25,110 אז אם יש לך פונקציה ואתה מצפה, למשל, 1054 00:58:25,110 --> 00:58:29,640 אם אתה צריך לתת לי תאריך, אני רוצה התאריכים להיות פשוט וקטור באורך 1 1055 00:58:29,640 --> 00:58:31,735 ואי שם בין 1 ו -31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 ואם לא, אני יודע משהו השתבש. 1058 00:58:36,170 --> 00:58:40,280 ואני בוחר לעצור שם לפני זה יש דפיקה אקראית על השפעות עם קוד 1059 00:58:40,280 --> 00:58:44,190 שזה קשה לאתר דרך. 1060 00:58:44,190 --> 00:58:47,170 אז זה אפשרי אחת להשתמש לתחנה אם לא. 1061 00:58:47,170 --> 00:58:48,660 >> בכל אופן, על אישור. 1062 00:58:48,660 --> 00:58:49,690 אז זה הסוף. 1063 00:58:49,690 --> 00:58:51,290 תודה רבה לך שבאת. 1064 00:58:51,290 --> 00:58:53,710 אני חובבן בשלב זה. 1065 00:58:53,710 --> 00:58:57,270 אז מצטער או אם אתה משועמם מבולבל או מה שיש לך. 1066 00:58:57,270 --> 00:59:01,670 אני שמח לקחת שאלות בדוא"ל בconnorharris@college.harvard.edu. 1067 00:59:01,670 --> 00:59:07,230 זה הולך גם לכולם צופה זה לחיות או מאוחר יותר. 1068 00:59:07,230 --> 00:59:10,190 כמו כן, אם כי אני לא TF, אני מאוד גם 1069 00:59:10,190 --> 00:59:13,900 מוכן לשמש כרשמי יועץ לכל מי ש 1070 00:59:13,900 --> 00:59:15,460 באמצעות R בפרויקט גמר. 1071 00:59:15,460 --> 00:59:19,900 >> אם ברצונך ש, אז פשוט לדבר עם TF שלך 1072 00:59:19,900 --> 00:59:23,750 ואז לכתוב לי מייל כל כך אני יודע מה אתה עובד על 1073 00:59:23,750 --> 00:59:26,680 ואז אני יכול להגדיר את פגישה פעמים איתך אם אתה רוצה. 1074 00:59:26,680 --> 00:59:27,990 אז שוב, תודה רבה לך. 1075 00:59:27,990 --> 00:59:28,960 אני מקווה שאתה נהנה מזה. 1076 00:59:28,960 --> 00:59:29,450 >> קהל: [לא ברור]. 1077 00:59:29,450 --> 00:59:30,617 >> CONNER אריס: כמובן. 1078 00:59:30,617 --> 00:59:34,910 >> קהל: איזה סוג של פרויקט היה תלמיד CS להשתמש R ל? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER אריס: אז אם אתה לא עושה משהו שהוא אך ורק בכריית נתונים, 1081 00:59:40,510 --> 00:59:43,790 לדוגמא, ויש הרבה דברים 1082 00:59:43,790 --> 00:59:46,692 אתה יכול לעשות עם זה עם הנתונים כרייה ולמידת מכונה. 1083 00:59:46,692 --> 00:59:48,900 אולי אתה רוצה להשתמש R ל רכיב של משהו. 1084 00:59:48,900 --> 00:59:52,022 העליתי, במקור, הדוגמא של אם אתה כותב באתר 1085 00:59:52,022 --> 00:59:54,730 ואתה רוצה להריץ אוטומטי ניתוח סטטיסטי של השרת שלך 1086 00:59:54,730 --> 00:59:57,990 יומנים בזמן מסוים בכל יום, שעשוי להיות משהו ש 1087 00:59:57,990 --> 01:00:01,260 מאוד קל לעשות רק קצר תסריט R שאתה יכול לתזמן 1088 01:00:01,260 --> 01:00:04,200 לרוץ כל לילה, למשל. 1089 01:00:04,200 --> 01:00:06,550 >> ואני בטוח, אם יש כל סיבה שהיית 1090 01:00:06,550 --> 01:00:11,520 רוצה סטטיסטיקה או יכולות גרפים ויש לי ריצה זו באופן אוטומטי במקום 1091 01:00:11,520 --> 01:00:13,790 שיש לאינטראקציה עם דברים ב- Excel, 1092 01:00:13,790 --> 01:00:16,750 לדוגמא, זה משהו אולי כדאי לך להשתמש בR ל. 1093 01:00:16,750 --> 01:00:21,190 אז עוד שאלות לפני שאני עוזב? 1094 01:00:21,190 --> 01:00:21,690 לא? 1095 01:00:21,690 --> 01:00:24,960 בסדר, גם, שוב, תודה רב לך שבאת. 1096 01:00:24,960 --> 01:00:29,417