1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 Connor HARRIS: Vẫn còn tôi nghĩ rằng một số video thú vị 3 00:00:07,690 --> 00:00:12,570 sản xuất bởi một tư vấn chuyên nghiệp có sử dụng R rất nhiều trong công việc của mình. 4 00:00:12,570 --> 00:00:16,329 >> Người kể chuyện: Có gì đằng sau những số liệu thống kê, các phân tích, và visualizations 5 00:00:16,329 --> 00:00:19,770 các nhà khoa học dữ liệu sáng nhất của ngày hôm nay và các nhà lãnh đạo kinh doanh dựa trên 6 00:00:19,770 --> 00:00:22,012 để đưa ra quyết định mạnh mẽ? 7 00:00:22,012 --> 00:00:23,540 Bạn có thể không bao giờ nhìn thấy nó. 8 00:00:23,540 --> 00:00:24,790 Nhưng nó ở đó. 9 00:00:24,790 --> 00:00:29,460 Nó được gọi là R, mã nguồn mở R-- sự ngôn ngữ lập trình thống kê 10 00:00:29,460 --> 00:00:32,630 mà các chuyên gia dữ liệu thế giới qua sử dụng cho tất cả mọi thứ 11 00:00:32,630 --> 00:00:35,350 từ lập bản đồ rộng xã hội và xu hướng tiếp thị trực tuyến 12 00:00:35,350 --> 00:00:39,210 để phát triển tài chính và khí hậu mô hình giúp lái nền kinh tế của chúng tôi 13 00:00:39,210 --> 00:00:40,780 và cộng đồng. 14 00:00:40,780 --> 00:00:44,910 >> Nhưng chính xác là R và ở đâu R bắt đầu? 15 00:00:44,910 --> 00:00:48,620 Vâng ban đầu, R bắt đầu ở đây với hai giáo sư 16 00:00:48,620 --> 00:00:51,950 ai muốn có một thống kê tốt hơn nền tảng cho học sinh của mình. 17 00:00:51,950 --> 00:00:56,030 Vì vậy, họ đã tạo ra một mô hình sau khi các ngôn ngữ thống kê S. 18 00:00:56,030 --> 00:01:00,480 Họ, cùng với nhiều người khác, giữ làm việc trên và sử dụng R, 19 00:01:00,480 --> 00:01:05,489 tạo ra công cụ cho R và tìm kiếm ứng dụng mới cho R mỗi ngày. 20 00:01:05,489 --> 00:01:07,750 >> Nhờ vào điều này là nỗ lực cộng đồng trên toàn thế giới, 21 00:01:07,750 --> 00:01:11,850 R giữ ngày càng tăng với hàng ngàn của thư viện người dùng tạo xây dựng 22 00:01:11,850 --> 00:01:15,500 để tăng cường chức năng R và xác nhận chất lượng khán giả có nguồn gốc 23 00:01:15,500 --> 00:01:19,740 và hỗ trợ từ các công nhận nhất các nhà lãnh đạo ngành công nghiệp trong mọi lĩnh vực mà 24 00:01:19,740 --> 00:01:25,040 sử dụng R. Mà là tuyệt vời, vì R là tốt nhất những gì nó làm. 25 00:01:25,040 --> 00:01:28,540 Vừa chớm nở nhanh chóng và chuyên gia dễ dàng giải thích, tương tác với, 26 00:01:28,540 --> 00:01:33,790 và hiển thị dữ liệu cho thấy họ nhanh chóng cộng đồng ngày càng tăng của người dùng trên toàn thế giới R 27 00:01:33,790 --> 00:01:36,380 và xem mã nguồn mở như thế nào R tiếp tục định hình 28 00:01:36,380 --> 00:01:39,340 tương lai của thống kê phân tích dữ liệu và khoa học. 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> Connor HARRIS: OK, tuyệt vời. 31 00:01:47,710 --> 00:01:50,360 Vì vậy, bài thuyết trình của riêng tôi sẽ được một chút tỉnh táo hơn. 32 00:01:50,360 --> 00:01:54,380 Nó sẽ không liên quan đến nhiều nền âm nhạc thú vị. 33 00:01:54,380 --> 00:01:59,160 Tuy nhiên, như bạn đã thấy trong đoạn video, R là loại của một chương trình ngôn ngữ mục đích chung. 34 00:01:59,160 --> 00:02:03,720 Nhưng nó đã được tạo ra chủ yếu cho công tác thống kê. 35 00:02:03,720 --> 00:02:07,980 >> Vì vậy, nó được thiết kế cho các thống kê, để phân tích dữ liệu, khai thác dữ liệu. 36 00:02:07,980 --> 00:02:12,420 Và như vậy bạn có thể thấy điều này trong rất nhiều sự lựa chọn thiết kế mà các nhà hoạch định của R 37 00:02:12,420 --> 00:02:13,320 làm. 38 00:02:13,320 --> 00:02:15,472 Nó được thiết kế cho phần lớn, những người không 39 00:02:15,472 --> 00:02:17,930 các chuyên gia trong lập trình, người chỉ chọn lên lập trình 40 00:02:17,930 --> 00:02:23,460 bên cạnh để họ có thể làm công việc của họ trong khoa học xã hội hoặc trong thống kê 41 00:02:23,460 --> 00:02:25,440 hoặc bất cứ điều gì. 42 00:02:25,440 --> 00:02:27,850 >> Nó có rất nhiều rất khác biệt quan trọng từ C. 43 00:02:27,850 --> 00:02:33,200 Nhưng cú pháp và mô hình nó sử dụng một cách rộng rãi là giống nhau. 44 00:02:33,200 --> 00:02:36,830 Và bạn nên cảm thấy khá nhiều ở nhà ngay lập tức. 45 00:02:36,830 --> 00:02:38,520 Đây là một ngôn ngữ mệnh lệnh. 46 00:02:38,520 --> 00:02:40,260 >> Đừng lo lắng quá nhiều về điều đó nếu bạn không biết thuật ngữ này. 47 00:02:40,260 --> 00:02:42,676 Nhưng có một sự phân biệt giữa bắt buộc, khai báo, 48 00:02:42,676 --> 00:02:43,810 và chức năng. 49 00:02:43,810 --> 00:02:47,600 Bắt buộc chỉ có nghĩa là bạn thực hiện báo cáo rằng về cơ bản lệnh. 50 00:02:47,600 --> 00:02:52,340 Và sau đó, người phiên dịch hoặc các máy tính sau từng cái một. 51 00:02:52,340 --> 00:02:56,630 Nó yếu đánh máy, có không có tờ khai loại trong R. 52 00:02:56,630 --> 00:02:59,130 >> Và sau đó các dòng giữa các loại khác nhau 53 00:02:59,130 --> 00:03:03,920 là nhiều hơn một chút lỏng lẻo hơn họ đang có trong C, ví dụ. 54 00:03:03,920 --> 00:03:06,450 Và như tôi đã nói có cơ sở rất rộng 55 00:03:06,450 --> 00:03:15,610 cho đồ họa, cho thống kê phân tích, khai thác dữ liệu. 56 00:03:15,610 --> 00:03:19,540 Những đều được xây dựng vào ngôn ngữ và, như một đoạn video cho biết, 57 00:03:19,540 --> 00:03:23,680 hàng ngàn thư viện của bên thứ ba mà bạn có thể tải về và sử dụng miễn phí 58 00:03:23,680 --> 00:03:25,340 với điều kiện giấy phép rất lỏng lẻo. 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> Vì vậy, nói chung, tôi muốn khuyên bạn nên bạn nhìn vào hai cuốn sách này 61 00:03:31,500 --> 00:03:34,610 nếu bạn đang đi để làm việc trên R. Một của họ là chính thức R mới bắt đầu 62 00:03:34,610 --> 00:03:35,110 hướng dẫn. 63 00:03:35,110 --> 00:03:38,660 Nó duy trì bởi phát triển cốt lõi của R. 64 00:03:38,660 --> 00:03:42,400 Bạn có thể tải về nó một lần nữa, miễn phí và hợp pháp tại trang liên kết đó. 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 Tất cả các slide đang đi lên trên internet, trên trang web CS50 67 00:03:49,869 --> 00:03:50,660 sau này được thực hiện. 68 00:03:50,660 --> 00:03:53,690 Vì vậy, không cần phải sao chép điều xuống điên cuồng. 69 00:03:53,690 --> 00:03:56,800 >> Một trong những khác là một sách giáo khoa bằng Cosma Shalizi, 70 00:03:56,800 --> 00:04:00,100 là một giáo sư môn thống kê tại Carnegie Mellon, được gọi là dữ liệu tiên tiến 71 00:04:00,100 --> 00:04:02,160 Phân tích từ một Point of View Elementary. 72 00:04:02,160 --> 00:04:04,010 Đây không phải là một cuốn sách chủ yếu R. 73 00:04:04,010 --> 00:04:07,130 Đó là một cuốn sách thống kê và đó là một cuốn sách phân tích dữ liệu. 74 00:04:07,130 --> 00:04:11,990 Nhưng nó rất dễ tiếp cận với những người có một chút kiến ​​thức về thống kê. 75 00:04:11,990 --> 00:04:13,750 >> Tôi đã không bao giờ thực hiện một khóa học chính thức. 76 00:04:13,750 --> 00:04:17,269 Tôi chỉ biết các bit và miếng từ đối tượng đồng minh khác nhau 77 00:04:17,269 --> 00:04:18,579 mà tôi đã thực hiện các khóa học trong. 78 00:04:18,579 --> 00:04:21,839 Và tôi đã có thể hiểu được nó hoàn toàn tốt. 79 00:04:21,839 --> 00:04:25,630 >> Tất cả các con số được đưa ra trong R. Chúng được làm R 80 00:04:25,630 --> 00:04:30,280 và họ cũng có danh sách mã dưới mỗi con số mà cho bạn 81 00:04:30,280 --> 00:04:33,270 làm thế nào bạn làm cho mỗi con số với mã R. 82 00:04:33,270 --> 00:04:37,400 Và đó là rất hữu ích nếu bạn đang cố gắng thi đua 83 00:04:37,400 --> 00:04:38,650 một số con số mà bạn nhìn thấy trong một cuốn sách. 84 00:04:38,650 --> 00:04:47,840 >> Và tải lại miễn phí stat.cmu.edu/cshalizi/ Xin lỗi, 85 00:04:47,840 --> 00:04:50,230 mà nên được giảm cshalizi dấu ngã. 86 00:04:50,230 --> 00:04:53,150 Tôi sẽ làm cho chắc chắn để sửa mà khi các slide chính thức đi lên. 87 00:04:53,150 --> 00:04:57,000 / ADAfaEPoV mà chỉ là từ viết tắt của tên sách. 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> Vì vậy, nói chung caveats-- R có rất nhiều khả năng. 90 00:05:02,500 --> 00:05:05,331 Tôi chỉ đi để có thể trang trải bề mặt của rất nhiều thứ. 91 00:05:05,331 --> 00:05:08,580 Ngoài ra phần đầu tiên của hội thảo là có được một cái gì đó của một bãi chứa dữ liệu. 92 00:05:08,580 --> 00:05:11,437 Tôi khá tiếc về điều đó. 93 00:05:11,437 --> 00:05:13,770 Về cơ bản, tôi sẽ giới thiệu với bạn rất nhiều điều 94 00:05:13,770 --> 00:05:15,350 ngay lập tức, đi càng nhanh càng tốt. 95 00:05:15,350 --> 00:05:17,058 Và sau đó chúng tôi nhận được phần thú vị, đó là 96 00:05:17,058 --> 00:05:20,570 demo, nơi tôi có thể hiển thị cho bạn mọi thứ mà chúng ta đã bàn về trên màn hình. 97 00:05:20,570 --> 00:05:23,321 Và bạn có thể chơi xung quanh trên của riêng bạn. 98 00:05:23,321 --> 00:05:26,070 Vì vậy, có đi có rất nhiều công cụ kỹ thuật ném lên trên đây. 99 00:05:26,070 --> 00:05:28,060 Đừng lo lắng về việc sao chép tất cả mà xuống. 100 00:05:28,060 --> 00:05:31,740 Bởi vì A, bạn có thể nhận được tất cả các công cụ trên trang web CS50 sau. 101 00:05:31,740 --> 00:05:37,780 Và B, nó không thực sự là quan trọng để ghi nhớ điều này từ các slide. 102 00:05:37,780 --> 00:05:40,462 Nó quan trọng hơn là bạn nhận được một số cơ sở trực quan với nó 103 00:05:40,462 --> 00:05:44,220 và đến từ chỉ chơi xung quanh. 104 00:05:44,220 --> 00:05:45,720 >> Vì vậy, tại sao sử dụng R? 105 00:05:45,720 --> 00:05:49,440 Về cơ bản, nếu bạn có một dự án liên quan đến việc khai thác dữ liệu lớn, dữ liệu 106 00:05:49,440 --> 00:05:52,664 trực quan, bạn nên sử dụng R. Nếu bạn đang 107 00:05:52,664 --> 00:05:55,830 làm phân tích thống kê phức tạp, Nó sẽ rất khó để trong Excel, 108 00:05:55,830 --> 00:05:58,010 Ví dụ, nó sẽ cũng được good-- cũng 109 00:05:58,010 --> 00:06:00,506 nếu bạn đang làm thống kê phân tích đó là tự động. 110 00:06:00,506 --> 00:06:02,130 Hãy nói rằng bạn đang duy trì một trang web. 111 00:06:02,130 --> 00:06:06,320 Và bạn muốn đọc nhật ký máy chủ mỗi ngày và biên dịch một số danh sách, 112 00:06:06,320 --> 00:06:10,320 như các nước hàng đầu mà người dùng của bạn đang đến từ, 113 00:06:10,320 --> 00:06:15,100 một số thống kê tóm tắt về cách dài họ chi tiêu trên trang web của bạn hoặc bất cứ. 114 00:06:15,100 --> 00:06:16,910 Và bạn muốn chạy này mỗi ngày. 115 00:06:16,910 --> 00:06:20,280 >> Bây giờ nếu bạn đang làm điều này trong Excel, bạn phải đi để đăng nhập máy chủ của bạn, 116 00:06:20,280 --> 00:06:23,490 nhập khẩu mà vào một Bảng tính dữ liệu Excel, 117 00:06:23,490 --> 00:06:24,910 chạy tất cả các phân tích bằng tay. 118 00:06:24,910 --> 00:06:27,100 Với R, bạn chỉ có thể viết một kịch bản. 119 00:06:27,100 --> 00:06:29,520 Lịch để chạy hàng ngày từ hệ thống điều hành của bạn. 120 00:06:29,520 --> 00:06:33,657 Và sau đó mỗi đêm vào lúc 02:00, hoặc bất cứ khi nào bạn lên kế hoạch cho nó chạy, 121 00:06:33,657 --> 00:06:35,990 nó sẽ xem xét thông qua của bạn lưu lượng truy cập internet cho ngày hôm đó. 122 00:06:35,990 --> 00:06:39,010 Và sau đó vào ngày hôm sau, bạn sẽ có sáng bóng, báo cáo mới này 123 00:06:39,010 --> 00:06:41,710 hoặc bất cứ điều gì với tất cả các thông tin bạn yêu cầu. 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> Vì vậy, về cơ bản là R cho Cisco lập trình so với phân tích của Cisco. 126 00:06:50,217 --> 00:06:51,050 Sơ bộ được thực hiện. 127 00:06:51,050 --> 00:06:53,104 Hãy đi vào những điều thực sự. 128 00:06:53,104 --> 00:06:55,020 Vì vậy, có ba thực loại trong ngôn ngữ. 129 00:06:55,020 --> 00:06:56,120 Có số loại. 130 00:06:56,120 --> 00:07:01,250 Có loại một sự khác biệt giữa số nguyên và các điểm nổi, 131 00:07:01,250 --> 00:07:02,769 nhưng không thực sự. 132 00:07:02,769 --> 00:07:04,560 Có một nhân vật gõ, đó là chuỗi. 133 00:07:04,560 --> 00:07:07,100 Và có một logic gõ, mà là Boolean. 134 00:07:07,100 --> 00:07:11,080 >> Và bạn có thể chuyển đổi giữa các loại sử dụng các chức năng này là số, 135 00:07:11,080 --> 00:07:15,220 như nhân vật, như logic. 136 00:07:15,220 --> 00:07:17,510 Nếu bạn gọi, ví dụ, như số trên một chuỗi, 137 00:07:17,510 --> 00:07:20,030 nó sẽ cố gắng để đọc chuỗi như một số, giống như cách 138 00:07:20,030 --> 00:07:25,897 rằng a2i và scanf làm, và C. Nếu bạn gọi như số trên đúng hay sai 139 00:07:25,897 --> 00:07:26,980 nó sẽ chuyển đổi thành 1 hoặc 0. 140 00:07:26,980 --> 00:07:29,110 Nếu bạn gọi là nhân vật về bất cứ điều gì nó sẽ thấy 141 00:07:29,110 --> 00:07:32,550 chuyển đổi đó vào một đại diện của chuỗi. 142 00:07:32,550 --> 00:07:34,990 >> Và sau đó có vectơ và ma trận. 143 00:07:34,990 --> 00:07:37,580 Vì vậy, về cơ bản là vectơ 1 mảng chiều. 144 00:07:37,580 --> 00:07:40,600 Họ là những gì chúng ta gọi là mảng trong C. Ma trận, 2 mảng chiều. 145 00:07:40,600 --> 00:07:42,350 Và sau đó cao hơn mảng chiều bạn có thể 146 00:07:42,350 --> 00:07:48,560 có 3, 4, 5 chiều hoặc bất cứ điều gì các giá trị số, chuỗi, 147 00:07:48,560 --> 00:07:52,860 giá trị của logic. 148 00:07:52,860 --> 00:07:55,380 >> Bạn cũng có danh sách đó là một loại mảng kết hợp. 149 00:07:55,380 --> 00:07:57,390 Tôi sẽ nhận được vào đó một chút. 150 00:07:57,390 --> 00:07:59,390 Vì vậy, một điều quan trọng rằng chuyến đi người trong R 151 00:07:59,390 --> 00:08:01,470 là không có thực, các loại nguyên tử tinh khiết. 152 00:08:01,470 --> 00:08:05,870 Không có sự phân biệt giữa thực tế một số, giống như một giá trị số, 153 00:08:05,870 --> 00:08:07,920 và một danh sách các giá trị số. 154 00:08:07,920 --> 00:08:12,370 Các giá trị số thực sự là giống như các vectơ có độ dài 1. 155 00:08:12,370 --> 00:08:14,959 Và điều này có một số ý nghĩa quan trọng. 156 00:08:14,959 --> 00:08:17,500 Một, nó có nghĩa là bạn có thể làm những điều rất dễ dàng có liên quan đến 157 00:08:17,500 --> 00:08:21,037 giống như thêm một số thành một vector. 158 00:08:21,037 --> 00:08:23,120 R sẽ cơ bản hình ra những gì bạn có nghĩa là bằng cách đó. 159 00:08:23,120 --> 00:08:24,610 Và tôi sẽ nhận được rằng trong một giây. 160 00:08:24,610 --> 00:08:27,930 Nó cũng có nghĩa là không có cách nào cho các loại checker-- đến mức 161 00:08:27,930 --> 00:08:30,530 rằng một cái gì đó như thế tồn tại trong R-- nói 162 00:08:30,530 --> 00:08:33,780 khi bạn đã vượt qua các giá trị duy nhất khi nó hy vọng một mảng hoặc ngược lại. 163 00:08:33,780 --> 00:08:39,159 Và đó có thể gây ra một số lẻ khó khăn mà tôi chạy vào khi 164 00:08:39,159 --> 00:08:42,252 Tôi đã sử dụng R trong công việc mùa hè của tôi. 165 00:08:42,252 --> 00:08:43,710 Và không có mảng hỗn hợp loại. 166 00:08:43,710 --> 00:08:46,543 Vì vậy, bạn không thể có một mảng là các yếu tố đầu tiên là, tôi không biết, 167 00:08:46,543 --> 00:08:49,332 chuỗi "John" và Yếu tố thứ hai là số 42. 168 00:08:49,332 --> 00:08:52,540 Nếu bạn cố gắng để làm điều đó, sau đó bạn sẽ nhận được tất cả mọi thứ chỉ chuyển thành một chuỗi. 169 00:08:52,540 --> 00:08:54,760 Vì vậy, chúng ta có chuỗi John, chuỗi 42. 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> Cú pháp nên kỳ lạ nhất Tính Năng của R cú pháp là rất tương tự như C. 172 00:09:02,025 --> 00:09:04,690 Có một vài sự khác biệt quan trọng. 173 00:09:04,690 --> 00:09:05,620 Typing là rất yếu. 174 00:09:05,620 --> 00:09:07,360 Vì vậy, không có khai báo biến. 175 00:09:07,360 --> 00:09:12,670 Chuyển nhượng sử dụng lạ điều hành lỗi ít hơn dấu gạch ngang. 176 00:09:12,670 --> 00:09:15,340 Bình luận là với dấu băm. 177 00:09:15,340 --> 00:09:19,230 Bây giờ tôi đoán ngày chúng tôi gọi nó là hashtag mặc dù đó không phải là thực sự không accurate-- 178 00:09:19,230 --> 00:09:21,810 các dấu gạch chéo kép. 179 00:09:21,810 --> 00:09:24,710 >> Dư lượng modul không có dấu hiệu %%. 180 00:09:24,710 --> 00:09:30,172 Phân chia số nguyên là với% /% đó là rất khó đọc khi nó được chiếu 181 00:09:30,172 --> 00:09:30,880 lên trên màn hình. 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 Bạn có thể nhận được các phạm vi của số nguyên với đại tràng. 184 00:09:37,200 --> 00:09:41,840 Vì vậy, 2,5 sẽ cung cấp cho bạn một vector của tất cả các số từ 2 đến 5. 185 00:09:41,840 --> 00:09:44,530 >> Mảng được một lập chỉ mục, mà vít rất nhiều người 186 00:09:44,530 --> 00:09:47,540 lên nếu họ đang từ hơn ngôn ngữ lập trình điển hình, 187 00:09:47,540 --> 00:09:50,450 như C, nơi mà hầu hết điều này là không lập chỉ mục. 188 00:09:50,450 --> 00:09:54,420 Một lần nữa, đây là nơi mà di sản của R như là một ngôn ngữ cho như không 189 00:09:54,420 --> 00:09:56,560 lập trình viên chuyên nghiệp đến. 190 00:09:56,560 --> 00:09:59,680 Nếu bạn là một nhà xã hội học hay một nhà kinh tế hoặc một cái gì đó 191 00:09:59,680 --> 00:10:01,980 và bạn đang cố gắng sử dụng R về cơ bản như một thuốc hỗ trợ 192 00:10:01,980 --> 00:10:03,832 để bạn quan trọng hơn làm việc chuyên nghiệp, 193 00:10:03,832 --> 00:10:06,040 bạn đang đi tìm một chỉ mục một chút tự nhiên hơn. 194 00:10:06,040 --> 00:10:09,890 Bởi vì bạn bắt đầu đếm tại 1 trong cuộc sống hàng ngày, không 0. 195 00:10:09,890 --> 00:10:13,260 >> Cho-vòng, điều này cũng tương tự như foreach xây dựng trong PHP, 196 00:10:13,260 --> 00:10:17,090 mà bạn sẽ nhận được để học in-- khá sớm. 197 00:10:17,090 --> 00:10:22,540 Mà là cho giá trị trong vector và sau đó bạn có thể làm những điều có giá trị. 198 00:10:22,540 --> 00:10:24,040 Đung Đó là đưa ra trong bài giảng. 199 00:10:24,040 --> 00:10:26,248 Connor HARRIS: Oh, đó là đi lên giảng, tuyệt vời. 200 00:10:26,248 --> 00:10:29,815 Đung Việc chuyển nhượng, là nó phải chỉ từ phải sang trái? 201 00:10:29,815 --> 00:10:31,440 Connor HARRIS: Từ phải sang trái, phải. 202 00:10:31,440 --> 00:10:34,720 Bạn có thể nghĩ về nó như là giá trị trên quyền đẩy vào biến 203 00:10:34,720 --> 00:10:36,240 bên trái. 204 00:10:36,240 --> 00:10:36,781 Đung OK. 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> Connor HARRIS: Và cuối cùng chức năng cú pháp là một chút lạ. 207 00:10:42,330 --> 00:10:48,460 Bạn có foo tên hàm, giao chức năng từ khóa này, tiếp theo 208 00:10:48,460 --> 00:10:51,530 bởi tất cả các đối số và sau đó các cơ quan chức năng sau đó. 209 00:10:51,530 --> 00:10:53,280 Một lần nữa những điều này có thể có vẻ hơi kỳ lạ. 210 00:10:53,280 --> 00:10:57,181 Họ sẽ trở thành bản chất thứ hai sau bạn làm việc với ngôn ngữ cho một chút. 211 00:10:57,181 --> 00:10:58,930 Vì vậy, vectơ, đường bạn xây dựng một vector 212 00:10:58,930 --> 00:11:04,550 là bạn loại C, đó là một từ khóa, sau đó tất cả các số bạn muốn hoặc dây 213 00:11:04,550 --> 00:11:06,490 hoặc bất cứ điều gì. 214 00:11:06,490 --> 00:11:07,995 Luận cũng là vectơ. 215 00:11:07,995 --> 00:11:09,620 Nhưng các mảng kết quả bị đốn ngã. 216 00:11:09,620 --> 00:11:14,385 Vì vậy, bạn không thể có mảng nơi một số yếu tố là con số duy nhất 217 00:11:14,385 --> 00:11:17,010 và một số yếu tố là mảng mình. 218 00:11:17,010 --> 00:11:20,010 >> Vì vậy, nếu bạn cố gắng để xây dựng một mảng là yếu tố đầu tiên là 4 219 00:11:20,010 --> 00:11:22,370 và yếu tố thứ hai là mảng 3,5 bạn sẽ 220 00:11:22,370 --> 00:11:25,890 chỉ cần có được một mảng ba yếu tố, 4,3,5. 221 00:11:25,890 --> 00:11:27,760 Họ không thể là kiểu hỗn hợp. 222 00:11:27,760 --> 00:11:32,290 Nếu bạn cố gắng đọc hoặc viết bên ngoài các giới hạn của một vector 223 00:11:32,290 --> 00:11:36,640 bạn sẽ nhận được giá trị này được gọi là một NA đó là viết tắt cho một giá trị thiếu. 224 00:11:36,640 --> 00:11:39,900 Và điều này là để dành cho như các nhà thống kê người 225 00:11:39,900 --> 00:11:43,080 đang làm việc với các tập dữ liệu không đầy đủ. 226 00:11:43,080 --> 00:11:46,460 >> Nếu bạn áp dụng một chức năng đó là nghĩa vụ để lấy một số cho một mảng 227 00:11:46,460 --> 00:11:49,220 sau đó những gì bạn sẽ nhận được là, chức năng sẽ bản đồ trên mảng. 228 00:11:49,220 --> 00:11:52,130 Vì vậy, nếu chức năng của bạn hãy nói mất một số và trả về nó vuông. 229 00:11:52,130 --> 00:11:58,170 Bạn áp dụng được cho các mảng 2,3,5 Mảng 4,9,25 những gì bạn sẽ nhận được. 230 00:11:58,170 --> 00:12:00,010 >> Và đó là rất hữu ích bởi vì nó có nghĩa là bạn 231 00:12:00,010 --> 00:12:03,374 không phải viết cho vòng cho làm những điều rất đơn giản như áp dụng 232 00:12:03,374 --> 00:12:05,040 một chức năng để tất cả các thành viên của một tập hợp dữ liệu. 233 00:12:05,040 --> 00:12:08,557 Mà nếu bạn đang làm việc với lớn bộ dữ liệu, bạn phải làm rất nhiều. 234 00:12:08,557 --> 00:12:10,390 Hàm nhị phân là nhập ứng dụng bằng cách nhập cảnh. 235 00:12:10,390 --> 00:12:12,430 Tôi sẽ nhận được vào đó. 236 00:12:12,430 --> 00:12:16,750 Bạn có thể truy cập chúng với mảng hoặc vectơ với dấu ngoặc vuông. 237 00:12:16,750 --> 00:12:22,300 Dấu ngoặc để tên vector vuông 1 sẽ cung cấp cho bạn những phần tử đầu tiên. 238 00:12:22,300 --> 00:12:25,510 Tên Vector dấu ngoặc vuông 2 sẽ cung cấp cho bạn các yếu tố thứ hai. 239 00:12:25,510 --> 00:12:27,530 >> Bạn có thể vượt qua trên một vector của chỉ số và bạn sẽ 240 00:12:27,530 --> 00:12:29,640 lấy lại ra về cơ bản là một yếu tố phụ. 241 00:12:29,640 --> 00:12:34,990 Vì vậy, bạn có thể làm vector khung tên C, 2,4 và bạn sẽ nhận ra một vector chứa 242 00:12:34,990 --> 00:12:38,804 thứ hai và thứ tư phần tử của mảng. 243 00:12:38,804 --> 00:12:40,720 Và nếu bạn chỉ muốn một Thống kê tóm tắt nhanh chóng 244 00:12:40,720 --> 00:12:47,529 của một vector như tứ phân vị phạm vi, trung bình, tối đa, bất cứ điều gì, 245 00:12:47,529 --> 00:12:49,820 bạn có thể chỉ cần gõ tóm tắt Tên vector và nhận ra rằng. 246 00:12:49,820 --> 00:12:52,680 Đó không phải là thực sự hữu ích trong lập trình nhưng nếu bạn đang chơi 247 00:12:52,680 --> 00:12:55,990 xung quanh các bộ dữ liệu, nó tiện. 248 00:12:55,990 --> 00:12:58,650 >> Matrices-- cơ bản mảng nhiều chiều hơn. 249 00:12:58,650 --> 00:13:01,190 Họ có cú pháp ký hiệu đặc biệt này. 250 00:13:01,190 --> 00:13:07,620 Ma trận với một mảng mà được điền in-- xin lỗi, ma trận với dữ liệu, 251 00:13:07,620 --> 00:13:09,780 số hàng, số cột. 252 00:13:09,780 --> 00:13:13,180 Khi bạn có một số dữ liệu, nó lấp mảng về cơ bản tiến trên xuống dưới 253 00:13:13,180 --> 00:13:13,380 Thứ nhất. 254 00:13:13,380 --> 00:13:14,190 Sau đó, từ trái sang phải. 255 00:13:14,190 --> 00:13:15,030 Vì vậy, như thế. 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 Và R đã xây dựng trong phép nhân ma trận, 258 00:13:19,600 --> 00:13:24,310 phân hủy quang phổ, diagonalization, rất nhiều thứ. 259 00:13:24,310 --> 00:13:27,785 Nếu bạn muốn chiều cao mảng, vì vậy 3, 4, 5, 260 00:13:27,785 --> 00:13:29,410 hoặc bất cứ kích thước nào bạn có thể làm điều đó. 261 00:13:29,410 --> 00:13:34,400 Cú pháp là mảng mờ bằng c, sau đó danh sách của các kích thước. 262 00:13:34,400 --> 00:13:38,620 Vì vậy, nếu bạn muốn có một mảng 4 chiều với kích thước 4, 7, 8, 9, mảng, 263 00:13:38,620 --> 00:13:45,470 dim bằng c (4,7,8,9). 264 00:13:45,470 --> 00:13:51,180 >> Bạn truy cập vào các giá trị duy nhất với dấu ngoặc entry đầu tiên dấu phẩy vào thứ hai. 265 00:13:51,180 --> 00:13:54,870 Bạn có thể nhận được toàn bộ lát của hàng hoặc cột. 266 00:13:54,870 --> 00:13:59,900 Với cú pháp không hoàn chỉnh này nó chỉ chèo dấu phẩy số cột hoặc dấu phẩy 267 00:13:59,900 --> 00:14:00,400 con số. 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 Vì vậy, danh sách này là một loại mảng liên quan. 270 00:14:04,540 --> 00:14:06,360 Họ có cú pháp riêng của họ ở đây. 271 00:14:06,360 --> 00:14:08,320 Một lần nữa không điên cuồng sao chép tất cả xuống này. 272 00:14:08,320 --> 00:14:11,370 Đây chỉ là để mọi người đi qua các slide sau 273 00:14:11,370 --> 00:14:13,089 có tất cả trong một tài liệu tham khảo tốt đẹp. 274 00:14:13,089 --> 00:14:16,130 Và điều này sẽ trở thành một lần rất tự nhiên Tôi thực sự đi bộ qua các bản demo. 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 Vì vậy, liệt kê một mảng cơ bản liên quan. 277 00:14:20,920 --> 00:14:27,040 Bạn có thể truy cập các giá trị với Tên danh sách, ký hiệu đô la, chìa khóa. 278 00:14:27,040 --> 00:14:31,370 Vì vậy, nếu danh sách của bạn được đặt tên foo, sau đó bạn có thể truy cập nó như thế. 279 00:14:31,370 --> 00:14:37,032 Bạn có thể nhận được một cặp toàn bộ giá trị quan trọng bằng cách đi qua trong chỉ số khung hình vuông. 280 00:14:37,032 --> 00:14:39,240 Nếu bạn đọc từ một không tồn tại phím, bạn sẽ nhận được null. 281 00:14:39,240 --> 00:14:41,150 Nó sẽ không lỗi. 282 00:14:41,150 --> 00:14:43,590 Thing là, R sẽ làm như nhiều với null như nó có thể. 283 00:14:43,590 --> 00:14:46,580 Và điều này có nghĩa là nếu bạn đang không mong đợi để nhận được null ra 284 00:14:46,580 --> 00:14:51,840 của một số danh sách đọc, bạn sẽ nhận được một số lỗi không thể đoán trước tiếp tục xuống 285 00:14:51,840 --> 00:14:52,620 dòng. 286 00:14:52,620 --> 00:14:54,890 >> Điều này xảy ra với tôi của tôi công việc mùa hè khi tôi đã sử dụng R 287 00:14:54,890 --> 00:14:58,410 nơi tôi đã thay đổi như thế nào nhất định danh sách đã được xác định ở một chỗ 288 00:14:58,410 --> 00:15:05,410 nhưng không thay đổi sau này trên mã mà đọc giá trị từ nó. 289 00:15:05,410 --> 00:15:10,190 Và vì vậy những gì đã xảy ra là tôi đã đọc các giá trị null trong danh sách này, 290 00:15:10,190 --> 00:15:13,090 chuyển chúng thành các chức năng, và đang được rất bối rối 291 00:15:13,090 --> 00:15:16,000 khi tôi nhận tất cả các loại infinities ngẫu nhiên xén lên 292 00:15:16,000 --> 00:15:16,790 trong chức năng này. 293 00:15:16,790 --> 00:15:20,730 Bởi vì nếu bạn áp dụng tối đa nhất định hoặc các chức năng tối thiểu để null, 294 00:15:20,730 --> 00:15:22,570 bạn sẽ nhận được giá trị vô hạn ra. 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> Khung dữ liệu, chúng tôi là một lớp con của danh sách. 297 00:15:29,180 --> 00:15:31,170 Mỗi giá trị là một vector có cùng chiều dài. 298 00:15:31,170 --> 00:15:34,220 Và chúng được sử dụng để trình bày, về cơ bản, các bảng dữ liệu. 299 00:15:34,220 --> 00:15:36,175 Có cú pháp khởi tạo này. 300 00:15:36,175 --> 00:15:38,800 Điều này sẽ tất cả, một lần nữa, có nhiều rõ ràng hơn khi bạn nhận được để demo. 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 Và những điều tốt đẹp về khung dữ liệu là bạn 303 00:15:44,240 --> 00:15:49,380 có thể cung cấp tên cho tất cả các cột và tên để tất cả các hàng. 304 00:15:49,380 --> 00:15:53,890 Và vì vậy mà làm cho truy cập chúng một chút thân thiện. 305 00:15:53,890 --> 00:15:59,130 Ngoài ra đây là cách hầu hết các chức năng mà đọc dữ liệu từ các bảng tính Excel 306 00:15:59,130 --> 00:16:03,820 hoặc từ các tập tin văn bản, ví dụ, sẽ đọc dữ liệu của họ. 307 00:16:03,820 --> 00:16:07,555 Họ sẽ đặt nó vào một số loại khung dữ liệu. 308 00:16:07,555 --> 00:16:09,680 Vì vậy functions-- chức năng Cú pháp là một chút lạ. 309 00:16:09,680 --> 00:16:16,160 Một lần nữa nó là tên của hàm, phân công, chức năng từ khóa này và sau đó 310 00:16:16,160 --> 00:16:17,900 danh sách các đối số. 311 00:16:17,900 --> 00:16:24,080 Vì vậy, có một số những điều tốt đẹp về chức năng làm việc ở đây. 312 00:16:24,080 --> 00:16:28,170 Đối với một, bạn thực sự có thể gán giá trị mặc định cho tham số nhất định. 313 00:16:28,170 --> 00:16:32,910 Vì vậy, bạn có thể nói R1 equals-- bạn có thể nói foo 314 00:16:32,910 --> 00:16:38,290 là một chức năng mà R1 bằng gì gì đó theo mặc định nếu người dùng chỉ định 315 00:16:38,290 --> 00:16:39,090 không có đối số. 316 00:16:39,090 --> 00:16:41,932 Nếu không, nó là bất cứ điều gì ông đặt trong. 317 00:16:41,932 --> 00:16:44,140 Và điều này là rất tiện dụng bởi vì rất nhiều chức năng của chúng tôi 318 00:16:44,140 --> 00:16:47,910 có thường hàng chục hoặc hàng trăm đối số. 319 00:16:47,910 --> 00:16:51,210 Ví dụ những người cho âm mưu đồ thị hoặc vẽ biểu đồ phân tán 320 00:16:51,210 --> 00:16:54,430 có lập luận rằng kiểm soát tất cả mọi thứ từ các tiêu đề và trục 321 00:16:54,430 --> 00:16:59,512 nhãn với màu sắc của đường hồi quy. 322 00:16:59,512 --> 00:17:01,470 Và do đó, nếu bạn không muốn để làm cho mọi người chỉ định 323 00:17:01,470 --> 00:17:04,050 mỗi một đơn của các hàng trăm đối số 324 00:17:04,050 --> 00:17:07,674 kiểm soát mọi khía cạnh của một cốt truyện hoặc một hồi quy hay bất cứ điều gì, 325 00:17:07,674 --> 00:17:09,299 nó là tốt đẹp để có các giá trị mặc định. 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> Và sau đó bạn có thể thực sự viết như bạn đã thấy trở lại đây. 328 00:17:19,146 --> 00:17:22,869 Hoặc tìm một ví dụ tốt hơn. 329 00:17:22,869 --> 00:17:28,690 Khi bạn gọi chức năng mà bạn có thể thực sự gọi chúng bằng những cái tên đối số. 330 00:17:28,690 --> 00:17:33,919 Vì vậy, đây là một ví dụ của nhà xây dựng ma trận. 331 00:17:33,919 --> 00:17:34,960 Phải mất ba đối số. 332 00:17:34,960 --> 00:17:36,760 Thông thường, bạn có dữ liệu, mà là một vector. 333 00:17:36,760 --> 00:17:38,920 Bạn có N hàng, mà là số lượng hàng. 334 00:17:38,920 --> 00:17:41,160 Bạn có N cols-- số cột. 335 00:17:41,160 --> 00:17:43,920 Có điều là nếu bạn gõ N hàng bằng bất cứ điều gì 336 00:17:43,920 --> 00:17:46,520 và N col bằng bất cứ điều gì khi bạn đang gọi điện thoại chức năng này, 337 00:17:46,520 --> 00:17:47,770 bạn thực sự có thể đảo ngược chúng. 338 00:17:47,770 --> 00:17:51,590 Vì vậy, bạn có thể đặt N col đầu tiên và N hàng thứ hai và nó sẽ làm cho không có sự khác biệt. 339 00:17:51,590 --> 00:17:54,660 Vì vậy, đó là một tính năng ít tốt đẹp. 340 00:17:54,660 --> 00:17:56,260 >> Đã nhập khẩu và xuất khẩu. 341 00:17:56,260 --> 00:18:00,010 Điều này có thể được thực hiện, về cơ bản. 342 00:18:00,010 --> 00:18:03,816 Ngoài ra còn có các cơ sở để viết ra tùy R đối tượng vào một tập tin nhị phân 343 00:18:03,816 --> 00:18:05,190 và sau đó đọc chúng trở lại sau đó. 344 00:18:05,190 --> 00:18:08,030 Đó là tiện dụng nếu bạn đang làm một lớn tương tác phiên R 345 00:18:08,030 --> 00:18:12,850 và bạn cần phải lưu những điều rất nhanh chóng. 346 00:18:12,850 --> 00:18:16,460 Theo mặc định R có một thư mục làm việc rằng các tập tin được viết ra vào 347 00:18:16,460 --> 00:18:19,410 và đọc lại từ. 348 00:18:19,410 --> 00:18:22,350 Bạn có thể thấy rằng với getwg, thay đổi nó với setdw. 349 00:18:22,350 --> 00:18:25,630 Không có gì đặc biệt thú vị ở đây 350 00:18:25,630 --> 00:18:28,270 >> Vì vậy, bây giờ các số liệu thống kê thực tế stuff-- hồi quy đa tuyến. 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 Vì vậy, cú pháp thông thường là một chút phức tạp. 353 00:18:34,910 --> 00:18:37,260 Mô hình này là một đối tượng lớn về cơ bản. 354 00:18:37,260 --> 00:18:39,910 Nó được gán vào lm, đó là một cuộc gọi chức năng. 355 00:18:39,910 --> 00:18:43,840 Yếu tố đầu tiên, các y x1 dấu ngã cộng với bất cứ điều gì. 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 Cú pháp của tôi ở đây là một chút bối rối. 358 00:18:47,990 --> 00:18:49,490 Tôi khá tiếc, điều này là cách tiêu chuẩn 359 00:18:49,490 --> 00:18:50,990 rằng những cuốn sách khoa học máy tính làm điều này. 360 00:18:50,990 --> 00:18:54,890 Nhưng nó là một chút lạ. 361 00:18:54,890 --> 00:18:58,200 >> Vì vậy, về cơ bản, nó lm ngoặc, mục đầu tiên 362 00:18:58,200 --> 00:19:06,730 được variable-- xin lỗi, phụ thuộc x1 dấu ngã biến cộng với x2 cộng 363 00:19:06,730 --> 00:19:10,910 Tuy nhiên nhiều độc lập biến mà bạn có. 364 00:19:10,910 --> 00:19:14,240 Và sau đó những có thể là bạn vectơ, tất cả cùng độ dài. 365 00:19:14,240 --> 00:19:16,220 Hoặc họ có thể là cột tiêu đề trong một khung dữ liệu 366 00:19:16,220 --> 00:19:18,553 mà bạn chỉ cần chỉ định trong số thứ hai khung dữ liệu. 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> Bạn cũng có thể chỉ định một công thức phức tạp hơn 369 00:19:26,380 --> 00:19:31,990 do đó bạn không phải tuyến tính thoái một biến phụ thuộc một, 370 00:19:31,990 --> 00:19:34,440 hoặc một vector trên một vector có sẵn từ trước. 371 00:19:34,440 --> 00:19:38,070 Bạn có thể làm, ví dụ, một thành phần vector y bình phương cộng với 1 372 00:19:38,070 --> 00:19:42,100 và thoái mà chống lại đăng nhập của một số vector khác. 373 00:19:42,100 --> 00:19:45,200 Bạn có thể in những tóm tắt mô hình với lệnh này được gọi là 374 00:19:45,200 --> 00:19:48,607 summary-- chỉ tóm tắt mô hình dấu ngoặc. 375 00:19:48,607 --> 00:19:50,190 Một lần nữa cái gì khác tôi cần phải làm rõ. 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 Cái gì khác mà sẽ được điều chỉnh khi các slide đi lên trên internet. 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 Nếu bạn chỉ muốn tính toán một tương quan đơn giản 380 00:20:03,210 --> 00:20:09,170 bạn có thể sử dụng vector tương quan 1 vector 2 chức năng cốt lõi. 381 00:20:09,170 --> 00:20:11,856 Phương pháp là theo mặc định Pearson tương quan. 382 00:20:11,856 --> 00:20:13,480 Đó là những tiêu chuẩn mà bạn có thể làm. 383 00:20:13,480 --> 00:20:15,990 Có cũng Spearman và Kendell tương quan 384 00:20:15,990 --> 00:20:19,530 đó là một số nhiều thứ tự xếp hạng tương quan. 385 00:20:19,530 --> 00:20:23,600 Vâng họ không tính toán sản phẩm khoảnh khắc giữa các vectơ mình, 386 00:20:23,600 --> 00:20:28,511 nhưng lệnh rank của vector. 387 00:20:28,511 --> 00:20:29,510 Tôi sẽ giải thích sau. 388 00:20:29,510 --> 00:20:30,120 >> Đung Nhanh câu hỏi 389 00:20:30,120 --> 00:20:30,360 >> CONNER HARRIS: Chắc chắn rồi. 390 00:20:30,360 --> 00:20:33,151 >> Đung Vì vậy, khi bạn đang tính toán cho các mối tương quan đơn giản làm 391 00:20:33,151 --> 00:20:37,655 bạn cho rằng có một thống kê ý nghĩa đối với tương quan? 392 00:20:37,655 --> 00:20:39,030 CONNER HARRIS: Bạn không cần phải. 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 An lm là về cơ bản chỉ là một máy. 395 00:20:43,960 --> 00:20:47,690 Nó sẽ mất trong hai điều và nó sẽ nhổ ra 396 00:20:47,690 --> 00:20:49,770 hệ số của các dòng phù hợp nhất. 397 00:20:49,770 --> 00:20:52,310 Nó cũng báo cáo tiêu chuẩn lỗi trên những hệ số. 398 00:20:52,310 --> 00:20:55,865 Và nó sẽ cho bạn biết, như là đánh chặn ý nghĩa thống kê 399 00:20:55,865 --> 00:20:56,740 hoặc chênh lệch từ 0. 400 00:20:56,740 --> 00:20:59,400 Là độ dốc của tốt nhất dòng phù hợp thống kê 401 00:20:59,400 --> 00:21:01,510 khác nhau từ số không, vân vân. 402 00:21:01,510 --> 00:21:06,260 Vì vậy, nó giả định không có gì, tôi nghĩ là câu trả lời tốt nhất cho câu hỏi của bạn. 403 00:21:06,260 --> 00:21:07,410 ĐƯỢC. 404 00:21:07,410 --> 00:21:14,650 >> Plotting-- vậy lý do chính mà bạn nên sử dụng R, giống như hồi quy đa tuyến. 405 00:21:14,650 --> 00:21:17,320 Về cơ bản mỗi ngôn ngữ có một số cơ sở cho điều đó. 406 00:21:17,320 --> 00:21:21,365 Và cú pháp một cách trung thực R cho hồi quy là một phức tạp chút. 407 00:21:21,365 --> 00:21:22,990 Nhưng âm mưu là nơi mà nó thực sự tỏa sáng. 408 00:21:22,990 --> 00:21:28,090 >> Các chức năng Workhorse là cốt truyện và phải mất hai vectơ, x và y. 409 00:21:28,090 --> 00:21:33,010 Và sau đó là viết tắt của một elip rất số lượng lớn các đối số tùy chọn mà 410 00:21:33,010 --> 00:21:39,190 kiểm soát tất cả mọi thứ từ tiêu đề đến màu sắc các dòng khác nhau hoặc các điểm khác nhau, 411 00:21:39,190 --> 00:21:40,200 đến các loại âm mưu. 412 00:21:40,200 --> 00:21:42,250 Bạn có thể phải phân tán lô hoặc lô hàng. 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [Không nghe thấy] 2 vectơ có cùng chiều dài. 415 00:21:49,710 --> 00:21:53,780 Bạn có thể đặt trước này với đính kèm khung dữ liệu trong kịch bản của bạn. 416 00:21:53,780 --> 00:22:01,220 Và điều này sẽ cho phép bạn chỉ cần sử dụng cột tiêu đề thay vì vectơ riêng. 417 00:22:01,220 --> 00:22:05,410 Bạn có thể thêm đường phù hợp nhất và địa phương đường cong hồi quy để đồ thị của bạn. 418 00:22:05,410 --> 00:22:09,390 >> Những lệnh này được liệt kê ở đây, ab dòng và đường dây, 419 00:22:09,390 --> 00:22:11,640 theo mặc định các nhận bằng văn bản vào cửa sổ pop up 420 00:22:11,640 --> 00:22:15,560 vì nó cho rằng bạn đang sử dụng R tương tác. 421 00:22:15,560 --> 00:22:17,310 Nếu bạn không phải là bạn có thể viết hai tập tin đó 422 00:22:17,310 --> 00:22:21,600 đang thực sự bất kỳ định dạng nào bạn muốn. 423 00:22:21,600 --> 00:22:25,410 Xin lỗi, tôi có một lỗi đánh máy Tôi chỉ nhận ra. 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 Nếu bạn muốn mở một thiết bị đồ họa 426 00:22:32,720 --> 00:22:39,200 bạn có thể sử dụng chức năng này được gọi là PNG hoặc JPEG hoặc rất nhiều định dạng hình ảnh khác. 427 00:22:39,200 --> 00:22:42,319 Và bạn có thể viết các đồ thị để bất cứ tên tập tin bạn chỉ định. 428 00:22:42,319 --> 00:22:45,110 Để hủy mà bạn phải use-- Tôi đã không viết này trong slide-- 429 00:22:45,110 --> 00:22:49,650 nhưng có một chức năng gọi là dev dot ra rằng sẽ không có đối số. 430 00:22:49,650 --> 00:22:51,517 >> Sau đó, có cơ sở cho 3D vẽ 431 00:22:51,517 --> 00:22:53,350 và đường viền cho âm mưu nếu bạn muốn làm cho 432 00:22:53,350 --> 00:22:55,700 đồ thị của hai biến độc lập. 433 00:22:55,700 --> 00:22:57,150 Tôi sẽ không nhận được vào những ngay bây giờ. 434 00:22:57,150 --> 00:22:59,130 >> Cũng có một số có cơ sở vật chất cho hoạt hình 435 00:22:59,130 --> 00:23:01,300 những người thường duy trì bởi các bên thứ ba. 436 00:23:01,300 --> 00:23:06,330 Tôi đã làm hình ảnh động với đồ thị R, nhưng tôi đã không được sử dụng các bên thứ ba 437 00:23:06,330 --> 00:23:06,940 thư viện. 438 00:23:06,940 --> 00:23:09,929 Vì vậy, tôi có thể không thực sự chứng thực làm thế nào để chúng tốt. 439 00:23:09,929 --> 00:23:12,220 Những gì tôi khuyên nếu bạn muốn để làm cho hình ảnh động bằng cách sử dụng R 440 00:23:12,220 --> 00:23:16,480 là bạn có thể ghi lại tất cả các các khung cho hình ảnh động 441 00:23:16,480 --> 00:23:18,470 và sau đó bạn có thể sử dụng một program-- bên thứ ba 442 00:23:18,470 --> 00:23:23,630 những điển hình được gọi là FFmpeg hoặc ImageMagick-- để khâu 443 00:23:23,630 --> 00:23:26,540 tất cả các khung hình của bạn thành một hình ảnh động. 444 00:23:26,540 --> 00:23:28,380 >> Vì vậy, thời gian cho bản demo. 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 Vì vậy, nếu bạn đang sử dụng bất kỳ hệ thống Unix như đó là Linux BSD nhưng người sử dụng BSD. 447 00:23:37,189 --> 00:23:39,730 OS X mở một cửa sổ terminal và gõ R tại dấu nhắc lệnh. 448 00:23:39,730 --> 00:23:42,820 Nếu bạn có R studio hay như thế, mà cũng làm việc. 449 00:23:42,820 --> 00:23:46,270 Đối với người dùng Windows, bạn nên có có thể tìm thấy R trong menu Start của bạn. 450 00:23:46,270 --> 00:23:50,390 Nó nên được gọi là một cái gì đó như R x64 3 điểm bất cứ điều gì. 451 00:23:50,390 --> 00:23:53,110 Mở mà lên đó. 452 00:23:53,110 --> 00:23:58,850 >> Vì vậy, bây giờ hãy để tôi chỉ mở một cửa sổ terminal. 453 00:23:58,850 --> 00:24:02,562 Tất cả các quyền, tìm kiếm. 454 00:24:02,562 --> 00:24:03,520 Đung Command-Space 455 00:24:03,520 --> 00:24:06,675 CONNER HARRIS: Command-Space, cảm ơn bạn. 456 00:24:06,675 --> 00:24:10,030 Tôi không thường sử dụng máy Mac. 457 00:24:10,030 --> 00:24:13,310 Thiết bị đầu cuối, hiển thị cửa sổ mới. 458 00:24:13,310 --> 00:24:18,120 Cửa sổ mới là thiết lập cơ bản, R. Vì vậy, bạn sẽ nhận được 459 00:24:18,120 --> 00:24:22,230 một thông điệp chào mừng, một cái gì đó như thế này. 460 00:24:22,230 --> 00:24:31,060 >> Vì vậy, tôi đang sử dụng R tương tác. 461 00:24:31,060 --> 00:24:32,719 Bạn cũng có thể viết kịch bản R của khóa học. 462 00:24:32,719 --> 00:24:34,510 Về cơ bản script chạy cách chính xác giống như 463 00:24:34,510 --> 00:24:40,250 nếu bạn đang ngồi tại máy tính gõ vào từng dòng một lúc. 464 00:24:40,250 --> 00:24:42,660 Vì vậy, chúng ta hãy bắt đầu bằng cách làm cho một vector. 465 00:24:42,660 --> 00:24:46,230 Một mũi tên C 1, 2. 466 00:24:46,230 --> 00:24:49,400 1, 2, 4. 467 00:24:49,400 --> 00:24:50,050 OK chắc chắn. 468 00:24:50,050 --> 00:24:51,630 Tôi có thể làm cho kích thước phông chữ lớn hơn. 469 00:24:51,630 --> 00:24:53,030 >> ĐỐI TƯỢNG: Command-Plus 470 00:24:53,030 --> 00:24:53,650 >> CONNER HARRIS: Command-Plus. 471 00:24:53,650 --> 00:24:54,191 Command-Plus. 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 Tất cả các quyền, làm thế nào vậy? 474 00:25:00,370 --> 00:25:00,870 Tốt? 475 00:25:00,870 --> 00:25:01,551 ĐƯỢC. 476 00:25:01,551 --> 00:25:03,300 Vì vậy, hãy bắt đầu bằng tuyên bố một danh sách vector. 477 00:25:03,300 --> 00:25:08,710 Làm một, mũi tên, C 1,2,4. 478 00:25:08,710 --> 00:25:11,181 Chúng ta có thể thấy một. 479 00:25:11,181 --> 00:25:12,680 Đừng lo lắng về độ đó. 480 00:25:12,680 --> 00:25:18,590 Các dấu ngoặc là vì vậy nếu bạn in ra mảng rất dài, chúng ta có thể bạn đang ở đâu. 481 00:25:18,590 --> 00:25:26,987 Một ví dụ là nếu tôi chỉ muốn phạm vi 2-200. 482 00:25:26,987 --> 00:25:28,820 Nếu tôi in rất mảng dài, các dấu ngoặc 483 00:25:28,820 --> 00:25:31,060 chỉ để tôi có thể giữ theo dõi trong đó chỉ số 484 00:25:31,060 --> 00:25:33,250 chúng ta đang ở trên nếu tôi đang tìm thông qua trực quan này. 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 Vì vậy, dù sao đi nữa, chúng ta có một. 487 00:25:38,280 --> 00:25:43,326 >> Vì vậy, tôi đã nói trước khi các mảng tương tác rất độc đáo với, ví dụ, 488 00:25:43,326 --> 00:25:44,450 hoạt động nguyên phân như thế này. 489 00:25:44,450 --> 00:25:46,500 Vì vậy, những gì bạn nghĩ rằng tôi sẽ nhận được nếu tôi gõ một cộng 1? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 Vâng. 492 00:25:51,140 --> 00:25:54,250 Phải, bây giờ tôi sẽ làm cho mảng khác nhau này. 493 00:25:54,250 --> 00:26:01,650 Hãy nói rằng b c 20,40, 80. 494 00:26:01,650 --> 00:26:03,400 Vậy bạn nghĩ như thế nào lệnh này sẽ làm gì? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 Thêm các yếu tố. 497 00:26:10,670 --> 00:26:14,950 Và như vậy về cơ bản đó là những gì nó. 498 00:26:14,950 --> 00:26:16,740 Vì vậy, điều này là khá thuận tiện. 499 00:26:16,740 --> 00:26:23,800 Vì vậy, tôi làm thế nào về tôi làm điều này. c là, chúng ta hãy nói, 6 lần 1-10. 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 Vì vậy, những gì tôi muốn xem chứa, bạn có nghĩ? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 Vì vậy, tất cả các bội của sáu. 504 00:26:38,110 --> 00:26:42,170 Bây giờ, những gì bạn nghĩ sẽ xảy ra nếu tôi làm thế này? 505 00:26:42,170 --> 00:26:48,090 Tôi sẽ làm một chút rõ ràng hơn này, c, c. 506 00:26:48,090 --> 00:26:50,365 Vì vậy, những gì sẽ xảy ra, làm bạn nghĩ rằng, nếu tôi làm điều này? 507 00:26:50,365 --> 00:26:51,488 một cộng c. 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [Không nghe thấy] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> Đung Hoặc là một lỗi hoặc nó chỉ cần thêm ba yếu tố đầu tiên. 512 00:27:02,350 --> 00:27:04,510 >> CONNER HARRIS: Không hẳn. 513 00:27:04,510 --> 00:27:05,522 Đây là những gì chúng tôi đã nhận. 514 00:27:05,522 --> 00:27:08,910 Điều gì xảy ra là một ngắn hơn mảng, một, đã đạp xe. 515 00:27:08,910 --> 00:27:13,990 Vì vậy, chúng tôi đã nhận 124, 124, 124. 516 00:27:13,990 --> 00:27:15,710 Yeah. 517 00:27:15,710 --> 00:27:18,940 Và về cơ bản, bạn có thể xem hành vi này trước đây, một cộng với 1, 518 00:27:18,940 --> 00:27:22,190 là một lớp con của hành vi này, nơi mảng ngắn nhất là chỉ số 519 00:27:22,190 --> 00:27:25,410 1, mà là một mảng một phần tử. 520 00:27:25,410 --> 00:27:27,740 Tôi chỉ nói được tất cả các vector thời gian thay vì mảng, 521 00:27:27,740 --> 00:27:30,290 bởi vì đó là những gì r tài liệu thường làm. 522 00:27:30,290 --> 00:27:33,070 Đây là một thói quen ăn sâu c. 523 00:27:33,070 --> 00:27:37,590 >> OK, và vì vậy bây giờ chúng ta có mảng này. 524 00:27:37,590 --> 00:27:38,830 Vì vậy, chúng ta có mảng này, c. 525 00:27:38,830 --> 00:27:41,380 Chúng tôi có thể nhận được bản tóm tắt thống kê về c, tóm tắt c. 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 Và đó là tốt đẹp. 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 Vì vậy, bây giờ chúng ta hãy làm một số thứ ma trận. 530 00:27:52,670 --> 00:27:56,160 Hãy nói rằng m là một ma trận. 531 00:27:56,160 --> 00:27:57,780 Hãy làm cho nó một ba ba một. 532 00:27:57,780 --> 00:28:01,630 Vì vậy nrows bằng 3, và ncols bằng 3. 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 Và đối với dữ liệu cho phép của do-- vì vậy những gì Bạn nghĩ điều này sẽ làm gì? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> Phải, đó là một trong những tiếp theo. 537 00:28:16,580 --> 00:28:17,970 Đó là nrow và ncolumn. 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 Vì vậy, những gì tôi đã thực hiện Tôi đã là tuyên bố một ba ba ma trận 540 00:28:24,580 --> 00:28:26,950 và tôi đã vượt qua một mảng chín phần tử. 541 00:28:26,950 --> 00:28:30,530 Vì vậy, logarit của tất cả các các yếu tố một đến chín. 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 Và tất cả những giá trị điền lên xin lỗi array--? 544 00:28:37,285 --> 00:28:38,660 Đung Đó là những cơ sở 10 bản ghi? 545 00:28:38,660 --> 00:28:41,284 CONNER HARRIS: Không, log là logarit tự nhiên, vì vậy cơ số e. 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 Vâng, nếu bạn muốn cơ sở 10 log, tôi nghĩ rằng bạn phải 548 00:28:47,010 --> 00:28:51,620 để đăng nhập bất cứ điều gì, chia log 10. 549 00:28:51,620 --> 00:28:56,750 Và do đó, các dữ liệu của [Không nghe thấy] chỉ lấp đầy mảng, vì vậy trên xuống dưới, 550 00:28:56,750 --> 00:28:59,490 sau đó trái sang phải. 551 00:28:59,490 --> 00:29:06,890 Và nếu bạn muốn làm một số khác mảng, chúng ta hãy nói n là ma trận. 552 00:29:06,890 --> 00:29:10,317 Hãy làm, tôi không biết, 2-13. 553 00:29:10,317 --> 00:29:11,900 Hoặc tôi sẽ làm điều gì đó thú vị hơn. 554 00:29:11,900 --> 00:29:13,770 Tôi sẽ làm 2-4. 555 00:29:13,770 --> 00:29:15,780 nrow bằng với, hãy nói, 3. 556 00:29:15,780 --> 00:29:18,992 ncol bằng 4. 557 00:29:18,992 --> 00:29:20,360 n. 558 00:29:20,360 --> 00:29:22,090 Vì vậy, chúng tôi đã có này. 559 00:29:22,090 --> 00:29:26,130 >> Và bây giờ nếu chúng ta muốn nhân này, chúng tôi sẽ làm lần n trăm phần trăm, 560 00:29:26,130 --> 00:29:27,680 bởi vì đó là n. 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 Và chúng tôi có các sản phẩm ma trận. 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 Bởi họ cách, bạn có thấy như thế nào khi tôi tuyên bố n, 2-4 565 00:29:37,810 --> 00:29:43,570 vector đã đạp xe đến nó lấp đầy tất cả các n? 566 00:29:43,570 --> 00:29:45,710 Nếu bạn muốn chụp phân hủy eigenvalue, 567 00:29:45,710 --> 00:29:46,960 đây là một cái gì đó chúng ta có thể làm rất dễ dàng. 568 00:29:46,960 --> 00:29:47,709 Chúng tôi có thể làm eigen n. 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 Và do đó, đây là lần đầu tiên của chúng tôi gặp phải với một danh sách. 571 00:29:54,600 --> 00:29:57,000 >> Vì vậy, n eigen là một danh sách với hai phím. 572 00:29:57,000 --> 00:29:58,430 Giá trị, đó là mảng này đây. 573 00:29:58,430 --> 00:30:01,030 Và vectơ, đó là mảng này đây. 574 00:30:01,030 --> 00:30:08,240 Vì vậy, nếu bạn muốn trích xuất, nói, cột thứ ba này 575 00:30:08,240 --> 00:30:13,080 từ các vector riêng ma trận, bởi vì các vector riêng là vectơ cột. 576 00:30:13,080 --> 00:30:24,400 Vì vậy, chúng ta có thể làm eigen vec dấu n đô la vectơ, dấu phẩy 3, trong [không nghe được]. 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 Là, như bạn có thể mong đợi. 580 00:30:34,100 --> 00:30:39,210 >> Sau đó, nói n lần lần trăm vec. 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 Vì vậy, kết quả ở đây chắc chắn trông giống như nếu chúng ta lấy eigenvalue thứ ba ở đây, 583 00:30:48,320 --> 00:30:50,390 tương ứng với các vector riêng thứ ba. 584 00:30:50,390 --> 00:30:53,190 Nó chỉ nhân tất cả mọi thứ trong eigenvector này, thành phần khôn ngoan, 585 00:30:53,190 --> 00:30:53,990 bởi eigenvalue. 586 00:30:53,990 --> 00:30:57,760 Và đó là những gì chúng ta mong đợi, bởi vì đó là những gì giá trị riêng là. 587 00:30:57,760 --> 00:31:00,890 Có ai ở đây không lấy đại số tuyến tính? 588 00:31:00,890 --> 00:31:02,530 Một vài người, OK. 589 00:31:02,530 --> 00:31:04,030 Chỉ cần bật bộ não của bạn ra cho một chút. 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 Và quả thực nếu chúng ta lấy eigen n đồng đô la giá trị dấu hiệu 3 lần vec, 592 00:31:20,720 --> 00:31:21,810 cũng có được điều tương tự. 593 00:31:21,810 --> 00:31:24,726 Nó định dạng khác nhau như là một hàng vector thay vì một vector cột, 594 00:31:24,726 --> 00:31:25,640 nhưng vấn đề lớn. 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 Và do đó, những cơ bản là đẹp những điều mà chúng ta có thể làm gì với ma trận, 597 00:31:35,170 --> 00:31:36,489 danh sách chứng minh. 598 00:31:36,489 --> 00:31:39,030 Tôi phải chứng minh đẹp điều về chức năng là tốt. 599 00:31:39,030 --> 00:31:41,750 >> Vì vậy, hãy say-- [Không nghe thấy] chức năng, cuộc gọi cho phép của 600 00:31:41,750 --> 00:31:51,960 nó func thống chống n n squared-- trên thực tế, đó là không thực sự tốt nhất. 601 00:31:51,960 --> 00:31:55,632 a, b, a bình phương cộng với b. 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 Vì vậy, một điều về chức năng, một lần nữa, là họ 604 00:32:00,380 --> 00:32:01,963 không cần phải báo cáo lợi nhuận rõ ràng. 605 00:32:01,963 --> 00:32:04,250 Vì vậy, bạn có thể just-- sự Tuyên bố cuối cùng được đánh giá 606 00:32:04,250 --> 00:32:07,502 sẽ được tuyên bố trở lại, hoặc giá trị trả về. 607 00:32:07,502 --> 00:32:10,460 Vì vậy, trong trường hợp này, chúng ta chỉ đánh giá một tuyên bố, một cộng với bình phương b. 608 00:32:10,460 --> 00:32:12,043 Đó sẽ là sự trở về giá trị mặc định. 609 00:32:12,043 --> 00:32:14,530 Nó không bao giờ đau để đưa vào giá trị trả lại một cách rõ ràng, 610 00:32:14,530 --> 00:32:16,880 đặc biệt là nếu bạn đang đối phó với một chức năng logic rất phức tạp 611 00:32:16,880 --> 00:32:17,380 Dòng chảy. 612 00:32:17,380 --> 00:32:18,450 Nhưng bạn không cần đến chúng. 613 00:32:18,450 --> 00:32:24,890 Vì vậy, bây giờ chúng tôi có thể làm func 5, 1, và này về cơ bản là những gì bạn mong muốn. 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 Cái gì khác chúng ta có thể làm, chúng tôi thực sự có thể làm func b 616 00:32:31,270 --> 00:32:33,260 bằng 1, một bằng 5. 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 Vì vậy, nếu chúng ta xác định số lượng ở đây, mà lập luận đi để mà tranh luận 619 00:32:40,770 --> 00:32:44,680 trong chức năng, chúng ta có thể lật xung quanh những giá trị này bất cứ nơi nào chúng ta muốn. 620 00:32:44,680 --> 00:32:48,405 >> Đung Có một lý do để viết nó ra với các b 621 00:32:48,405 --> 00:32:52,404 bằng như trái ngược với chỉ sử dụng những con số và các dấu phẩy? 622 00:32:52,404 --> 00:32:54,820 CONNER HARRIS: Yeah, thường làm điều này nếu bạn có chức năng 623 00:32:54,820 --> 00:32:58,540 với rất nhiều tranh cãi. 624 00:32:58,540 --> 00:33:00,690 Điều đó thường có thể được như thế lá cờ mà bạn muốn chỉ 625 00:33:00,690 --> 00:33:03,130 muốn sử dụng trong những dịp hiếm hoi. 626 00:33:03,130 --> 00:33:06,740 Và cách này bạn có thể only-- bạn có thể tham khảo những lập luận cụ thể 627 00:33:06,740 --> 00:33:09,110 mà bạn muốn sử dụng giá trị mặc định không cho, 628 00:33:09,110 --> 00:33:14,470 và bạn không cần phải viết ra một bó cờ bằng giả sau khi họ. 629 00:33:14,470 --> 00:33:19,710 Hoặc tôi có thể viết này một lần nữa với một giá trị mặc định như b = 2. 630 00:33:19,710 --> 00:33:26,289 Và sau đó tôi có thể làm f func, Tôi sẽ làm 4, 1 thời gian này. 631 00:33:26,289 --> 00:33:28,580 Và 17, đó là 4 phương cộng với 1, như bạn mong đợi. 632 00:33:28,580 --> 00:33:34,290 >> Nhưng tôi cũng có thể chỉ gọi này với func 4, 633 00:33:34,290 --> 00:33:36,970 và tôi sẽ nhận được 18, vì Tôi không chỉ định b. 634 00:33:36,970 --> 00:33:38,550 Vì vậy, b được các giá trị mặc định của 2. 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> OK, vì vậy bây giờ nếu bạn sau cùng với các bản demo, 637 00:33:47,200 --> 00:33:51,010 gõ dòng này tại lệnh của bạn nhắc và xem những gì đi lên. 638 00:33:51,010 --> 00:33:52,090 Trên thực tế, không làm điều đó. 639 00:33:52,090 --> 00:33:52,590 Loại này. 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 Bạn sẽ nhận được một cái gì đó như thế này. 642 00:34:01,000 --> 00:34:04,780 Vì vậy mtcars được tích hợp sẵn trong dữ liệu thiết cho cuộc biểu tình này 643 00:34:04,780 --> 00:34:13,550 mục đích mà đến with-- mà đến tại theo mặc định với phân phối r của bạn. 644 00:34:13,550 --> 00:34:19,211 Đây là một tập hợp các số liệu thống kê từ một vấn đề năm 1974 của tạp chí Motor Trend 645 00:34:19,211 --> 00:34:20,710 trên một số mẫu xe khác nhau. 646 00:34:20,710 --> 00:34:28,270 >> Vì vậy, có dặm mỗi gallon, cylinders-- Tôi quên những gì disp is-- mã lực. 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 Có lẽ. 649 00:34:32,420 --> 00:34:36,920 Nếu bạn chỉ cần chiếc xe Google MT, sau đó một trong những kết quả đầu tiên 650 00:34:36,920 --> 00:34:38,730 sẽ được từ tài liệu chính thức r 651 00:34:38,730 --> 00:34:41,080 và nó sẽ giải thích tất cả các trường dữ liệu. 652 00:34:41,080 --> 00:34:47,020 Vì vậy, trọng lượng is-- wt là trọng lượng của chiếc xe trong tấn. 653 00:34:47,020 --> 00:34:48,880 Q giây là thời gian quý dặm. 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 Vì vậy, bây giờ chúng tôi có thể làm một số những điều thú vị về xe MT là một trường dữ liệu. 656 00:34:55,850 --> 00:35:01,640 >> Vì vậy, chúng ta có thể làm mọi thứ như tên hàng, xe mt. 657 00:35:01,640 --> 00:35:05,490 Và đây là một danh sách của tất cả các hàng trong tập dữ liệu đó là tên của chiếc xe. 658 00:35:05,490 --> 00:35:10,780 Chúng tôi có thể làm colnames, mt xe này. 659 00:35:10,780 --> 00:35:15,500 Nếu bạn làm xe mt, chỉ số tiểu số, giống như 2. 660 00:35:15,500 --> 00:35:18,177 chúng tôi nhận được cột thứ hai trong số này, đó sẽ là hình trụ. 661 00:35:18,177 --> 00:35:19,370 >> Đung bạn đã làm gì? 662 00:35:19,370 --> 00:35:21,570 >> CONNER HARRIS: Tôi đánh máy mt ô tô, khung e, 663 00:35:21,570 --> 00:35:24,180 đó đã cho tôi thứ hai cột ra khỏi xe tấn. 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 Hoặc nếu chúng ta muốn có một hàng, tôi có thể loại mtcars dấu phẩy 2, ví dụ. 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 Khác vòng 2 dấu phẩy, như thế. 668 00:35:46,390 --> 00:35:48,880 Và rằng đi trong hàng của bạn. 669 00:35:48,880 --> 00:35:54,680 Điều này ở đây chỉ mang lại cho bạn một cột, nhưng cột như là một vector. 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 Tôi chỉ nhận ra bây giờ tôi quên để chứng minh 672 00:36:06,425 --> 00:36:09,150 một số điều thú vị về vectơ mà bạn có thể làm với các chỉ số. 673 00:36:09,150 --> 00:36:10,480 Vì vậy, hãy để tôi làm điều đó ngay bây giờ. 674 00:36:10,480 --> 00:36:17,130 Vì vậy, chúng ta hãy làm c gets-- đặt này trên pause-- 2 lần 1-10. 675 00:36:17,130 --> 00:36:21,360 Vì vậy, c chỉ là có được các vector 2 đến 20. 676 00:36:21,360 --> 00:36:24,640 Tôi có thể có các yếu tố như thế này, c2. 677 00:36:24,640 --> 00:36:30,942 Tôi có thể vượt qua trong một vector như thế này, c-- cho tôi 678 00:36:30,942 --> 00:36:34,470 sử dụng tên khác so với c, như vec c. 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 Về cơ bản, tôi đang làm này, do đó bạn không nhận được 681 00:36:39,340 --> 00:36:45,010 nhầm lẫn giữa c như là một chức năng xây dựng vector, 682 00:36:45,010 --> 00:36:48,800 và sau đó c là một tên biến. 683 00:36:48,800 --> 00:36:53,120 Ngoặc Vec c 4, 5, 7. 684 00:36:53,120 --> 00:36:56,540 Điều này sẽ làm cho tôi ra thứ tư, thứ năm, và bảy yếu tố của mảng. 685 00:36:56,540 --> 00:37:01,740 Tôi có thể làm vec, đặt trong một âm chỉ số, như tiêu cực 4. 686 00:37:01,740 --> 00:37:06,500 Điều đó sẽ giúp tôi ra khỏi đây với yếu tố thứ tư loại bỏ. 687 00:37:06,500 --> 00:37:10,140 Sau đó, nếu tôi muốn làm lát, Tôi có thể làm vec 2 thông qua 6. 688 00:37:10,140 --> 00:37:15,480 2 ruột 6 chỉ khác là vector, mà là 2, 3, 4, 5, 6. 689 00:37:15,480 --> 00:37:18,230 Phun ra rằng. 690 00:37:18,230 --> 00:37:20,770 >> Vì vậy, dù sao đi nữa, trở lại xe mt. 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 Vì vậy, chúng ta hãy làm một số hồi quy. 693 00:37:28,450 --> 00:37:34,240 Hãy nói rằng mô hình gets-- hãy tuyến tính regress-- Tôi không biết. 694 00:37:34,240 --> 00:37:41,780 Đầu tiên chúng ta hãy làm đính kèm mtcars, tất nhiên. 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 Vì vậy, [nghe được] mô hình lm, hãy thoái dặm mỗi gallon vào cân nặng dấu ngã. 697 00:38:00,010 --> 00:38:03,300 Và sau đó khung dữ liệu là mtcars. 698 00:38:03,300 --> 00:38:06,830 Vì vậy, mô hình tóm tắt. 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> OK, vì vậy điều này có vẻ hơi phức tạp. 701 00:38:15,595 --> 00:38:19,380 Nhưng về cơ bản, nhìn thấy là nếu chúng tôi cố gắng thể hiện dặm cho mỗi gallon 702 00:38:19,380 --> 00:38:23,970 như là một hàm tuyến tính của trọng lượng, sau đó chúng tôi có dòng này ở đây, 703 00:38:23,970 --> 00:38:28,730 mà chặn tại 37,28. 704 00:38:28,730 --> 00:38:33,830 37,28 sẽ là dặm lý thuyết mỗi gallon của một chiếc xe có trọng lượng bằng không. 705 00:38:33,830 --> 00:38:41,210 Và sau đó cho mỗi tấn bổ sung, bạn gõ khoảng năm dặm mỗi gallon 706 00:38:41,210 --> 00:38:42,440 tắt của đó. 707 00:38:42,440 --> 00:38:45,120 Cả hai hệ số bạn có thể thấy, sai số chuẩn đó. 708 00:38:45,120 --> 00:38:47,870 Và họ rất ý nghĩa thống kê. 709 00:38:47,870 --> 00:38:55,740 >> Vì vậy, chúng ta có thể rất chắc chắn để 1 e 10 đến âm 10. 710 00:38:55,740 --> 00:38:59,510 Vì vậy, 1 lần một cái gì đó để tiêu cực 10, rằng nếu bạn thực hiện một chiếc xe nặng hơn, 711 00:38:59,510 --> 00:39:01,440 nó sẽ có dặm tồi tệ hơn cho mỗi gallon. 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 Hoặc chúng ta có thể kiểm tra một số mô hình khác. 714 00:39:07,250 --> 00:39:09,230 Giống như thay vì thoái này trên trọng lượng, 715 00:39:09,230 --> 00:39:12,600 hãy thoái nó vào nhật ký của trọng lượng, bởi vì có lẽ các cân hiệu quả 716 00:39:12,600 --> 00:39:15,690 trên quãng đường đi là bằng cách nào đó không tuyến tính. 717 00:39:15,690 --> 00:39:18,540 >> Điều này đã cho chúng tôi một r bình phương của 0,7528. 718 00:39:18,540 --> 00:39:19,610 Vì vậy, hãy cố gắng này. 719 00:39:19,610 --> 00:39:21,485 Lần này chúng ta hãy làm một biến khác nhau, quá. 720 00:39:21,485 --> 00:39:22,500 Model2. 721 00:39:22,500 --> 00:39:24,800 Vì vậy, tóm tắt, model2. 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 Được rồi, vậy một lần nữa, chúng tôi có dòng này phù hợp tốt nhất của chúng tôi ở đây. 724 00:39:31,390 --> 00:39:36,160 Và điều này time-- này là nói, về cơ bản là mỗi khi bạn 725 00:39:36,160 --> 00:39:38,090 tăng trọng lượng của một chiếc xe do một yếu tố của e 726 00:39:38,090 --> 00:39:40,580 bạn bị mất này nhiều dặm mỗi gallon. 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> Và vì vậy thời gian này tiêu chuẩn còn lại của chúng tôi lỗi it-- đó không quan trọng, thực sự. 729 00:39:50,326 --> 00:39:53,540 Các lỗi tiêu chuẩn còn lại là về cơ bản chỉ là sai số chuẩn 730 00:39:53,540 --> 00:39:57,760 rằng bạn đã để lại sau khi bạn lấy đi các đường xu hướng. 731 00:39:57,760 --> 00:40:02,805 Và r bình phương của chúng tôi ở đây là 0,81, đó là một chút tốt hơn so với những gì 732 00:40:02,805 --> 00:40:07,640 chúng ta có trước, 0,52. 733 00:40:07,640 --> 00:40:09,750 >> Và vì vậy bây giờ chúng ta hãy thêm một hạn để hồi quy này. 734 00:40:09,750 --> 00:40:13,020 Vì vậy, hãy thoái dặm cho mỗi gallon cả trên nhật ký của các trọng 735 00:40:13,020 --> 00:40:21,130 và, chúng ta hãy làm, q dặm, Hiện phần tư dặm. 736 00:40:21,130 --> 00:40:26,190 OK, nó phải có the-- tất cả các quyền, 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 Actually-- xin lỗi, những gì? 740 00:40:35,000 --> 00:40:37,000 Hãy để tôi gọi cái gì đó này khác ngoài model2. 741 00:40:37,000 --> 00:40:38,000 Hãy để tôi gọi model3 này. 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 Và bây giờ chúng ta có thể làm bản tóm tắt model3. 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 Và như vậy một lần nữa, đây là cơ bản những gì bạn có thể mong đợi. 746 00:40:49,100 --> 00:40:51,750 Bạn có chặn tích cực. 747 00:40:51,750 --> 00:40:54,550 Các hiệu quả ngày càng tăng trọng lượng là tiêu cực. 748 00:40:54,550 --> 00:40:58,490 Và hiệu quả tăng thời gian tư dặm 749 00:40:58,490 --> 00:41:02,420 là tích cực, nhưng dù ít hơn so với trọng lượng. 750 00:41:02,420 --> 00:41:06,010 Bây giờ trực giác, bạn có thể làm cho tinh thần của này bằng cách nói rằng suy nghĩ về những chiếc xe thể thao. 751 00:41:06,010 --> 00:41:08,950 Có một khả năng tăng tốc rất nhanh, rất ngắn thời gian quý dặm. 752 00:41:08,950 --> 00:41:13,729 Họ cũng đang sử dụng gas hơn, trong khi chiếc xe hợp lý hơn sẽ 753 00:41:13,729 --> 00:41:16,020 có khả năng tăng tốc chậm hơn, lần phần tư dặm cao, 754 00:41:16,020 --> 00:41:20,890 và sử dụng khí đốt ít ,, vậy dặm cao hơn cho mỗi gallon. 755 00:41:20,890 --> 00:41:21,390 Thật tuyệt. 756 00:41:21,390 --> 00:41:23,431 Và vì vậy bây giờ nó là thời gian để vẽ một cái gì đó như thế này. 757 00:41:23,431 --> 00:41:27,810 Vì vậy, hãy do-- do đó, trần xương chúng ta có thể làm plots-- 758 00:41:27,810 --> 00:41:35,280 bởi vì tôi đã gắn khung dữ liệu này before-- chúng ta chỉ có thể làm lô, mpg wt. 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 Thực hiện điều này lớn hơn một chút. 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 Có, chúng tôi về cơ bản có một biểu đồ phân tán, nhưng những điểm 763 00:41:57,350 --> 00:41:58,690 là loại khó để nhìn thấy trên này. 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> Tôi không nhớ ngay những gì Cú pháp là cho thay đổi cốt truyện. 766 00:42:10,900 --> 00:42:14,100 Vì vậy, tôi đoán đây sẽ là một thời điểm tốt để đưa lên, 767 00:42:14,100 --> 00:42:18,000 có một sự trợ giúp dựng sẵn rất đẹp tính năng, giúp đỡ báo giá hoạt động tên. 768 00:42:18,000 --> 00:42:21,690 Chúng tôi sẽ mang đến cơ bản bất cứ điều gì bạn muốn. 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 Tôi nghĩ rằng tôi thực sự sẽ làm điều này loại bằng p cho điểm lô. 771 00:42:32,730 --> 00:42:34,369 Đã làm điều đó thay đổi bất cứ điều gì? 772 00:42:34,369 --> 00:42:35,160 Và không có, không thực sự. 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 Được rồi. 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> Đối với một số lý do, khi tôi đã làm điều này trên máy tính của riêng mình trong khi trước đây, 777 00:42:49,580 --> 00:42:52,080 tất cả các điểm phân tán là rõ ràng hơn nhiều. 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 Nhưng dù sao, là những loại phân tán của thể nhìn thấy? 780 00:43:13,970 --> 00:43:15,124 Có ai ở đó. 781 00:43:15,124 --> 00:43:16,165 Một vài đó, một vài có. 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 Bạn có thể sắp xếp gặp họ, phải không? 784 00:43:21,185 --> 00:43:24,310 Vì vậy, nếu chúng ta muốn thêm một dòng phù hợp nhất để âm mưu này ở đây, đó là một chút trần 785 00:43:24,310 --> 00:43:29,290 bones-- cho tôi làm cho nó một chút đẹp hơn. 786 00:43:29,290 --> 00:43:38,075 Chính bằng và trọng lượng. 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 Dặm mỗi gallon. 789 00:43:49,740 --> 00:43:53,570 Một lần nữa, bạn có thể thấy hữu ích đối số tùy chọn ở đây với cũng 790 00:43:53,570 --> 00:43:58,090 không phải đặt mọi thứ trong một thứ tự nhất định với đối số bàn phím 791 00:43:58,090 --> 00:44:01,600 khi bạn có âm mưu, bởi vì những mất rất nhiều tranh cãi. 792 00:44:01,600 --> 00:44:07,490 >> Xlab bằng trọng lượng, trọng lượng, tấn. 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 Được rồi. 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 OK, yeah, thiết bị này đang được một chút khó chịu. 797 00:44:21,480 --> 00:44:30,160 Nhưng bạn có thể nhìn thấy loại lên ở đó, có một tiêu đề đồ thị trên mặt. 798 00:44:30,160 --> 00:44:35,260 Trên đây there's-- ở phía dưới ở đây có những trục nhãn. 799 00:44:35,260 --> 00:44:37,700 Tôi không nhớ ngay những gì các lệnh ars-- 800 00:44:37,700 --> 00:44:41,000 những gì các chức năng là để tăng kích thước của những nhãn và tiêu đề, 801 00:44:41,000 --> 00:44:43,110 nhưng họ đang có. 802 00:44:43,110 --> 00:44:46,625 >> Và như vậy, nếu chúng ta muốn thêm dòng phù hợp nhất, 803 00:44:46,625 --> 00:44:49,250 chúng ta có thể làm điều gì đó like-- tôi có cú pháp viết lên đây. 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 Vì vậy, hãy nhớ chúng ta chỉ cần thêm mô hình là mpg, trọng lượng, mtcars. 806 00:45:11,130 --> 00:45:16,470 Và vì vậy nếu tôi muốn thêm một sự phù hợp tốt nhất dòng, tôi có thể làm một mô hình dòng b. 807 00:45:16,470 --> 00:45:18,556 Và sự bùng nổ, chúng tôi có một dòng phù hợp nhất. 808 00:45:18,556 --> 00:45:19,970 Đó là loại khó để nhìn thấy một lần nữa. 809 00:45:19,970 --> 00:45:22,178 Tôi khá tiếc về khó khăn công nghệ. 810 00:45:22,178 --> 00:45:25,230 Nhưng nó chạy về cơ bản trên trái sang góc dưới bên phải. 811 00:45:25,230 --> 00:45:27,550 >> Và nếu quy mô là lớn hơn, bạn có thể nhìn thấy 812 00:45:27,550 --> 00:45:31,260 mà đánh chặn là những gì bạn có thể tìm thấy từ các số liệu thống kê tóm tắt 813 00:45:31,260 --> 00:45:34,790 nếu bạn gõ mô hình tóm tắt. 814 00:45:34,790 --> 00:45:40,130 OK, vì vậy tôi hy vọng tất cả mọi người được một cái gì đó của một ý thức về những gì 815 00:45:40,130 --> 00:45:42,030 R là, những gì nó có tốt cho. 816 00:45:42,030 --> 00:45:45,520 Bạn có thể làm cho mảnh đất xa đẹp hơn này vào thời gian riêng của bạn, nếu bạn thích. 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> Vì vậy, các giao diện chức năng nước ngoài. 819 00:45:53,950 --> 00:46:00,330 Đây là điều mà không phải là thường bảo hiểm trong các bài giảng nhập môn 820 00:46:00,330 --> 00:46:03,560 hoặc bất cứ điều gì giới thiệu cho r. 821 00:46:03,560 --> 00:46:05,584 Nó không có khả năng bạn sẽ cần đến nó. 822 00:46:05,584 --> 00:46:08,000 Tuy nhiên, tôi thấy nó hữu ích trong các dự án riêng của tôi trong quá khứ. 823 00:46:08,000 --> 00:46:10,984 Và không có tốt hướng dẫn cho nó trực tuyến. 824 00:46:10,984 --> 00:46:12,900 Vì vậy, tôi chỉ cần đi tới vội vàng tất cả các bạn thông qua này 825 00:46:12,900 --> 00:46:16,606 và sau đó bạn có thể tự do rời khỏi. 826 00:46:16,606 --> 00:46:18,480 Và do đó, các nước ngoài giao diện chức năng là gì 827 00:46:18,480 --> 00:46:23,130 bạn có thể sử dụng để gọi ra để xem chức năng với một R. Bên trong, 828 00:46:23,130 --> 00:46:29,850 R được xây dựng trên số học C. R chỉ là 64-bit điểm số học của C, 829 00:46:29,850 --> 00:46:32,852 đó là kiểu double [không nghe được]. 830 00:46:32,852 --> 00:46:35,060 Và bạn có thể muốn làm này cho một loạt các lý do. 831 00:46:35,060 --> 00:46:39,250 Đối với một, R được giải thích, đó là không được biên dịch xuống mã máy. 832 00:46:39,250 --> 00:46:42,170 Vì vậy, bạn có thể viết lại của bạn vòng bên trong C và sau đó nhận được 833 00:46:42,170 --> 00:46:45,920 lợi thế của việc sử dụng R. Like nó là nhiều hơn một chút thuận tiện hơn C. 834 00:46:45,920 --> 00:46:48,899 Nó có đồ họa tốt hơn cơ sở vật chất và không có điều gì. 835 00:46:48,899 --> 00:46:51,690 Và trong khi vẫn có thể có được tốc độ đầu ra của các vòng trong, 836 00:46:51,690 --> 00:46:53,650 đó là nơi mà bạn thực sự cần nó. 837 00:46:53,650 --> 00:46:56,330 >> Dùng lại các thư viện C hiện có, đó cũng là quan trọng. 838 00:46:56,330 --> 00:47:00,320 Nếu bạn có một số thư viện C cho như thế, Tôi không biết, biến đổi Fourier, 839 00:47:00,320 --> 00:47:05,190 hoặc một số rất Thái cổ thống kê thủ tục sử dụng 840 00:47:05,190 --> 00:47:09,470 trong vật lý học thiên năng lượng cao hoặc một cái gì đó, tôi không biết. 841 00:47:09,470 --> 00:47:13,058 Vật lý học thiên năng lượng cao thậm chí không một suy nghĩ, tôi nghĩ. 842 00:47:13,058 --> 00:47:16,480 Nhưng bạn có thể làm điều đó thay vì có để viết một cổng R bản xứ của họ. 843 00:47:16,480 --> 00:47:22,725 Và trên the-- và một lần nữa, giống như nếu bạn tìm trong hầu hết các thư viện mặc định của R, 844 00:47:22,725 --> 00:47:25,600 vào các ruột, phần bên trong là sẽ sử dụng các chức năng nước ngoài 845 00:47:25,600 --> 00:47:26,724 giao diện rất rộng rãi. 846 00:47:26,724 --> 00:47:31,630 Họ sẽ có những thứ như Fourier biến hoặc máy tính tương quan 847 00:47:31,630 --> 00:47:34,890 hệ số được viết bằng C, và họ sẽ chỉ có R hàm bao quanh chúng. 848 00:47:34,890 --> 00:47:38,230 Giao diện là một chút khó khăn. tôi nghĩ 849 00:47:38,230 --> 00:47:43,750 khó khăn của nó được phóng đại trong một rất nhiều các hướng dẫn, bạn sẽ tìm thấy. 850 00:47:43,750 --> 00:47:46,200 Nhưng tuy nhiên, nó là một chút bối rối. 851 00:47:46,200 --> 00:47:48,650 Và tôi đã không thể tìm một hướng dẫn tốt cho nó, 852 00:47:48,650 --> 00:47:51,980 vì vậy đây là nó ngay bây giờ. 853 00:47:51,980 --> 00:47:55,360 Một lần nữa, toàn bộ phân khúc này là nhiều hơn để tham khảo sau này. 854 00:47:55,360 --> 00:47:57,687 Đừng lo lắng về việc sao chép tất cả mọi thứ xuống ngay bây giờ. 855 00:47:57,687 --> 00:48:00,020 Vì vậy, các hướng dẫn sau đây là cho các hệ thống Unix-like, 856 00:48:00,020 --> 00:48:05,150 Linux, BSD, OS X. Tôi không biết cách này hoạt động trên Windows, 857 00:48:05,150 --> 00:48:08,280 nhưng xin vui lòng chỉ không làm bạn dự án cuối cùng trên Windows. 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 Bạn thực sự không muốn. 860 00:48:12,460 --> 00:48:14,770 Unix là bộ tốt hơn nhiều up cho lập trình bình thường. 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 Vì vậy, về cơ bản nước ngoài chức năng giao diện. 863 00:48:21,390 --> 00:48:24,420 Nếu bạn muốn viết một C chức năng để sử dụng với R, 864 00:48:24,420 --> 00:48:27,250 nó có để có tất cả các đối số là con trỏ. 865 00:48:27,250 --> 00:48:30,666 >> Vì vậy, đối với các giá trị duy nhất, điều này có nghĩa là nó chỉ ra giá trị. 866 00:48:30,666 --> 00:48:33,040 Đối với mảng, đây là một con trỏ đến các yếu tố đầu tiên, 867 00:48:33,040 --> 00:48:36,750 là những gì tên mảng thực sự có ý nghĩa. 868 00:48:36,750 --> 00:48:40,140 Một lần nữa, đây là một cái gì đó bạn nên có khá hoàn toàn xuống sau khi p thiết lập năm. 869 00:48:40,140 --> 00:48:43,334 Tên mảng là chỉ con trỏ đến các yếu tố đầu tiên, 870 00:48:43,334 --> 00:48:44,750 Các loại nổi-điểm là đôi. 871 00:48:44,750 --> 00:48:47,310 Và chức năng của bạn phải trả về void. 872 00:48:47,310 --> 00:48:50,810 Cách duy nhất mà nó có thể thực sự cho R gì đã xảy ra 873 00:48:50,810 --> 00:48:54,410 là bằng cách thay đổi các bộ nhớ mà R đã cho cho nó thông qua các chức năng nước ngoài 874 00:48:54,410 --> 00:48:54,910 giao diện. 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> Vì vậy, tôi đã viết này ví dụ ở đây, đây là 877 00:49:00,127 --> 00:49:02,460 một chức năng mà tính toán sử dụng dot sản phẩm của hai vectơ. 878 00:49:02,460 --> 00:49:05,060 Phải mất hai đối số, vec1, vec2, đó là các vector tự, 879 00:49:05,060 --> 00:49:06,934 và sau đó n, mà là một chiều dài, bởi vì một lần nữa, 880 00:49:06,934 --> 00:49:12,630 R đã xây dựng trong [không nghe được] để tìm hiểu độ dài của vectơ, nhưng C không. 881 00:49:12,630 --> 00:49:16,182 Trong C, vectơ là một tùy ý đoạn phân cách của bộ nhớ. 882 00:49:16,182 --> 00:49:17,890 Vì vậy, cách bạn có thể tính toán dấu chấm sản phẩm 883 00:49:17,890 --> 00:49:23,470 được chỉ định này ra tham số không và sau đó lặp qua 884 00:49:23,470 --> 00:49:28,760 từ 1 đến n sao, bởi vì n là một con trỏ đến chiều dài, 885 00:49:28,760 --> 00:49:32,929 chỉ cần thêm một cái gì đó để này ra tham số. 886 00:49:32,929 --> 00:49:34,970 Và nó có thể được thực hành tốt nếu bạn đang đi làm 887 00:49:34,970 --> 00:49:37,270 này để viết hai chức năng riêng biệt C. 888 00:49:37,270 --> 00:49:41,970 Một trong số họ has-- một trong số họ chỉ có các tham số và các loại 889 00:49:41,970 --> 00:49:43,970 rằng họ sẽ thường có trong C. 890 00:49:43,970 --> 00:49:47,780 >> Vì vậy, phải mất một mảng đối số là con trỏ. 891 00:49:47,780 --> 00:49:57,090 Nhưng lập luận duy nhất có giá trị như n, nó chỉ mất như giá trị của bản sao, 892 00:49:57,090 --> 00:49:57,917 mà không có con trỏ. 893 00:49:57,917 --> 00:49:59,750 Và sau đó nó không [Không nghe thấy] ra con trỏ. 894 00:49:59,750 --> 00:50:01,290 Và sau đó bạn có thể có một khác nhau, về cơ bản, 895 00:50:01,290 --> 00:50:03,623 chức năng bao bọc mà về cơ bản xử lý các yêu cầu 896 00:50:03,623 --> 00:50:07,740 các chức năng nước ngoài giao diện cho bạn. 897 00:50:07,740 --> 00:50:11,840 >> Cách bạn gọi này trong R là, một lần bạn có chức năng của bạn được viết bằng C, 898 00:50:11,840 --> 00:50:17,770 bạn gõ cmd shlib R, R thư viện chia sẻ lệnh, 899 00:50:17,770 --> 00:50:20,110 foo dot c, hoặc bất cứ điều gì Tên tập tin của bạn, 900 00:50:20,110 --> 00:50:23,020 và các hệ điều hành bao không có trong thiết bị đầu cuối R. 901 00:50:23,020 --> 00:50:25,200 Và điều này sẽ tạo ra một thư viện gọi là foo chấm như vậy. 902 00:50:25,200 --> 00:50:28,180 Và sau đó bạn có thể tải nó trong kịch bản của chúng tôi hoặc tương tác 903 00:50:28,180 --> 00:50:32,310 với lệnh dyn dot tải. 904 00:50:32,310 --> 00:50:35,720 Sau đó, có một chức năng trong R được gọi là chấm c. 905 00:50:35,720 --> 00:50:39,310 >> Này có lập luận rằng là đầu tiên tên của hàm trong C 906 00:50:39,310 --> 00:50:40,970 mà bạn muốn gọi. 907 00:50:40,970 --> 00:50:43,920 Và sau đó tất cả các thông số đến chức năng mà, 908 00:50:43,920 --> 00:50:45,420 họ phải theo đúng thứ tự. 909 00:50:45,420 --> 00:50:48,580 Bạn phải sử dụng các loại chức năng cưỡng chế như số nguyên, như 910 00:50:48,580 --> 00:50:52,050 đôi, như nhân vật, và là hợp lý. 911 00:50:52,050 --> 00:50:54,710 Và sau đó khi nó trả về danh sách, mà lại chỉ là 912 00:50:54,710 --> 00:50:57,550 một mảng liên kết của các tên tham số và các giá trị 913 00:50:57,550 --> 00:51:00,950 sau khi chức năng đã chạy. 914 00:51:00,950 --> 00:51:08,520 >> Vì vậy, trong trường hợp này, vì dot sản có đối số vec1, vec2, và int n, n ra. 915 00:51:08,520 --> 00:51:11,980 Để chấm c chúng ta phải chấm sản, tên của các chức năng 916 00:51:11,980 --> 00:51:16,250 chúng ta đang gọi điện thoại, vec1, vec2, kiểu ép buộc. 917 00:51:16,250 --> 00:51:20,060 Chiều dài của một trong hai vector, Tôi chỉ chọn vec1 tùy tiện. 918 00:51:20,060 --> 00:51:25,479 Nó sẽ mạnh mẽ hơn để nói s nguyên chiều dài min của vec1, chiều dài vec2. 919 00:51:25,479 --> 00:51:27,520 Sau đó chỉ cần như zero đôi, bởi vì chúng ta không thực sự 920 00:51:27,520 --> 00:51:29,644 quan tâm những gì diễn ra vào ra tham số bởi vì chúng tôi 921 00:51:29,644 --> 00:51:32,270 thiết lập nó để không anyway. 922 00:51:32,270 --> 00:51:37,560 >> Và sau đó kết quả sẽ là một mảng liên quan lớn về cơ bản 923 00:51:37,560 --> 00:51:42,090 vec1 là bất cứ điều gì, bất cứ điều gì là vec2. 924 00:51:42,090 --> 00:51:44,330 Nhưng chúng tôi quan tâm ra, vì vậy chúng tôi có thể nhận ra điều đó. 925 00:51:44,330 --> 00:51:47,780 Đây lại là một ví dụ rất đồ chơi của một giao diện chức năng nước ngoài. 926 00:51:47,780 --> 00:51:54,160 Nhưng nếu bạn phải tính toán dấu chấm sản phẩm của vectơ lớn trong vòng, 927 00:51:54,160 --> 00:51:56,960 hoặc nếu bạn phải làm cái gì khác trong vòng một, 928 00:51:56,960 --> 00:51:59,850 và bạn không muốn dựa vào R, mà không có một chút trên không 929 00:51:59,850 --> 00:52:02,830 xây dựng vào nó, điều này có thể có ích. 930 00:52:02,830 --> 00:52:05,870 >> Một lần nữa, đây không phải là thường một chủ đề giới thiệu đến R. 931 00:52:05,870 --> 00:52:08,571 Nó không phải rất tốt tài liệu. 932 00:52:08,571 --> 00:52:11,070 Tôi chỉ bao gồm nó vì Tôi tìm thấy nó hữu ích trong quá khứ. 933 00:52:11,070 --> 00:52:13,654 Thực hành như vậy, xấu. 934 00:52:13,654 --> 00:52:15,820 Tôi đã đề cập rằng có một cho vòng lặp trong hàm. 935 00:52:15,820 --> 00:52:21,150 Nói chung bạn không nên, trong ngôn ngữ, không sử dụng nó. 936 00:52:21,150 --> 00:52:26,100 Dựa vào cách R thực hiện lặp đi lặp lại nội bộ, nó có thể được làm chậm. 937 00:52:26,100 --> 00:52:28,540 Họ chỉ còn trông xấu xí. 938 00:52:28,540 --> 00:52:32,410 >> R xử lý vector rất độc đáo, vì vậy đôi khi bạn không cần phải sử dụng nó. 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 Sau đó, bạn có thể thường thay thế một vector thường 941 00:52:38,900 --> 00:52:42,490 với các chức năng này được gọi là cao chức năng đặt hàng, bản đồ, Giảm, 942 00:52:42,490 --> 00:52:44,404 Tìm, hoặc lọc. 943 00:52:44,404 --> 00:52:46,320 Tôi sẽ chỉ đưa ra một số ví dụ về những gì những làm. 944 00:52:46,320 --> 00:52:49,957 Bản đồ là một chức năng bậc cao vì phải mất một chức năng như một tham số. 945 00:52:49,957 --> 00:52:52,290 Vì vậy, bạn có thể cung cấp cho nó một chức năng, bạn có thể cho nó một mảng, 946 00:52:52,290 --> 00:52:54,640 và nó sẽ được áp dụng các chức năng để mọi phần tử của mảng 947 00:52:54,640 --> 00:52:55,681 và trả về mảng mới. 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 Giảm thiểu, về cơ bản bạn cung cấp cho nó một mảng, bạn cho nó 950 00:53:00,160 --> 00:53:02,930 một chức năng mà phải mất hai đối số. 951 00:53:02,930 --> 00:53:07,100 Nó sẽ áp dụng các chức năng đầu tiên, Đối số đầu tiên với một số giá trị khởi. 952 00:53:07,100 --> 00:53:09,440 Sau đó, để kết quả là trong lần thứ hai. 953 00:53:09,440 --> 00:53:12,590 Sau đó, để kết quả là ở một phần ba, sau đó đến kết quả đó trong thứ tư. 954 00:53:12,590 --> 00:53:14,870 Và sau đó quay trở lại khi nó được đến cùng. 955 00:53:14,870 --> 00:53:17,620 Vì vậy, ví dụ, nếu bạn muốn tính tổng của tất cả các yếu tố 956 00:53:17,620 --> 00:53:23,240 trong một mảng, hơn bạn có thể gọi là giảm với [không nghe được] giảm một sự bổ sung 957 00:53:23,240 --> 00:53:26,620 chức năng, như func a, b, trả về một cộng b. 958 00:53:26,620 --> 00:53:28,960 Và sau đó bắt đầu một giá trị 0. 959 00:53:28,960 --> 00:53:32,950 >> Và tất cả điều này, bạn có thể tìm thấy chúng được mô tả trong tài liệu hướng R, 960 00:53:32,950 --> 00:53:35,720 trong bất kỳ cuốn sách giáo khoa về lập trình chức năng. 961 00:53:35,720 --> 00:53:38,330 Ngoài ra còn có lớp này chức năng được gọi là áp dụng các chức năng, 962 00:53:38,330 --> 00:53:42,807 mà tôi don't-- họ một chút khó khăn để giải thích, 963 00:53:42,807 --> 00:53:45,640 nhưng nếu bạn nhìn vào [Không nghe thấy] đặt mà tôi đã trích dẫn ở đầu, 964 00:53:45,640 --> 00:53:48,615 ông giải thích cho họ khá tốt trong ruột thừa trên R lập trình. 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 Thêm về thực tiễn, phụ thêm vào vector. 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 Yeah? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 Tôi nghĩ rằng tôi nên đúng đó. 971 00:54:02,900 --> 00:54:07,450 Trong dòng đầu tiên, mũi tên vec, mũi tên mà không cần phải có. 972 00:54:07,450 --> 00:54:10,920 Bạn có thể gán cho một vector, một lần nữa, bằng cách lấy chiều dài của nó cộng với 1 973 00:54:10,920 --> 00:54:13,220 và gán một số giá trị cho rằng. 974 00:54:13,220 --> 00:54:18,970 Điều đó sẽ mở rộng các vector, hoặc bạn có thể làm equals vec c, newvalue vec. 975 00:54:18,970 --> 00:54:21,540 Một lần nữa, nếu bạn sử dụng C với một đối số là một vector, 976 00:54:21,540 --> 00:54:23,300 hệ thống phân cấp kết quả bị đốn ngã. 977 00:54:23,300 --> 00:54:27,160 Vì vậy, bạn sẽ chỉ nhận được một vector đó là mở rộng bằng 1. 978 00:54:27,160 --> 00:54:30,410 Không bao giờ làm điều này. 979 00:54:30,410 --> 00:54:33,330 >> Lý do tại sao bạn không nên làm điều này là điều này. 980 00:54:33,330 --> 00:54:37,430 Khi bạn phân bổ một vector, nó cung cấp cho nó một đoạn bộ nhớ nhất định. 981 00:54:37,430 --> 00:54:40,680 Nếu bạn tăng kích thước vector, nó phải phân bổ lại các vector 982 00:54:40,680 --> 00:54:43,820 ở một nơi khác. 983 00:54:43,820 --> 00:54:46,980 Và do đó, việc phân bổ lại khá tốn kém. 984 00:54:46,980 --> 00:54:50,530 Tôi sẽ không đi vào chi tiết như thế nào cấp phát bộ nhớ được thực hiện 985 00:54:50,530 --> 00:54:57,280 trên mức hệ điều hành, nhưng phải mất rất nhiều thời gian 986 00:54:57,280 --> 00:54:58,962 để tìm một đoạn mới của bộ nhớ. 987 00:54:58,962 --> 00:55:00,920 Và cũng có thể, nếu bạn tái cấp rất nhiều và rất nhiều 988 00:55:00,920 --> 00:55:03,500 của lớn dần khối, bạn kết thúc 989 00:55:03,500 --> 00:55:06,420 với một cái gì đó gọi là phân mảnh bộ nhớ, 990 00:55:06,420 --> 00:55:09,390 nơi bộ nhớ có sẵn chia thành nhiều khối nhỏ 991 00:55:09,390 --> 00:55:11,500 trong cấp phát bộ nhớ quan điểm. 992 00:55:11,500 --> 00:55:15,340 Và nó trở nên khó khăn hơn và khó hơn để tìm bộ nhớ cho những thứ khác. 993 00:55:15,340 --> 00:55:19,455 Vì vậy, thay vào đó, nếu bạn cần phải làm điều này, nếu bạn cần để phát triển một vector từ một đầu 994 00:55:19,455 --> 00:55:24,240 đến tiếp theo, thay vì phụ thêm để nó liên tục, bạn nên tiền phân bổ nó. 995 00:55:24,240 --> 00:55:29,310 Mũi tên Vec, độ dài vectơ tương đương 1.000, hoặc bất cứ điều gì. 996 00:55:29,310 --> 00:55:33,200 >> Và sau đó bạn chỉ có thể gán với các giá trị của một trong các vector 997 00:55:33,200 --> 00:55:36,000 một thời gian sau khi bạn đã phân bổ nó một lần. 998 00:55:36,000 --> 00:55:40,140 Tôi chạy vào điều này, một lần nữa, công việc mùa hè của tôi khi tôi đang viết NRA khác biệt 999 00:55:40,140 --> 00:55:42,120 phương trình giải quyết. 1000 00:55:42,120 --> 00:55:43,180 Không biểu tượng số. 1001 00:55:43,180 --> 00:55:49,290 Ý tưởng là khi bạn có một giá trị cho giải pháp của bạn, 1002 00:55:49,290 --> 00:55:51,240 bạn sử dụng để tính toán tiếp theo. 1003 00:55:51,240 --> 00:55:53,700 Vì vậy, tự nhiên tôi ngây thơ nghiêng là để nói OK, 1004 00:55:53,700 --> 00:55:56,930 vì vậy tôi sẽ bắt đầu với một vector đó là một giá trị đáng kể. 1005 00:55:56,930 --> 00:56:01,260 Tính từ đó các giá trị tiếp theo mà đi vào vector giải pháp của tôi, 1006 00:56:01,260 --> 00:56:02,630 và thêm rằng. 1007 00:56:02,630 --> 00:56:05,290 >> Tạo một cái gì đó khác, thêm đó. 1008 00:56:05,290 --> 00:56:08,120 Nó đã đi rất, rất chậm. 1009 00:56:08,120 --> 00:56:11,540 Và một khi tôi nhận ra điều này và tôi đã thay đổi hệ thống của tôi 1010 00:56:11,540 --> 00:56:16,020 từ phụ thêm vào vector này như 10.000 đến 100.000 lần, 1011 00:56:16,020 --> 00:56:18,910 chỉ trước phân bổ một vector và chỉ chạy với điều đó. 1012 00:56:18,910 --> 00:56:22,100 Tôi nhận được hơn 1.000 lần tốc độ lên. 1013 00:56:22,100 --> 00:56:26,280 Vì vậy, đây là một rất phổ biến bẫy cho lập trình R. 1014 00:56:26,280 --> 00:56:31,560 Nếu bạn cần phải xây dựng một vector từng mảnh, tiền phân bổ nó. 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> Một chuyến đi chung up-- này là cuối cùng của tôi slide, không worry-- là xử lý lỗi. 1017 00:56:40,240 --> 00:56:42,890 R, để được thẳng thắn, không thực sự làm điều này rất tốt. 1018 00:56:42,890 --> 00:56:45,010 Có rất nhiều vấn đề có thể nảy sinh. 1019 00:56:45,010 --> 00:56:48,360 Ví dụ, nếu bạn nhận được một mảng hoặc một vector ra của một hàm 1020 00:56:48,360 --> 00:56:52,377 mà bạn đang mong đợi một đơn giá trị đến từ, hoặc ngược lại, 1021 00:56:52,377 --> 00:56:55,460 và bạn vượt qua mà vào một chức năng mà bạn wrote mong một giá trị duy nhất, 1022 00:56:55,460 --> 00:56:57,270 đó có thể là một vấn đề. 1023 00:56:57,270 --> 00:57:01,440 >> Một số chức năng trả về null là làm, nói, 1024 00:57:01,440 --> 00:57:05,560 đọc từ một chìa khóa không tồn tại trong một danh sách. 1025 00:57:05,560 --> 00:57:08,527 Nhưng null là không thích C mà nếu bạn cố gắng đọc 1026 00:57:08,527 --> 00:57:11,360 từ một con trỏ cũ, [nghe được] để null con trỏ, nó chỉ seg lỗi 1027 00:57:11,360 --> 00:57:14,109 và nếu bạn đang ở trong trình gỡ lỗi của bạn nó cho bạn biết chính xác bạn đang ở đâu. 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 Thay vào đó, null sẽ do-- chức năng sẽ làm những điều không thể đoán trước 1030 00:57:20,772 --> 00:57:21,730 nếu họ đang tay null. 1031 00:57:21,730 --> 00:57:24,575 Cũng giống như nếu bạn đang trao max null, nó sẽ cung cấp cho bạn vô cùng tiêu cực. 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 Và như vậy, yeah. 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 Và vì vậy điều này đã xảy ra với tôi một lần khi tôi đã có 1036 00:57:32,630 --> 00:57:34,771 thay đổi một loạt các lĩnh vực trong cơ cấu danh mục của tôi 1037 00:57:34,771 --> 00:57:37,520 một lần mà không thay đổi chúng ở nơi khác khi tôi đã được đọc từ họ. 1038 00:57:37,520 --> 00:57:40,670 Và sau đó tôi nhận tất cả các loại ngẫu nhiên kết quả vô cùng xén lên 1039 00:57:40,670 --> 00:57:43,080 và tôi không có ý tưởng họ đến từ đâu. 1040 00:57:43,080 --> 00:57:45,310 Và thật không may, có không thực R chế độ nghiêm ngặt 1041 00:57:45,310 --> 00:57:48,940 nơi bạn có thể nói nếu có điều gì có vẻ như nó có thể là một lỗi, 1042 00:57:48,940 --> 00:57:51,960 chỉ dừng lại ở đó vì vậy tôi có thể xử lý kỷ luật và khắc phục điều đó. 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 Tuy nhiên, có cái gì đó gọi là dừng nếu không. 1045 00:57:57,240 --> 00:58:00,480 Điều này tương đương với khẳng định của C, nếu bạn đã nói về điều đó. 1046 00:58:00,480 --> 00:58:02,690 Tôi không nghĩ rằng C khẳng định là một chủ đề bài giảng, 1047 00:58:02,690 --> 00:58:06,370 nhưng lãnh đạo phần của bạn có thể đã đi qua nó. 1048 00:58:06,370 --> 00:58:10,393 Và dừng lại nếu không có bất kỳ cơ bản vị ngữ, vì vậy bất kỳ tuyên bố rằng 1049 00:58:10,393 --> 00:58:11,824 có thể là đúng hay sai. 1050 00:58:11,824 --> 00:58:13,490 Và nếu nó sai, nó dừng lại chương trình của nó. 1051 00:58:13,490 --> 00:58:18,260 Nó sẽ cho bạn biết chính xác những gì bạn xếp hàng là trên và những gì tình trạng thất bại. 1052 00:58:18,260 --> 00:58:21,910 >> Và điều này rất hữu ích, ví dụ, kiểm tra sự tỉnh táo, đầu vào chức năng. 1053 00:58:21,910 --> 00:58:25,110 Vì vậy, nếu bạn có một hàm và bạn mong đợi, nói, 1054 00:58:25,110 --> 00:58:29,640 nếu bạn cần đưa cho tôi một ngày, tôi muốn những ngày được chỉ là một vector có độ dài 1 1055 00:58:29,640 --> 00:58:31,735 và ở đâu đó giữa 1 và 31. 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 Và nếu không, tôi biết một cái gì đó đi sai. 1058 00:58:36,170 --> 00:58:40,280 Và tôi chọn để dừng lại ở đó trước đây có tiếng gõ ngẫu nhiên trên tác dụng với mã 1059 00:58:40,280 --> 00:58:44,190 rằng nó khó hơn để theo dõi thông qua. 1060 00:58:44,190 --> 00:58:47,170 Vì vậy, đó là một thể sử dụng cho dừng nếu không. 1061 00:58:47,170 --> 00:58:48,660 >> Nhưng dù sao, OK. 1062 00:58:48,660 --> 00:58:49,690 Vì vậy, đó là kết thúc. 1063 00:58:49,690 --> 00:58:51,290 Cảm ơn bạn rất nhiều vì đã đến. 1064 00:58:51,290 --> 00:58:53,710 Tôi là một người nghiệp dư hạng tại đây. 1065 00:58:53,710 --> 00:58:57,270 Vì vậy, xin lỗi nếu bạn đang buồn chán hoặc bối rối hoặc những gì có bạn. 1066 00:58:57,270 --> 00:59:01,670 Tôi đang hạnh phúc để nhận câu hỏi qua email tại connorharris@college.harvard.edu. 1067 00:59:01,670 --> 00:59:07,230 Điều này cũng đi cho tất cả mọi người xem này sống hoặc sau này. 1068 00:59:07,230 --> 00:59:10,190 Ngoài ra, mặc dù tôi không một TF, tôi cũng rất 1069 00:59:10,190 --> 00:59:13,900 sẵn sàng để phục vụ như là một không chính thức cố vấn cho bất cứ ai 1070 00:59:13,900 --> 00:59:15,460 sử dụng R trong một dự án cuối cùng. 1071 00:59:15,460 --> 00:59:19,900 >> Nếu bạn muốn rằng, sau đó chỉ cần nói chuyện với TF của bạn 1072 00:59:19,900 --> 00:59:23,750 và sau đó viết cho tôi một email như vậy Tôi biết những gì bạn đang làm việc trên 1073 00:59:23,750 --> 00:59:26,680 và vì vậy tôi có thể thiết lập cuộc họp lần với bạn nếu bạn muốn. 1074 00:59:26,680 --> 00:59:27,990 Vì vậy, một lần nữa, cảm ơn bạn rất nhiều. 1075 00:59:27,990 --> 00:59:28,960 Tôi hy vọng bạn thích nó. 1076 00:59:28,960 --> 00:59:29,450 >> Đung [không nghe được]. 1077 00:59:29,450 --> 00:59:30,617 >> CONNER HARRIS: Tất nhiên. 1078 00:59:30,617 --> 00:59:34,910 >> Đung Những loại của một dự án một sinh viên CS sẽ sử dụng R cho? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER HARRIS: Vì vậy, nếu bạn không làm cái gì đó là hoàn toàn trong khai thác dữ liệu, 1081 00:59:40,510 --> 00:59:43,790 ví dụ, và có rất nhiều điều 1082 00:59:43,790 --> 00:59:46,692 bạn có thể làm với điều đó với dữ liệu khai thác và học máy. 1083 00:59:46,692 --> 00:59:48,900 Bạn có thể muốn sử dụng R cho một thành phần của một cái gì đó. 1084 00:59:48,900 --> 00:59:52,022 Tôi đưa ra, ban đầu, ví dụ của nếu bạn đang viết một trang web 1085 00:59:52,022 --> 00:59:54,730 và bạn muốn chạy tự động phân tích thống kê các máy chủ của bạn 1086 00:59:54,730 --> 00:59:57,990 bản ghi tại một thời điểm nhất định mỗi ngày, đó có thể là một cái gì đó 1087 00:59:57,990 --> 01:00:01,260 rất dễ dàng để làm chỉ trong ngắn R kịch bản mà bạn có thể lên lịch 1088 01:00:01,260 --> 01:00:04,200 để chạy mỗi đêm, cho ví dụ. 1089 01:00:04,200 --> 01:00:06,550 >> Và tôi chắc chắn rằng, nếu có lý do nào bạn muốn 1090 01:00:06,550 --> 01:00:11,520 muốn thống kê hoặc các tính năng đồ họa và có này chạy tự động thay 1091 01:00:11,520 --> 01:00:13,790 của việc có để tương tác với những thứ trong Excel, 1092 01:00:13,790 --> 01:00:16,750 ví dụ, đó là một cái gì đó bạn có thể muốn sử dụng R cho. 1093 01:00:16,750 --> 01:00:21,190 Vì vậy, bất kỳ câu hỏi nhiều hơn nữa trước khi tôi rời khỏi? 1094 01:00:21,190 --> 01:00:21,690 Không? 1095 01:00:21,690 --> 01:00:24,960 Tất cả các bên phải, tốt, một lần nữa, cảm ơn bạn rất nhiều vì đã đến. 1096 01:00:24,960 --> 01:00:29,417