1 00:00:00,000 --> 00:00:00,750 2 00:00:00,750 --> 00:00:09,800 >> [MUSIC CHƠI] 3 00:00:09,800 --> 00:00:13,014 4 00:00:13,014 --> 00:00:13,680 Dustin TRAN: Hi. 5 00:00:13,680 --> 00:00:14,980 Tên tôi của Dustin. 6 00:00:14,980 --> 00:00:18,419 Vì vậy, tôi sẽ trình bày Phân tích dữ liệu trong R. 7 00:00:18,419 --> 00:00:19,710 Chỉ cần một chút về bản thân mình. 8 00:00:19,710 --> 00:00:24,320 Tôi hiện đang là sinh viên đại học trong Khoa học Kỹ thuật và Ứng dụng. 9 00:00:24,320 --> 00:00:28,330 Tôi nghiên cứu một giao điểm của máy học và thống kê 10 00:00:28,330 --> 00:00:31,375 để phân tích dữ liệu trong R là thực sự cơ bản với những gì 11 00:00:31,375 --> 00:00:33,790 Tôi làm trên cơ sở hàng ngày. 12 00:00:33,790 --> 00:00:35,710 >> Và R là đặc biệt tốt để phân tích dữ liệu 13 00:00:35,710 --> 00:00:39,310 vì nó rất tốt cho prototyping. 14 00:00:39,310 --> 00:00:43,590 Và thông thường, khi bạn đang làm một số loại phân tích dữ liệu, rất nhiều các vấn đề 15 00:00:43,590 --> 00:00:44,920 sẽ nhận thức. 16 00:00:44,920 --> 00:00:48,700 Và vì vậy bạn chỉ muốn có một số ngôn ngữ thực sự tốt mà 17 00:00:48,700 --> 00:00:53,770 chỉ là tốt để làm được xây dựng trong các chức năng, như trái ngược 18 00:00:53,770 --> 00:00:57,430 việc phải đối phó với những thứ ở mức độ thấp. 19 00:00:57,430 --> 00:01:01,040 Vì vậy, ngay từ đầu, tôi chỉ cần đi R để giới thiệu là gì, tại sao 20 00:01:01,040 --> 00:01:04,540 bạn muốn sử dụng nó, và sau đó đi qua vào một số bản demo, 21 00:01:04,540 --> 00:01:07,060 và chỉ cần đi vào từ đó. 22 00:01:07,060 --> 00:01:08,150 >> Vì vậy, R là gì? 23 00:01:08,150 --> 00:01:11,180 R chỉ là một ngôn ngữ phát triển cho tính toán thống kê 24 00:01:11,180 --> 00:01:12,450 và trực quan. 25 00:01:12,450 --> 00:01:16,000 Vì vậy, điều này có nghĩa là nó là một ngôn ngữ rất tuyệt vời 26 00:01:16,000 --> 00:01:22,400 cho bất kỳ loại điều mà những giao dịch với không chắc chắn hoặc dữ liệu trực quan. 27 00:01:22,400 --> 00:01:24,850 Vì vậy, bạn có tất cả những phân bố xác suất. 28 00:01:24,850 --> 00:01:27,140 Hiện đang có được xây dựng trong các chức năng. 29 00:01:27,140 --> 00:01:31,650 Bạn cũng sẽ phải xuất sắc âm mưu gói. 30 00:01:31,650 --> 00:01:34,110 >> Python là một cạnh tranh ngôn ngữ cho dữ liệu. 31 00:01:34,110 --> 00:01:40,020 Và một điều mà tôi thấy rằng R là tốt hơn nhiều lúc là trực quan. 32 00:01:40,020 --> 00:01:45,200 Vì vậy, những gì bạn sẽ thấy trong bản demo là cũng chỉ là một ngôn ngữ rất trực quan 33 00:01:45,200 --> 00:01:48,050 mà chỉ hoạt động rất tốt. 34 00:01:48,050 --> 00:01:53,140 Nó cũng là miễn phí và mã nguồn mở, như là bất kỳ ngôn ngữ khác tốt, tôi đoán. 35 00:01:53,140 --> 00:01:55,440 >> Và ở đây, một loạt các chỉ từ khóa ném vào bạn. 36 00:01:55,440 --> 00:02:00,450 Đó là năng động, có nghĩa là nếu bạn có một loại cụ thể được giao cho một đối tượng 37 00:02:00,450 --> 00:02:02,025 hơn nó sẽ chỉ thay đổi nó trên bay. 38 00:02:02,025 --> 00:02:05,670 Đó là lười biếng vì vậy nó là thông minh về nó như thế nào tính toán. 39 00:02:05,670 --> 00:02:12,250 Chức năng nghĩa là nó thực sự có thể hoạt động dựa tắt của chức năng để anything-- 40 00:02:12,250 --> 00:02:16,910 bất kỳ loại thao tác bạn làm, nó sẽ được dựa tắt chức năng. 41 00:02:16,910 --> 00:02:20,162 >> Vì vậy, các nhà khai thác nhị phân, ví dụ, là chức năng chỉ vốn. 42 00:02:20,162 --> 00:02:21,870 Và tất cả mọi thứ mà bạn sẽ làm được 43 00:02:21,870 --> 00:02:24,690 sẽ được chạy tắt chức năng riêng của mình. 44 00:02:24,690 --> 00:02:27,140 Và sau đó hướng đối tượng là tốt. 45 00:02:27,140 --> 00:02:30,930 >> Vì vậy, đây là một âm mưu XKCD. 46 00:02:30,930 --> 00:02:34,350 Không chỉ bởi vì tôi cảm thấy như XKCD là nền tảng cho bất kỳ loại 47 00:02:34,350 --> 00:02:37,770 trình bày, nhưng vì Tôi cảm thấy như thế này thực sự 48 00:02:37,770 --> 00:02:42,160 búa điểm mà rất nhiều các thời gian khi bạn đang làm một số loại dữ liệu 49 00:02:42,160 --> 00:02:46,570 phân tích, vấn đề không phải là rất nhiều cách nhanh chóng nó chạy, 50 00:02:46,570 --> 00:02:49,850 nhưng bao lâu nó sẽ đưa bạn đến chương trình nhiệm vụ. 51 00:02:49,850 --> 00:02:54,112 Vì vậy, đây chỉ là phân tích xem chiến lược của một hoặc b là hiệu quả hơn. 52 00:02:54,112 --> 00:02:55,820 Điều này là có được một cái gì đó mà bạn 53 00:02:55,820 --> 00:02:58,290 sẽ đối phó với rất nhiều trong loại ngôn ngữ cấp thấp 54 00:02:58,290 --> 00:03:03,440 nơi bạn đang đối phó với lỗi seg, cấp phát bộ nhớ, khởi động ban đầu, 55 00:03:03,440 --> 00:03:05,270 thậm chí làm cho các chức năng được xây dựng trong. 56 00:03:05,270 --> 00:03:09,920 Và công cụ này là tất cả các xử lý rất, rất thanh lịch trong R. 57 00:03:09,920 --> 00:03:12,839 >> Như vậy chỉ cần búa này điểm, các nút cổ chai lớn nhất 58 00:03:12,839 --> 00:03:13,880 là có được nhận thức. 59 00:03:13,880 --> 00:03:17,341 Vì vậy, phân tích dữ liệu là một vấn đề rất khó khăn. 60 00:03:17,341 --> 00:03:19,340 Cho dù bạn đang làm học máy hoặc bạn 61 00:03:19,340 --> 00:03:22,550 chỉ cần làm một số loại thăm dò dữ liệu cơ bản, 62 00:03:22,550 --> 00:03:25,290 bạn không muốn có để có một tài liệu 63 00:03:25,290 --> 00:03:27,440 và sau đó biên dịch một cái gì đó mỗi khi bạn 64 00:03:27,440 --> 00:03:31,010 muốn xem những gì một cột có vẻ như, những gì cụ thể các mục trong một ma trận 65 00:03:31,010 --> 00:03:32,195 trông như thế nào. 66 00:03:32,195 --> 00:03:34,320 Vì vậy, bạn chỉ muốn có một số giao diện thực sự tốt đẹp 67 00:03:34,320 --> 00:03:37,740 bạn có thể chạy một chức năng đơn giản mà chỉ số để bất cứ điều gì 68 00:03:37,740 --> 00:03:41,870 bạn muốn và chỉ cần chạy nó từ đó. 69 00:03:41,870 --> 00:03:44,190 Và bạn cần miền ngôn ngữ cụ thể cho việc này. 70 00:03:44,190 --> 00:03:51,750 Và R thực sự sẽ giúp bạn xác định vấn đề và giải quyết nó theo cách này. 71 00:03:51,750 --> 00:03:58,690 >> Vì vậy, đây là một chương trình cho thấy âm mưu phổ biến của R như nó đã biến mất theo thời gian. 72 00:03:58,690 --> 00:04:04,060 Vì vậy, như bạn có thể thấy, giống như 2013 hay vì vậy nó chỉ thổi lên rất nhiều. 73 00:04:04,060 --> 00:04:09,570 Và điều này đã được chỉ vì điều đó xu hướng rất lớn trong ngành công nghiệp công nghệ 74 00:04:09,570 --> 00:04:10,590 dữ liệu về lớn. 75 00:04:10,590 --> 00:04:13,010 Ngoài ra, không chỉ là công nghệ ngành công nghiệp, nhưng thực sự 76 00:04:13,010 --> 00:04:16,490 bất kỳ ngành công nghiệp vì that-- rất nhiều các ngành công nghiệp 77 00:04:16,490 --> 00:04:20,589 là loại cơ bản để cố gắng giải quyết những vấn đề này. 78 00:04:20,589 --> 00:04:24,590 Và thông thường, bạn có thể có một số tốt cách đo lường những vấn đề này 79 00:04:24,590 --> 00:04:29,720 hoặc thậm chí xác định chúng hoặc giải quyết chúng bằng cách sử dụng dữ liệu. 80 00:04:29,720 --> 00:04:35,430 Vì vậy, tôi nghĩ rằng ngay bây giờ R là 11 hầu hết ngôn ngữ phổ biến trên TIOBE 81 00:04:35,430 --> 00:04:38,200 và nó được phát triển từ đó. 82 00:04:38,200 --> 00:04:40,740 83 00:04:40,740 --> 00:04:43,080 >> Vì vậy, đây là một số chi tiết tính năng của R. Nó có 84 00:04:43,080 --> 00:04:46,900 một số lượng rất lớn của các gói và cho tất cả những điều khác nhau. 85 00:04:46,900 --> 00:04:52,470 Vì vậy, bất cứ lúc nào bạn có một vấn đề nào đó, nhất 86 00:04:52,470 --> 00:04:55,060 thời gian R sẽ có mà chức năng cho bạn. 87 00:04:55,060 --> 00:04:58,520 Vì vậy, cho dù bạn muốn xây dựng một số loại máy 88 00:04:58,520 --> 00:05:02,770 thuật toán học được gọi là Random Forest hoặc Quyết định Trees, 89 00:05:02,770 --> 00:05:07,530 hoặc thậm chí cố gắng để lấy trung bình của một chức năng hoặc bất kỳ công cụ này, 90 00:05:07,530 --> 00:05:10,000 R sẽ có điều đó. 91 00:05:10,000 --> 00:05:14,190 >> Và nếu bạn làm bạn quan tâm tối ưu hóa, một trong những điều đó là phổ biến 92 00:05:14,190 --> 00:05:17,430 được rằng sau khi bạn đã hoàn tất mẫu một số loại ngôn ngữ cấp cao, 93 00:05:17,430 --> 00:05:19,810 bạn sẽ ném mà in-- bạn sẽ chỉ là cổng mà qua 94 00:05:19,810 --> 00:05:21,550 một số ngôn ngữ cấp thấp. 95 00:05:21,550 --> 00:05:26,090 Những điều tốt về R là một khi bạn thực hiện tạo mẫu, bạn có thể chạy C ++, 96 00:05:26,090 --> 00:05:29,510 hoặc Fortran, hoặc bất kỳ của các những người cấp dưới trực tiếp vào R. 97 00:05:29,510 --> 00:05:32,320 Vì vậy, đó là một thực sự tính năng thú vị về R, 98 00:05:32,320 --> 00:05:35,930 nếu bạn thực sự quan tâm điểm tối ưu. 99 00:05:35,930 --> 00:05:39,490 >> Và nó cũng thực sự tốt cho visualizations web. 100 00:05:39,490 --> 00:05:43,530 Vì vậy D3.js, ví dụ, là Tôi đoán hội thảo khác 101 00:05:43,530 --> 00:05:45,130 mà chúng tôi trình bày hôm nay. 102 00:05:45,130 --> 00:05:48,510 Và điều này là thực sự tuyệt vời cho làm visualizations tương tác. 103 00:05:48,510 --> 00:05:54,460 Và D3.js giả định rằng bạn có một số loại dữ liệu để có thể vẽ được 104 00:05:54,460 --> 00:05:58,080 và R là một cách tuyệt vời của việc có thể làm phân tích dữ liệu trước khi bạn xuất nó 105 00:05:58,080 --> 00:06:04,220 qua D3.js hoặc thậm chí chỉ cần chạy D3.js lệnh vào R chính nó, 106 00:06:04,220 --> 00:06:08,240 cũng như tất cả các các thư viện khác. 107 00:06:08,240 --> 00:06:13,041 >> Vì vậy, đó chỉ là sự ra đời của là những gì R và tại sao bạn có thể sử dụng nó. 108 00:06:13,041 --> 00:06:14,790 Vì vậy, hy vọng, tôi đã thuyết phục bạn một cái gì đó 109 00:06:14,790 --> 00:06:18,460 về chỉ cần cố gắng để xem những gì nó muốn. 110 00:06:18,460 --> 00:06:23,930 Vì vậy, tôi sẽ đi trước và đi qua một số nguyên tắc cơ bản về đối tượng R 111 00:06:23,930 --> 00:06:26,150 và những gì bạn thực sự có thể làm được. 112 00:06:26,150 --> 00:06:29,690 >> Vì vậy, đây chỉ là một là loạt các lệnh toán học. 113 00:06:29,690 --> 00:06:35,000 Vì vậy, nói you're-- bạn muốn xây dựng bản thân ngôn ngữ và bạn chỉ muốn 114 00:06:35,000 --> 00:06:38,080 để có một loạt các công cụ khác nhau. 115 00:06:38,080 --> 00:06:42,520 Bất kỳ loại hoạt động mà bạn nghĩ rằng bạn muốn muốn được khá nhiều có được trong R. 116 00:06:42,520 --> 00:06:44,150 >> Vì vậy, đây là 2 cộng 2. 117 00:06:44,150 --> 00:06:46,090 Dưới đây là 2 lần pi. 118 00:06:46,090 --> 00:06:51,870 R có một bó xây dựng trong các hằng số mà bạn sẽ thường xuyên sử dụng như pi, e. 119 00:06:51,870 --> 00:06:56,230 >> Và sau đó, đây là 7 plus runif, vì vậy runif của 1. 120 00:06:56,230 --> 00:07:02,450 Đây là một chức năng mà tạo một ngẫu nhiên đồng nhất 0-1. 121 00:07:02,450 --> 00:07:04,400 Và sau đó có 3 với sức mạnh của 4. 122 00:07:04,400 --> 00:07:06,430 Có rễ vuông. 123 00:07:06,430 --> 00:07:07,270 >> Có log. 124 00:07:07,270 --> 00:07:14,500 Vì vậy, đăng nhập sẽ làm cơ sở theo cấp số nhân của chính nó. 125 00:07:14,500 --> 00:07:18,337 Và sau đó, nếu bạn chỉ định một cơ sở, sau đó bạn có thể làm bất cứ điều gì bạn muốn cơ sở. 126 00:07:18,337 --> 00:07:19,920 Và sau đó đây là một số lệnh khác. 127 00:07:19,920 --> 00:07:22,180 Vì vậy, bạn có 23 mod 2. 128 00:07:22,180 --> 00:07:24,910 Sau đó, bạn có còn lại. 129 00:07:24,910 --> 00:07:27,110 Sau đó, bạn có khoa học ký hiệu nếu bạn cũng 130 00:07:27,110 --> 00:07:34,060 muốn làm chỉ hơn và những điều phức tạp hơn. 131 00:07:34,060 --> 00:07:37,320 >> Vì vậy, đây là phân công. 132 00:07:37,320 --> 00:07:40,830 Vì vậy, bài tập điển hình trong R được thực hiện với một mũi tên 133 00:07:40,830 --> 00:07:43,440 vì vậy nó ít hơn và sau đó các dấu gạch ngang. 134 00:07:43,440 --> 00:07:47,250 Vì vậy, ở đây tôi chỉ giao 3 đến val biến. 135 00:07:47,250 --> 00:07:50,160 >> Và sau đó tôi đã in ra val và sau đó nó in ra ba. 136 00:07:50,160 --> 00:07:53,920 Theo mặc định trong thông dịch viên R, nó sẽ in những điều trên cho bạn 137 00:07:53,920 --> 00:07:57,280 vì vậy bạn không cần phải chỉ định in một val bất cứ lúc nào bạn muốn in một cái gì đó. 138 00:07:57,280 --> 00:08:00,200 Bạn chỉ có thể làm được và val sau đó nó sẽ làm điều đó cho bạn. 139 00:08:00,200 --> 00:08:04,380 >> Ngoài ra, bạn có thể sử dụng bằng từ kỹ thuật như một toán tử gán. 140 00:08:04,380 --> 00:08:07,190 Có tinh tế nhẹ giữa việc sử dụng các mũi tên 141 00:08:07,190 --> 00:08:10,730 điều hành và equals điều hành cho các bài tập. 142 00:08:10,730 --> 00:08:15,470 Chủ yếu là do quy ước, tất cả mọi người sẽ chỉ sử dụng các nhà điều hành mũi tên. 143 00:08:15,470 --> 00:08:21,850 >> Và ở đây, tôi gán này ký hiệu xiên gọi là 1 tràng 6. 144 00:08:21,850 --> 00:08:26,010 Điều này tạo ra một vector 1-6. 145 00:08:26,010 --> 00:08:29,350 Và điều này thực sự tốt đẹp, vì sau đó bạn chỉ cần gán các vector để val 146 00:08:29,350 --> 00:08:34,270 và rằng hoạt động của chính nó. 147 00:08:34,270 --> 00:08:37,799 >> Vì vậy, điều này đã đi từ một single-- một dữ liệu rất trực quan 148 00:08:37,799 --> 00:08:41,070 cấu trúc của chỉ một đôi một số loại loại vào một vector 149 00:08:41,070 --> 00:08:45,670 và đó sẽ thu thập tất cả các giá trị vô hướng cho bạn. 150 00:08:45,670 --> 00:08:50,770 Vì vậy, sau khi đi từ vô hướng, bạn có các đối tượng R và điều này là một vector. 151 00:08:50,770 --> 00:08:55,610 Một vector là bất kỳ loại bộ sưu tập cùng loại. 152 00:08:55,610 --> 00:08:58,150 Vì vậy, đây là một loạt các vectơ. 153 00:08:58,150 --> 00:08:59,800 >> Vì vậy, đây là số. 154 00:08:59,800 --> 00:09:02,440 Số là cách R nói đôi. 155 00:09:02,440 --> 00:09:07,390 Và do đó, theo mặc định, bất kỳ số sẽ là một đôi. 156 00:09:07,390 --> 00:09:13,150 >> Vì vậy, nếu bạn có c là 1,1, 3, âm 5.7, c là một chức năng. 157 00:09:13,150 --> 00:09:16,760 Đây móc nối cả ba số vào một vector. 158 00:09:16,760 --> 00:09:19,619 Và điều này sẽ be-- vì vậy nếu bạn nhận thấy 3 của chính nó, 159 00:09:19,619 --> 00:09:21,910 thông thường bạn sẽ giả rằng điều này giống như một số nguyên, 160 00:09:21,910 --> 00:09:25,050 nhưng bởi vì tất cả các vector là cùng loại, 161 00:09:25,050 --> 00:09:28,660 đây là một vector của tăng gấp đôi hoặc số trong trường hợp này. 162 00:09:28,660 --> 00:09:34,920 >> rnorm là một chức năng mà tạo variables-- chuẩn tiêu chuẩn 163 00:09:34,920 --> 00:09:36,700 hoặc giá trị chuẩn. 164 00:09:36,700 --> 00:09:38,360 Và tôi xác định hai trong số họ. 165 00:09:38,360 --> 00:09:43,840 Vì vậy, tôi đang làm rnorm 2, gán rằng để devs, và sau đó tôi đã in ra devs. 166 00:09:43,840 --> 00:09:47,350 Vì vậy, đây chỉ là hai giá trị bình thường ngẫu nhiên. 167 00:09:47,350 --> 00:09:50,060 >> Và sau đó ints nếu bạn làm bạn quan tâm đến số nguyên. 168 00:09:50,060 --> 00:09:54,650 Vì vậy, đây là chỉ là về bộ nhớ phân bổ và tiết kiệm dung lượng bộ nhớ. 169 00:09:54,650 --> 00:10:01,460 Vì vậy, bạn sẽ phải nối thêm số của bạn bằng cách thủ đô L. 170 00:10:01,460 --> 00:10:04,170 >> Nói chung, đây là Ký hiệu R của lịch sử 171 00:10:04,170 --> 00:10:06,940 cho một cái gì đó gọi là số nguyên dài. 172 00:10:06,940 --> 00:10:09,880 Vì vậy, hầu hết thời gian, bạn sẽ thấy là đối phó với đôi. 173 00:10:09,880 --> 00:10:15,180 Và nếu bạn đã bao giờ sẽ về sau về tối ưu hóa mã của bạn, 174 00:10:15,180 --> 00:10:18,110 Bạn chỉ có thể thêm các L's sau hoặc trong khi nó 175 00:10:18,110 --> 00:10:22,280 nếu bạn đang như precognitive về những gì bạn sẽ làm các biến này. 176 00:10:22,280 --> 00:10:25,340 177 00:10:25,340 --> 00:10:26,890 >> Vì vậy, đây là một vector nhân vật. 178 00:10:26,890 --> 00:10:31,440 Vì vậy, một lần nữa, tôi concatenating ba chuỗi thời gian này. 179 00:10:31,440 --> 00:10:36,230 Chú ý rằng chuỗi đôi và dây duy nhất là như nhau trong R. 180 00:10:36,230 --> 00:10:41,000 Vì vậy, tôi có arthur và marvin và như vậy khi tôi đang in nó ra, tất cả chúng 181 00:10:41,000 --> 00:10:43,210 sẽ hiển thị chuỗi kép. 182 00:10:43,210 --> 00:10:45,880 Và nếu bạn cũng muốn bao gồm chuỗi tăng gấp đôi hoặc đơn 183 00:10:45,880 --> 00:10:50,070 trong nhân vật của bạn, sau đó bạn có thể hoặc thay thế dây của bạn. 184 00:10:50,070 --> 00:10:53,540 >> Vì vậy marvin cho các Yếu tố thứ hai, đây là 185 00:10:53,540 --> 00:10:56,380 sẽ show-- bạn chỉ có các chuỗi kép 186 00:10:56,380 --> 00:10:59,050 và sau đó là một chuỗi duy nhất vì vậy đây là xen kẽ. 187 00:10:59,050 --> 00:11:04,040 Nếu không, nếu bạn muốn sử dụng một đôi nhà điều hành chuỗi trong một chuỗi kép 188 00:11:04,040 --> 00:11:07,090 khi bạn khai báo nó sau đó, bạn chỉ cần sử dụng các nhà điều hành thoát. 189 00:11:07,090 --> 00:11:10,600 Vì vậy, bạn làm các chuỗi kép dấu chéo ngược. 190 00:11:10,600 --> 00:11:13,330 >> Và cuối cùng, chúng tôi cũng có vectơ logic. 191 00:11:13,330 --> 00:11:15,890 Vì vậy, để logical-- TRUE và FALSE, và họ 192 00:11:15,890 --> 00:11:18,880 có được tất cả chữ viết hoa. 193 00:11:18,880 --> 00:11:22,370 Và sau đó, một lần nữa, tôi concatenating họ và sau đó giao cho họ để bools. 194 00:11:22,370 --> 00:11:24,590 Vì vậy bools sẽ chỉ cho bạn TRUE, FALSE, và TRUE. 195 00:11:24,590 --> 00:11:28,280 196 00:11:28,280 --> 00:11:31,620 >> Vì vậy, đây là chỉ mục véc tơ. 197 00:11:31,620 --> 00:11:34,870 Vì vậy, ngay từ đầu, tôi đang tham gia một function-- 198 00:11:34,870 --> 00:11:39,230 này được gọi là một sequence-- chuỗi 2-12. 199 00:11:39,230 --> 00:11:42,490 Và tôi đang tham gia một chuỗi bằng 2. 200 00:11:42,490 --> 00:11:46,660 Vì vậy, nó sẽ làm gì 2, 4, 6, 8, 10 và 12. 201 00:11:46,660 --> 00:11:50,080 Và sau đó, tôi lập chỉ mục để có được những yếu tố thứ ba. 202 00:11:50,080 --> 00:11:55,770 >> Vì vậy, có một điều cần lưu ý là mà chỉ số R bằng cách bắt đầu từ 1. 203 00:11:55,770 --> 00:12:00,550 Vì vậy, Vals 3 sẽ cung cấp cho bạn phần tử thứ ba. 204 00:12:00,550 --> 00:12:04,580 Đây là loại khác nhau từ khác ngôn ngữ mà nó bắt đầu từ số không. 205 00:12:04,580 --> 00:12:09,780 Vì vậy, trong C hoặc C ++, ví dụ, bạn sẽ nhận được nguyên tố thứ tư. 206 00:12:09,780 --> 00:12:13,280 >> Và đây là Vals 3-5. 207 00:12:13,280 --> 00:12:16,030 Vì vậy, có một điều đó là thực sự thú vị mà bạn 208 00:12:16,030 --> 00:12:20,410 có thể tạo ra các biến tạm thời trong và sau đó chỉ cần sử dụng chúng trên bay. 209 00:12:20,410 --> 00:12:21,960 Vì vậy, đây là 3-5. 210 00:12:21,960 --> 00:12:25,070 Vì vậy, tôi là tạo ra một vector 3, 4, và 5 và sau đó 211 00:12:25,070 --> 00:12:29,700 Tôi đang lập chỉ mục để có được thứ ba, yếu tố thứ tư, và thứ năm. 212 00:12:29,700 --> 00:12:32,280 >> Vì vậy, tương tự như vậy, bạn có thể trừu tượng này chỉ cần làm 213 00:12:32,280 --> 00:12:35,280 bất kỳ loại của một vector cung cấp cho bạn lập chỉ mục. 214 00:12:35,280 --> 00:12:40,050 Vì vậy, đây là Vals và sau đó các yếu tố đầu tiên, thứ ba, và thứ sáu. 215 00:12:40,050 --> 00:12:42,800 Và sau đó, nếu bạn muốn để làm một sự bổ sung, 216 00:12:42,800 --> 00:12:45,210 vì vậy bạn chỉ cần làm trừ sau đó và sẽ thấy rằng 217 00:12:45,210 --> 00:12:48,600 cung cấp cho bạn tất cả mọi thứ đó không phải là đầu tiên, thứ ba, hoặc yếu tố thứ sáu. 218 00:12:48,600 --> 00:12:51,590 Vì vậy, đây sẽ là 4, 8, và 10. 219 00:12:51,590 --> 00:12:54,380 >> Và nếu bạn muốn nhận được thậm chí cao hơn, 220 00:12:54,380 --> 00:12:57,610 bạn có thể nối các vectơ Boolean. 221 00:12:57,610 --> 00:13:05,210 Vì vậy, chỉ số này sẽ cung cấp cho bạn vector Boolean này có độ dài 6. 222 00:13:05,210 --> 00:13:07,280 Vì vậy, đại diện TRUE dấu phẩy 3. 223 00:13:07,280 --> 00:13:09,680 Điều này sẽ lặp lại TRUE ba lần. 224 00:13:09,680 --> 00:13:12,900 Vì vậy, đây sẽ cung cấp cho bạn một vector TRUE, TRUE, TRUE. 225 00:13:12,900 --> 00:13:17,470 >> đại diện FALSE 4-- này sẽ cung cấp cho bạn một vector của FALSE, FALSE, FALSE, FALSE. 226 00:13:17,470 --> 00:13:21,280 Và sau đó c là sẽ tiếp nhau hai phép toán luận với nhau. 227 00:13:21,280 --> 00:13:24,090 Vì vậy, bạn sẽ có được ba TRUEs và sau đó bốn FALSEs. 228 00:13:24,090 --> 00:13:28,460 >> Vì vậy, khi bạn Vals chỉ số, bạn đi để có được TRUE, TRUE, TRUE. 229 00:13:28,460 --> 00:13:31,420 Vì vậy, đó là sẽ nói có, Tôi muốn những ba yếu tố. 230 00:13:31,420 --> 00:13:33,520 Và sau đó FALSE, FALSE, FALSE, FALSE sẽ 231 00:13:33,520 --> 00:13:37,140 để nói không, tôi không muốn những yếu tố vì vậy nó sẽ không trả lại. 232 00:13:37,140 --> 00:13:41,490 >> Và tôi đoán có thực sự là một lỗi đánh máy đây bởi vì đây là nói lặp lại TRUE 3 233 00:13:41,490 --> 00:13:47,990 và lặp lại FALSE 4, và về mặt kỹ thuật, bạn chỉ có sáu yếu tố để lặp lại FALSE, 234 00:13:47,990 --> 00:13:50,470 nó phải được lặp lại 3 FALSE. 235 00:13:50,470 --> 00:13:55,260 Tôi nghĩ rằng R cũng là đủ như thông minh rằng nếu bạn chỉ cần chỉ định 4 ở đây, sau đó 236 00:13:55,260 --> 00:13:56,630 thậm chí nó sẽ không báo lỗi ra. 237 00:13:56,630 --> 00:13:58,480 Nó sẽ chỉ cho bạn giá trị này. 238 00:13:58,480 --> 00:14:00,970 Vì vậy, nó sẽ chỉ cần bỏ qua mà FALSE thứ tư. 239 00:14:00,970 --> 00:14:05,310 240 00:14:05,310 --> 00:14:09,270 >> Vì vậy, đây là phân véc tơ. 241 00:14:09,270 --> 00:14:15,480 Vì vậy set.seed-- này chỉ đặt hạt giống cho các số giả ngẫu nhiên. 242 00:14:15,480 --> 00:14:20,110 Vì vậy, tôi đang thiết lập các hạt giống 42, có nghĩa là nếu tôi tạo ra 243 00:14:20,110 --> 00:14:22,950 ba ngẫu nhiên bình thường giá trị, và sau đó nếu bạn 244 00:14:22,950 --> 00:14:27,400 chạy set.seed trên của riêng bạn máy tính bằng cách sử dụng cùng một giá trị 42, 245 00:14:27,400 --> 00:14:30,990 sau đó bạn cũng có được cùng ba normal ngẫu nhiên. 246 00:14:30,990 --> 00:14:33,411 >> Vì vậy, đây là thực sự tốt cho khả năng tái. 247 00:14:33,411 --> 00:14:35,910 Thông thường, khi bạn đang làm một số loại phân tích khoa học, 248 00:14:35,910 --> 00:14:37,230 bạn sẽ muốn thiết lập các hạt giống. 249 00:14:37,230 --> 00:14:41,270 Bằng cách đó các nhà khoa học khác có thể chỉ tái tạo các mã chính xác cùng bạn đã 250 00:14:41,270 --> 00:14:44,790 thực hiện bởi vì họ sẽ có chính xác biến ngẫu nhiên cùng that-- hoặc ngẫu nhiên 251 00:14:44,790 --> 00:14:47,270 giá trị mà bạn đã lấy ra là tốt. 252 00:14:47,270 --> 00:14:49,870 253 00:14:49,870 --> 00:14:53,910 >> Và như vậy việc giao vectorized đây là hiển thị các Vals 1-2. 254 00:14:53,910 --> 00:14:59,290 Vì vậy, phải mất hai yếu tố đầu tiên của Vals và sau đó gán chúng tới 0. 255 00:14:59,290 --> 00:15:03,940 Và sau đó, bạn cũng có thể chỉ cần làm điều tương tự với các phép toán luận. 256 00:15:03,940 --> 00:15:09,340 >> Vì vậy, Vals không bằng 0-- chí này cung cấp cho bạn một FALSE vector, FALSE, TRUE 257 00:15:09,340 --> 00:15:10,350 trong trường hợp này. 258 00:15:10,350 --> 00:15:13,770 Và sau đó, nó sẽ nói bất kỳ những chỉ số đó là TRUE, 259 00:15:13,770 --> 00:15:15,270 sau đó nó sẽ gán cho 5. 260 00:15:15,270 --> 00:15:18,790 Vì vậy, nó có các yếu tố thứ ba ở đây và sau đó gán nó cho 5. 261 00:15:18,790 --> 00:15:22,300 >> Và điều này là thực sự tốt đẹp so với các ngôn ngữ cấp thấp 262 00:15:22,300 --> 00:15:25,560 nơi bạn có để sử dụng cho các vòng để làm tất cả những thứ này vectorized 263 00:15:25,560 --> 00:15:30,281 bởi vì nó chỉ là rất trực quan và đó là một single one-liner. 264 00:15:30,281 --> 00:15:32,030 Và tuyệt vời về những gì ký hiệu véc tơ 265 00:15:32,030 --> 00:15:37,020 là trong R, đây là những loại được xây dựng với mục đích để họ gần như là nhanh 266 00:15:37,020 --> 00:15:42,490 như làm trong một ngôn ngữ cấp thấp như trái ngược với thực hiện một vòng lặp for trong R 267 00:15:42,490 --> 00:15:46,317 và sau đó có nó để làm việc lập chỉ mục tự động. 268 00:15:46,317 --> 00:15:48,900 Và đó sẽ chậm hơn so với làm các loại điều này vectorized 269 00:15:48,900 --> 00:15:55,950 nơi mà nó có thể làm điều đó song song, nơi nó làm nó trong luồng cơ bản. 270 00:15:55,950 --> 00:15:58,650 >> Vì vậy, đây là vector hóa hoạt động. 271 00:15:58,650 --> 00:16:04,920 Vì vậy, tôi là tạo ra một giá trị 1-3, gán rằng để vec1, 3-5, vec2, 272 00:16:04,920 --> 00:16:05,950 thêm chúng với nhau. 273 00:16:05,950 --> 00:16:11,490 Nó cho biết thêm họ thành phần khôn ngoan như vậy nó là 1 cộng với 3, 2 và 4, và như vậy. 274 00:16:11,490 --> 00:16:13,330 >> vec1 lần vec2. 275 00:16:13,330 --> 00:16:16,110 Này nhân hai giá trị thành phần khôn ngoan. 276 00:16:16,110 --> 00:16:21,830 Vì vậy, nó là 1 lần 3, 2 lần 4, và sau đó 3 lần 5. 277 00:16:21,830 --> 00:16:28,250 >> Và sau đó, tương tự bạn cũng có thể làm comparisons-- so sánh logic. 278 00:16:28,250 --> 00:16:33,640 Vì vậy, nó là FALSE FALSE TRUE trong này trường hợp vì 1 là không lớn hơn 3, 279 00:16:33,640 --> 00:16:35,920 2 là không lớn hơn 4. 280 00:16:35,920 --> 00:16:41,160 Đây là, tôi đoán, lỗi đánh máy khác, 3 chắc chắn là không lớn hơn 5. 281 00:16:41,160 --> 00:16:41,660 Yeah. 282 00:16:41,660 --> 00:16:45,770 Và vì vậy bạn chỉ có thể làm tất cả các hoạt động đơn giản 283 00:16:45,770 --> 00:16:48,350 vì họ thừa hưởng từ các lớp mình. 284 00:16:48,350 --> 00:16:51,110 285 00:16:51,110 --> 00:16:52,580 >> Vì vậy, đó chỉ là các vector. 286 00:16:52,580 --> 00:16:56,530 Và đó là sắp xếp của các cơ bản nhất R đối tượng vì cho một vector, 287 00:16:56,530 --> 00:16:59,170 bạn có thể xây dựng các đối tượng cao cấp hơn. 288 00:16:59,170 --> 00:17:00,560 >> Vì vậy, đây là một ma trận. 289 00:17:00,560 --> 00:17:05,030 Điều này về cơ bản là sự trừu tượng của những gì một ma trận là chính nó. 290 00:17:05,030 --> 00:17:10,099 Vì vậy, trong trường hợp này, đó là ba khác nhau vectơ, nơi từng là một trong một cột, 291 00:17:10,099 --> 00:17:12,710 hoặc bạn có thể xem xét nó khi mỗi đứa một hàng. 292 00:17:12,710 --> 00:17:18,250 >> Vì vậy, tôi đang lưu trữ một ma trận từ 1 tới 9 và sau đó tôi chỉ định 3 hàng. 293 00:17:18,250 --> 00:17:23,364 Vì vậy, 1-9 sẽ cung cấp cho bạn một vector 1, 2, 3, 4, 5, 6, và tất cả các cách đến 9. 294 00:17:23,364 --> 00:17:29,250 >> Một điều nữa cũng cần lưu ý là Cửa hàng R giá trị trong định dạng cột lớn. 295 00:17:29,250 --> 00:17:34,160 Vì vậy, nói cách khác, khi bạn nhìn thấy 1 đến 9, nó sẽ lưu trữ them-- 296 00:17:34,160 --> 00:17:36,370 nó sẽ là 1, 2, 3 trong cột đầu tiên, 297 00:17:36,370 --> 00:17:38,510 và sau đó nó sẽ làm 4, 5, 6 trong cột thứ hai, 298 00:17:38,510 --> 00:17:41,440 và sau đó 7, 8, 9 trong cột thứ ba. 299 00:17:41,440 --> 00:17:45,570 >> Và đây là một số khác chức năng thông thường, bạn có thể sử dụng. 300 00:17:45,570 --> 00:17:49,650 Vì vậy, mat mờ, điều này sẽ cung cấp cho bạn kích thước của ma trận. 301 00:17:49,650 --> 00:17:52,620 Nó sẽ trả về cho bạn một vector của các kích thước. 302 00:17:52,620 --> 00:17:55,580 Vì vậy, trong trường hợp này, vì ma trận của chúng tôi là 3 by 3, 303 00:17:55,580 --> 00:18:01,900 nó sẽ cung cấp cho bạn một vector số đó là 3 3. 304 00:18:01,900 --> 00:18:05,270 >> Và đây chỉ là hiển thị phép nhân ma trận. 305 00:18:05,270 --> 00:18:11,970 Vì vậy, thông thường, nếu bạn chỉ cần làm asterisk-- vậy mat dấu mat-- 306 00:18:11,970 --> 00:18:15,380 này là có được hoạt động thành phần khôn ngoan 307 00:18:15,380 --> 00:18:17,300 hoặc những gì được gọi là sản phẩm Hadamard. 308 00:18:17,300 --> 00:18:21,310 Vì vậy, nó sẽ làm mỗi yếu tố thành phần khôn ngoan. 309 00:18:21,310 --> 00:18:23,610 Tuy nhiên, nếu bạn muốn ma trận multiplication-- 310 00:18:23,610 --> 00:18:29,380 vì vậy nhân lần hàng đầu tiên cột đầu tiên của ma trận thứ hai 311 00:18:29,380 --> 00:18:34,510 và như vậy bạn sẽ sử dụng on-- hoạt động này phần trăm. 312 00:18:34,510 --> 00:18:38,110 >> Và t của mat chỉ là một hoạt động cho transpose. 313 00:18:38,110 --> 00:18:42,590 Vì vậy, tôi đang nói lấy transpose trong ma trận, nhân nó bởi ma trận 314 00:18:42,590 --> 00:18:43,090 chính nó. 315 00:18:43,090 --> 00:18:45,006 Và sau đó nó sẽ trả lại cho bạn 3 khác 316 00:18:45,006 --> 00:18:50,700 3 ma trận hiển thị các sản phẩm mà bạn muốn. 317 00:18:50,700 --> 00:18:53,750 >> Và đó là ma trận. 318 00:18:53,750 --> 00:18:56,020 Dưới đây là những gì được gọi là một khung dữ liệu. 319 00:18:56,020 --> 00:19:00,780 Một khung dữ liệu bạn có thể nghĩ như một ma trận, nhưng mỗi cột chính 320 00:19:00,780 --> 00:19:02,990 là có được một kiểu khác nhau. 321 00:19:02,990 --> 00:19:07,320 >> Vì vậy, những gì là thực sự mát về dữ liệu khung là trong phân tích dữ liệu chính nó, 322 00:19:07,320 --> 00:19:11,260 bạn sẽ có tất cả điều này dữ liệu không đồng nhất và tất cả các thực sự 323 00:19:11,260 --> 00:19:15,640 thứ lộn xộn nơi từng cột mình có thể có nhiều loại khác nhau. 324 00:19:15,640 --> 00:19:21,460 Vì vậy, ở đây tôi đang nói tạo ra một khung dữ liệu, làm ints 1-3, 325 00:19:21,460 --> 00:19:24,750 và sau đó cũng có một vector nhân vật. 326 00:19:24,750 --> 00:19:28,470 Vì vậy, tôi có thể chỉ mục thông qua mỗi cột 327 00:19:28,470 --> 00:19:30,930 và sau đó tôi sẽ có được giá trị bản thân. 328 00:19:30,930 --> 00:19:34,370 Và bạn cũng có thể làm một số loại các hoạt động trên các khung dữ liệu. 329 00:19:34,370 --> 00:19:38,040 Và hầu hết thời gian khi bạn làm phân tích dữ liệu hoặc một số loại 330 00:19:38,040 --> 00:19:42,042 của tiền xử lý, bạn sẽ có làm việc với các cấu trúc dữ liệu 331 00:19:42,042 --> 00:19:44,250 trong đó mỗi cột sẽ là một kiểu khác nhau. 332 00:19:44,250 --> 00:19:47,880 333 00:19:47,880 --> 00:19:52,970 >> Cuối cùng, vì vậy đây là những chất chỉ bốn đối tượng cần thiết trong R. Danh sách 334 00:19:52,970 --> 00:19:55,820 chỉ sẽ thu thập bất kỳ các đối tượng khác mà bạn muốn. 335 00:19:55,820 --> 00:20:00,130 Vì vậy, nó sẽ lưu trữ này vào một biến mà bạn có thể dễ dàng truy cập. 336 00:20:00,130 --> 00:20:02,370 >> Vì vậy, ở đây, tôi đang tham gia một danh sách. 337 00:20:02,370 --> 00:20:04,460 Tôi đang nói chuyện bằng 3. 338 00:20:04,460 --> 00:20:08,060 Vì vậy, tôi sẽ có một phần tử trong danh sách, và điều này được gọi là công cụ, 339 00:20:08,060 --> 00:20:10,570 và nó sẽ có giá trị 3. 340 00:20:10,570 --> 00:20:13,140 >> Tôi cũng có thể tạo ra một ma trận. 341 00:20:13,140 --> 00:20:17,970 Vì vậy, đây là 1-4 và hàng cuối bằng 2, do đó, một 2 của 2 ma trận. 342 00:20:17,970 --> 00:20:20,270 Cũng trong danh sách và nó được gọi là mat. 343 00:20:20,270 --> 00:20:24,690 moreStuff, một chuỗi ký tự, và thậm chí cả một danh sách của riêng mình. 344 00:20:24,690 --> 00:20:27,710 >> Vì vậy, đây là một danh sách đó là 5 và gấu. 345 00:20:27,710 --> 00:20:30,990 Vì vậy, nó có giá trị 5 và nó có các chuỗi ký tự gấu 346 00:20:30,990 --> 00:20:32,710 và đó là một danh sách bên trong một danh sách. 347 00:20:32,710 --> 00:20:35,965 Vì vậy, bạn có thể có những điều recursive nơi 348 00:20:35,965 --> 00:20:38,230 bạn có một another-- gõ trong vòng loại. 349 00:20:38,230 --> 00:20:41,420 Vì vậy, tương tự như vậy, bạn có thể có một ma trận bên trong ma trận khác và như vậy. 350 00:20:41,420 --> 00:20:44,264 Và một danh sách chỉ là một cách tốt thu thập và tổng hợp 351 00:20:44,264 --> 00:20:45,430 tất cả các đối tượng khác nhau. 352 00:20:45,430 --> 00:20:50,210 353 00:20:50,210 --> 00:20:57,150 >> Và cuối cùng, đây chỉ là giúp đỡ trong trường hợp này chỉ đi qua rất nhanh chóng. 354 00:20:57,150 --> 00:21:01,350 Vì vậy, bất cứ lúc nào bạn đang nhầm lẫn về một số loại chức năng, 355 00:21:01,350 --> 00:21:03,510 bạn có thể làm giúp đỡ của các chức năng đó. 356 00:21:03,510 --> 00:21:07,120 Vì vậy, bạn có thể làm giúp ma trận hoặc một ma trận dấu hỏi. 357 00:21:07,120 --> 00:21:11,430 Và sự giúp đỡ và những dấu hỏi là chỉ là viết tắt cho cùng một điều 358 00:21:11,430 --> 00:21:13,040 vì vậy họ đang bí danh. 359 00:21:13,040 --> 00:21:16,820 >> lm là một chức năng mà chỉ cần thực hiện một mô hình tuyến tính. 360 00:21:16,820 --> 00:21:20,340 Nhưng nếu bạn chỉ cần không có ý tưởng làm thế nào mà công trình, bạn chỉ có thể làm giúp đỡ của lm 361 00:21:20,340 --> 00:21:24,610 và rằng sẽ cung cấp cho bạn một số loại tài liệu 362 00:21:24,610 --> 00:21:27,960 trông giống như một trang người đàn ông trong Unix, nơi 363 00:21:27,960 --> 00:21:34,210 bạn có một mô tả ngắn về những gì có, còn những gì đối số của nó là, 364 00:21:34,210 --> 00:21:38,850 những gì nó trả về, và chỉ cần lời khuyên về cách để sử dụng nó, và một số ví dụ là tốt. 365 00:21:38,850 --> 00:21:41,680 366 00:21:41,680 --> 00:21:52,890 >> Vì vậy, hãy để tôi đi trước và hiển thị một số bản demo của việc sử dụng R. OK. 367 00:21:52,890 --> 00:21:55,470 Vì vậy, tôi đã đi qua rất nhanh chóng chỉ cần các dữ liệu 368 00:21:55,470 --> 00:21:59,440 cấu trúc và một số loại của op-- một số hoạt động. 369 00:21:59,440 --> 00:22:02,960 Dưới đây là một số chức năng. 370 00:22:02,960 --> 00:22:06,750 >> Vì vậy, ở đây tôi chỉ cần đi định nghĩa một hàm. 371 00:22:06,750 --> 00:22:09,970 Vì vậy, tôi cũng đang sử dụng hành phân công ở đây, 372 00:22:09,970 --> 00:22:12,610 và sau đó tôi nói khai báo nó như là một chức năng. 373 00:22:12,610 --> 00:22:14,140 Và nó có giá trị x. 374 00:22:14,140 --> 00:22:18,210 Vì vậy, đây là bất kỳ giá trị mà bạn muốn và tôi sẽ trở lại x chính nó. 375 00:22:18,210 --> 00:22:20,840 Vì vậy, đây là chức năng nhận dạng. 376 00:22:20,840 --> 00:22:23,670 >> Và những gì là thú vị về điều này so với các ngôn ngữ khác 377 00:22:23,670 --> 00:22:26,330 và một người khác ở mức độ thấp ngôn ngữ là x 378 00:22:26,330 --> 00:22:29,350 có thể là bất kì kiểu tự và nó sẽ trả lại loại đó. 379 00:22:29,350 --> 00:22:35,251 Vì vậy, bạn có thể imagine-- vì vậy hãy tôi chỉ cần chạy này một cách nhanh chóng. 380 00:22:35,251 --> 00:22:35,750 Xin lỗi. 381 00:22:35,750 --> 00:22:40,300 >> Vì vậy, có một điều tôi cũng nên đề cập đến là biên tập viên này tôi đang sử dụng 382 00:22:40,300 --> 00:22:41,380 được gọi là rstudio. 383 00:22:41,380 --> 00:22:44,389 Đây là những gì được gọi là một IDE. 384 00:22:44,389 --> 00:22:46,180 Và một điều đó là thực sự tốt đẹp về điều này 385 00:22:46,180 --> 00:22:51,500 là nó kết hợp rất nhiều các những điều bạn muốn làm trong R bởi bản thân 386 00:22:51,500 --> 00:22:53,180 chỉ rất trực quan. 387 00:22:53,180 --> 00:22:55,550 >> Vì vậy, đây là một giao diện điều khiển thông dịch viên. 388 00:22:55,550 --> 00:23:02,160 Vì vậy, tương tự như vậy, bạn cũng có thể có được điều này console liệu chỉ bằng cách làm một R. vốn 389 00:23:02,160 --> 00:23:05,630 Và điều này là chính xác điều tương tự như giao diện điều khiển. 390 00:23:05,630 --> 00:23:12,210 Vì vậy, tôi chỉ có thể làm chức năng id x, x, x. 391 00:23:12,210 --> 00:23:16,130 Và then-- rồi mà sẽ bị phạt bản thân. 392 00:23:16,130 --> 00:23:19,200 393 00:23:19,200 --> 00:23:21,740 >> Vì vậy rstudio là tuyệt vời bởi vì nó có giao diện điều khiển. 394 00:23:21,740 --> 00:23:25,360 Nó cũng có các tài liệu bạn muốn chạy trên. 395 00:23:25,360 --> 00:23:28,629 Và sau đó nó có một số biến mà bạn có thể thấy trong các môi trường. 396 00:23:28,629 --> 00:23:30,420 Và sau đó, nếu bạn có làm lô, sau đó bạn 397 00:23:30,420 --> 00:23:33,730 chỉ có thể nhìn thấy nó ở đây, như trái ngược với quản lý tất cả các cửa sổ khác nhau 398 00:23:33,730 --> 00:23:35,940 của mình. 399 00:23:35,940 --> 00:23:40,530 >> Tôi thực sự sử dụng cá nhân Vim, nhưng tôi cảm thấy như rstudio là tuyệt vời chỉ 400 00:23:40,530 --> 00:23:44,640 để có được một ý tưởng tốt làm thế nào để sử dụng R. Thông thường, 401 00:23:44,640 --> 00:23:47,040 khi bạn đang cố gắng để tìm hiểu một số nhiệm vụ mới, 402 00:23:47,040 --> 00:23:49,590 bạn không muốn để xử lý quá nhiều thứ cùng một lúc. 403 00:23:49,590 --> 00:23:53,120 Vì vậy, R chỉ là một rstudio very-- là một cách rất tốt để học tập R 404 00:23:53,120 --> 00:23:56,760 mà không cần phải đối phó với tất cả những thứ khác. 405 00:23:56,760 --> 00:23:58,600 >> Vì vậy, ở đây tôi đang chạy id hello. 406 00:23:58,600 --> 00:24:00,090 Điều này trả hello. 407 00:24:00,090 --> 00:24:01,740 id 123. 408 00:24:01,740 --> 00:24:04,610 Dưới đây là một vector của các số nguyên. 409 00:24:04,610 --> 00:24:08,620 Vì vậy, tương tự như vậy, bởi vì bạn có thể lấy bất kỳ một số loại giá trị, 410 00:24:08,620 --> 00:24:16,060 bạn có thể làm trở về id của x để nó trả về 1234 và 5. 411 00:24:16,060 --> 00:24:22,210 >> Và hãy để tôi chỉ cho bạn thấy rằng điều này thực sự là một số nguyên. 412 00:24:22,210 --> 00:24:28,800 Và tương tự, nếu bạn làm lớp id x, nó sẽ là số nguyên. 413 00:24:28,800 --> 00:24:34,170 Và sau đó, bạn cũng có thể so sánh hai và đó là TRUE. 414 00:24:34,170 --> 00:24:38,350 Vì vậy, tôi đang kiểm tra nếu id của x bằng equals x và thông báo 415 00:24:38,350 --> 00:24:39,760 mà nó mang lại cho bạn hai TRUEs. 416 00:24:39,760 --> 00:24:44,280 Vì vậy, đây là không nói được hai đối tượng giống hệt nhau, 417 00:24:44,280 --> 00:24:46,845 nhưng mỗi mục trong các vectơ giống hệt nhau. 418 00:24:46,845 --> 00:24:50,000 419 00:24:50,000 --> 00:24:52,090 >> Dưới đây là bounded.compare. 420 00:24:52,090 --> 00:24:58,470 Vì vậy, đây là phức tạp hơn một chút trong đó có một điều kiện if và else 421 00:24:58,470 --> 00:25:00,960 và sau đó phải mất hai tranh luận tại một thời điểm. 422 00:25:00,960 --> 00:25:02,640 Vì vậy, x là kiểu bất kỳ. 423 00:25:02,640 --> 00:25:06,280 Và tôi đang nói điều này số thứ hai là một. 424 00:25:06,280 --> 00:25:08,380 Đây có thể là bất cứ điều gì là tốt. 425 00:25:08,380 --> 00:25:12,490 Nhưng theo mặc định, nó sẽ mất 5 nếu bạn không chỉ định bất cứ điều gì. 426 00:25:12,490 --> 00:25:16,730 >> Vì vậy, ở đây tôi sẽ nói nếu x là lớn hơn một. 427 00:25:16,730 --> 00:25:19,220 Vì vậy, nếu tôi không chỉ định một, nó nói nếu x là lớn hơn 5, 428 00:25:19,220 --> 00:25:20,470 sau đó tôi sẽ trở về TRUE. 429 00:25:20,470 --> 00:25:23,230 khác, tôi sẽ trả về FALSE. 430 00:25:23,230 --> 00:25:24,870 Vì vậy, hãy để tôi đi trước và định nghĩa này. 431 00:25:24,870 --> 00:25:30,600 432 00:25:30,600 --> 00:25:34,550 >> Và bây giờ tôi sẽ đến chạy bounded.compare 3. 433 00:25:34,550 --> 00:25:39,150 Vì vậy, nó nói là 3 ít than-- là 3 lớn hơn 5. 434 00:25:39,150 --> 00:25:41,830 Không, nó không phải như vậy FALSE. 435 00:25:41,830 --> 00:25:46,550 >> Và bounded.compare 3 và tôi sẽ để so sánh nó sử dụng một = 2. 436 00:25:46,550 --> 00:25:50,700 Vì vậy, bây giờ tôi đang nói, bây giờ ta muốn có một là cái gì khác. 437 00:25:50,700 --> 00:25:52,750 Vì vậy, tôi sẽ nói một, bạn sẽ có 2. 438 00:25:52,750 --> 00:25:56,640 >> Tôi có thể làm một trong hai loại này ký hiệu hoặc tôi nói một = 2. 439 00:25:56,640 --> 00:25:58,720 Đây là một dễ đọc hơn trong khi bạn đang 440 00:25:58,720 --> 00:26:01,450 nhìn vào những sự các chức năng phức tạp 441 00:26:01,450 --> 00:26:08,110 mất nhiều arguments-- và điều này có thể có hàng chục oftentimes-- chỉ nói 442 00:26:08,110 --> 00:26:11,140 A bằng 2 là có thể đọc được nhiều hơn cho bạn để sau này trong tương lai 443 00:26:11,140 --> 00:26:13,020 bạn sẽ biết những gì bạn đang làm. 444 00:26:13,020 --> 00:26:17,120 >> Vì vậy, trong trường hợp này, tôi nói là 3 lớn hơn 2. 445 00:26:17,120 --> 00:26:18,270 Có nó là. 446 00:26:18,270 --> 00:26:22,350 Và tương tự như vậy, tôi chỉ có thể loại bỏ này và nói là 3 lớn hơn 2 447 00:26:22,350 --> 00:26:23,440 nơi một = 2. 448 00:26:23,440 --> 00:26:26,230 Và đó cũng là TRUE. 449 00:26:26,230 --> 00:26:26,730 Có? 450 00:26:26,730 --> 00:26:29,670 >> Đung Bạn thực hiện từng dòng? 451 00:26:29,670 --> 00:26:30,670 >> Dustin TRAN: Yes I am. 452 00:26:30,670 --> 00:26:33,900 Vì vậy, những gì tôi đang làm ở đây là lấy văn bản này document-- 453 00:26:33,900 --> 00:26:39,825 và những gì tuyệt vời về rstudio là Tôi chỉ có thể chạy một short-- một phím tắt. 454 00:26:39,825 --> 00:26:41,820 Vì vậy, tôi đang làm Control-Enter. 455 00:26:41,820 --> 00:26:44,850 >> Và sau đó, tôi đang tham gia các dòng trong tài liệu văn bản 456 00:26:44,850 --> 00:26:46,710 và sau đó đưa vào các giao diện điều khiển. 457 00:26:46,710 --> 00:26:50,800 Vì vậy, ở đây tôi đang nói, bounded.compare và tôi đang làm Control-X. 458 00:26:50,800 --> 00:26:52,540 Vì vậy, tôi chỉ có thể làm chạy ở đây là tốt. 459 00:26:52,540 --> 00:26:54,920 Và sau đó mà sẽ đưa các dòng và sau đó đặt nó ở đây. 460 00:26:54,920 --> 00:26:57,900 Và sau đó tương tự như vậy, tôi có thể làm chạy ở đây. 461 00:26:57,900 --> 00:27:04,630 Và sau đó nó sẽ chỉ giữ cho việc xác định các dòng vào giao diện điều khiển như thế. 462 00:27:04,630 --> 00:27:10,690 >> Và nếu bạn cũng nhận thấy sự xoăn niềng răng là có giống như trong cú pháp C. 463 00:27:10,690 --> 00:27:13,910 x-- nếu nếu điều kiện cũng là sẽ sử dụng dấu ngoặc đơn và sau đó 464 00:27:13,910 --> 00:27:15,350 bạn có thể sử dụng khác. 465 00:27:15,350 --> 00:27:17,496 Một số khác là nếu người nào khác. 466 00:27:17,496 --> 00:27:21,440 Vì vậy, đây sẽ là x bằng bằng một ví dụ. 467 00:27:21,440 --> 00:27:24,190 468 00:27:24,190 --> 00:27:26,350 Và sau đó tôi sẽ trả lại một cái gì đó ở đây. 469 00:27:26,350 --> 00:27:29,490 >> Chú ý rằng có hai khác nhau điều ở đây đang xảy ra. 470 00:27:29,490 --> 00:27:34,360 Một là, ở đây tôi chỉ định trả về giá trị TRUE. 471 00:27:34,360 --> 00:27:35,950 Ở đây tôi chỉ nói x. 472 00:27:35,950 --> 00:27:39,970 Vì vậy, R sẽ thường theo mặc định lấy arguments-- cuối cùng 473 00:27:39,970 --> 00:27:43,510 hoặc có những dòng cuối cùng của mã này, và điều đó sẽ được những gì nó trở lại. 474 00:27:43,510 --> 00:27:46,920 Vì vậy, đây là giống nhau điều là làm trở lại x. 475 00:27:46,920 --> 00:27:49,450 476 00:27:49,450 --> 00:27:50,540 >> Và chỉ để cho bạn. 477 00:27:50,540 --> 00:27:54,000 478 00:27:54,000 --> 00:27:57,052 Và sau đó, nó sẽ hoạt động như thế. 479 00:27:57,052 --> 00:27:58,260 Vì vậy, hãy để tôi tiếp tục với điều này. 480 00:27:58,260 --> 00:28:00,630 >> Vì vậy, nếu người nào khác. 481 00:28:00,630 --> 00:28:04,060 Và thực sự, tôi có thể trở lại bất cứ điều gì tôi muốn. 482 00:28:04,060 --> 00:28:06,680 Vì vậy, tôi thậm chí không có để trở Booleans tất cả các thời gian, 483 00:28:06,680 --> 00:28:08,410 Tôi chỉ có thể trở lại một cái gì đó khác. 484 00:28:08,410 --> 00:28:10,670 Vì vậy, tôi có thể trở lại làm con gấu. 485 00:28:10,670 --> 00:28:12,989 >> Vì vậy, nếu x bằng bằng một, nó sẽ trả lại con gấu. 486 00:28:12,989 --> 00:28:14,530 Nếu không, nó sẽ trả về TRUE. 487 00:28:14,530 --> 00:28:19,310 Tôi cũng có thể làm một vector hoặc thực sự bất cứ điều gì. 488 00:28:19,310 --> 00:28:22,210 >> Và thông thường trong tĩnh ngôn ngữ đánh máy, 489 00:28:22,210 --> 00:28:23,840 bạn phải chỉ định một loại ở đây. 490 00:28:23,840 --> 00:28:25,750 Và nhận thấy rằng nó chỉ có thể là bất cứ điều gì. 491 00:28:25,750 --> 00:28:32,400 Và R là đủ thông minh mà nó sẽ chỉ làm điều này và nó sẽ làm việc tốt. 492 00:28:32,400 --> 00:28:33,620 >> Vì vậy, hãy để tôi xác định điều này. 493 00:28:33,620 --> 00:28:39,460 494 00:28:39,460 --> 00:28:41,230 Unexpected-- oh xin lỗi. 495 00:28:41,230 --> 00:28:44,336 Nó phải là một cú đúp xoăn ở đây. 496 00:28:44,336 --> 00:28:44,836 OK. 497 00:28:44,836 --> 00:28:45,336 Cool. 498 00:28:45,336 --> 00:28:52,580 499 00:28:52,580 --> 00:28:54,530 Được rồi. 500 00:28:54,530 --> 00:28:58,250 Vì vậy, bây giờ hãy so sánh 3 và một bằng 3. 501 00:28:58,250 --> 00:29:01,860 Vì vậy, nó nên return-- yeah-- gấu giá trị. 502 00:29:01,860 --> 00:29:06,740 >> Vì vậy, bây giờ là một điều chung chung hơn là như những gì về cấu trúc dữ liệu khác. 503 00:29:06,740 --> 00:29:09,110 Vì vậy, bạn có chức năng này. 504 00:29:09,110 --> 00:29:15,360 Điều này sẽ làm việc trên bất kỳ loại có giá trị như 3 hoặc bất kỳ số, 505 00:29:15,360 --> 00:29:17,500 nói cách khác, đôi. 506 00:29:17,500 --> 00:29:19,330 >> Nhưng những gì về một cái gì đó giống như một vector. 507 00:29:19,330 --> 00:29:27,750 Vì vậy, những gì sẽ xảy ra nếu bạn do-- nên tôi sẽ gán val, nói, 4-6. 508 00:29:27,750 --> 00:29:31,640 Vì vậy, nếu tôi trở lại này, này là một vector từ 4, 5, 6. 509 00:29:31,640 --> 00:29:34,935 >> Bây giờ chúng ta hãy xem những gì sẽ xảy ra nếu tôi làm bounded.compare val. 510 00:29:34,935 --> 00:29:37,680 511 00:29:37,680 --> 00:29:42,450 Vì vậy, điều này sẽ cung cấp cho bạn 15 năm 1251. 512 00:29:42,450 --> 00:29:46,440 Vì vậy, nói cách khác, nó nói nếu bạn nhìn vào tình trạng này 513 00:29:46,440 --> 00:29:50,040 do đó, nó nói x là ít hơn một hoặc một cái gì đó. 514 00:29:50,040 --> 00:29:51,880 Vì vậy, điều này là hơi khó hiểu bởi vì bây giờ 515 00:29:51,880 --> 00:29:53,379 bạn chỉ không biết những gì đang xảy ra. 516 00:29:53,379 --> 00:29:58,690 Vì vậy, tôi đoán một điều đó là thực sự tốt về chỉ cần cố gắng để gỡ lỗi 517 00:29:58,690 --> 00:30:04,600 là bạn chỉ có thể làm val lớn hơn một và xem những gì xảy ra ở đó. 518 00:30:04,600 --> 00:30:09,720 >> Vì vậy val-- một là theo mặc định 5 nên hãy chỉ val lớn hơn 5. 519 00:30:09,720 --> 00:30:14,280 Vì vậy, đây là một vector FALSE FALSE TRUE. 520 00:30:14,280 --> 00:30:17,206 Vì vậy, bây giờ khi bạn đang tìm kiếm này, nó sẽ nói nếu, 521 00:30:17,206 --> 00:30:20,080 và sau đó nó sẽ cung cấp cho bạn này là một vector của FALSE FALSE TRUE. 522 00:30:20,080 --> 00:30:23,450 >> Vì vậy, khi bạn vượt qua điều này vào R, R không có ý tưởng những gì bạn đang làm. 523 00:30:23,450 --> 00:30:26,650 Bởi vì họ hy vọng một đơn giá trị, mà là một Boolean, và bây giờ 524 00:30:26,650 --> 00:30:29,420 bạn đang đem lại cho nó một vector của các phép toán luận. 525 00:30:29,420 --> 00:30:31,970 Vì vậy, theo mặc định, chỉ là R sẽ nói cái quái gì, 526 00:30:31,970 --> 00:30:35,440 Tôi sẽ cho rằng bạn đang sẽ mất phần tử đầu tiên ở đây. 527 00:30:35,440 --> 00:30:38,320 Vì vậy, tôi sẽ say-- tôi sẽ cho rằng đây là FALSE. 528 00:30:38,320 --> 00:30:40,890 Vì vậy, nó sẽ nói không có, điều này là không đúng. 529 00:30:40,890 --> 00:30:45,246 >> Tương tự như vậy, nó sẽ được val bằng bằng một. 530 00:30:45,246 --> 00:30:47,244 Không, xin lỗi 5. 531 00:30:47,244 --> 00:30:48,910 Và nó cũng sẽ là sai lầm là tốt. 532 00:30:48,910 --> 00:30:52,410 Vì vậy, nó sẽ nói không, nó không phải là TRUE cũng vì vậy nó 533 00:30:52,410 --> 00:30:53,680 sẽ trở lại cuối cùng này. 534 00:30:53,680 --> 00:30:56,420 535 00:30:56,420 --> 00:31:01,360 >> Vì vậy, đây là cả một điều tốt hay xấu một điều, tùy thuộc vào cách bạn xem nó. 536 00:31:01,360 --> 00:31:05,104 Bởi vì khi bạn tạo ra các chức năng này, 537 00:31:05,104 --> 00:31:06,770 bạn không thực sự biết những gì đang xảy ra. 538 00:31:06,770 --> 00:31:10,210 Vì vậy, đôi khi bạn muốn một lỗi, hoặc có thể bạn chỉ muốn có một cảnh báo. 539 00:31:10,210 --> 00:31:12,160 Trong trường hợp này, R không làm điều đó. 540 00:31:12,160 --> 00:31:14,300 Vì vậy, nó thực sự lên đến bạn dựa tắt của những gì 541 00:31:14,300 --> 00:31:17,310 bạn nghĩ rằng các ngôn ngữ nên làm gì trong trường hợp này 542 00:31:17,310 --> 00:31:22,920 nếu bạn vượt qua trong một vector của các phép toán luận khi bạn đang làm một điều kiện if. 543 00:31:22,920 --> 00:31:31,733 >> Vì vậy, chúng ta hãy nói rằng bạn có bản gốc một với nếu người nào khác trở về TRUE và bạn 544 00:31:31,733 --> 00:31:34,190 sẽ trả về FALSE. 545 00:31:34,190 --> 00:31:39,300 Vì vậy, một cách trừu tượng hóa này là để nói tôi 546 00:31:39,300 --> 00:31:41,530 thậm chí không cần điều kiện này. 547 00:31:41,530 --> 00:31:47,220 Một điều tôi có thể làm chỉ là trở về các giá trị bản thân. 548 00:31:47,220 --> 00:31:53,240 Vì vậy, nếu bạn chú ý, nếu bạn làm val là lớn hơn 5, 549 00:31:53,240 --> 00:31:56,350 điều này sẽ trả về một vector FALSE FALSE TRUE. 550 00:31:56,350 --> 00:31:58,850 >> Có lẽ đây là những gì bạn muốn cho bounded.compare. 551 00:31:58,850 --> 00:32:02,940 Bạn muốn trở về một vector của các phép toán luận nơi nó sẽ so sánh mỗi giá trị 552 00:32:02,940 --> 00:32:04,190 cho bản thân. 553 00:32:04,190 --> 00:32:11,165 Vì vậy, bạn chỉ có thể làm bounded.compare chức năng x, a = 5. 554 00:32:11,165 --> 00:32:13,322 555 00:32:13,322 --> 00:32:15,363 Và sau đó, thay vì làm này nếu điều kiện khác, 556 00:32:15,363 --> 00:32:21,430 Tôi chỉ cần đi để trở về x là lớn hơn 5. 557 00:32:21,430 --> 00:32:23,620 Vì vậy, nếu đó là sự thật, sau đó nó sẽ trả về TRUE. 558 00:32:23,620 --> 00:32:26,830 Và sau đó nếu nó không phải, đó là sẽ trả về FALSE. 559 00:32:26,830 --> 00:32:30,880 >> Và điều này sẽ làm việc cho bất kỳ của các cấu trúc. 560 00:32:30,880 --> 00:32:41,450 Vì vậy, tôi có thể bounded.compare c 1 6 hoặc 9 và sau đó tôi sẽ nói một bằng 6, 561 00:32:41,450 --> 00:32:42,799 cho ví dụ. 562 00:32:42,799 --> 00:32:44,840 Và sau đó nó sẽ cung cấp cho bạn các Boolean đúng 563 00:32:44,840 --> 00:32:48,240 vector mà bạn đang thiết kế. 564 00:32:48,240 --> 00:32:50,660 >> Vì vậy, đó chỉ là những chức năng và bây giờ hãy để tôi chỉ 565 00:32:50,660 --> 00:32:54,980 chỉ cho bạn một số hình ảnh tương tác. 566 00:32:54,980 --> 00:32:59,700 Tôi không nghĩ rằng tôi thực sự có Wi-Fi ở đây vì vậy hãy để tôi chỉ cần đi trước 567 00:32:59,700 --> 00:33:01,970 và bỏ qua một điều này tôi đoán. 568 00:33:01,970 --> 00:33:05,260 >> Nhưng có một điều đó là mát mẻ mặc dù là nếu bạn chỉ 569 00:33:05,260 --> 00:33:09,600 muốn thử nghiệm một loạt các lệnh dữ liệu khác nhau, 570 00:33:09,600 --> 00:33:13,320 có một loạt các bộ dữ liệu khác nhau mà đã được cài đặt sẵn vào R. 571 00:33:13,320 --> 00:33:15,770 Vì vậy, một trong số họ là gọi là mống mắt bộ dữ liệu. 572 00:33:15,770 --> 00:33:18,910 Đây là một trong những tốt nhất được biết đến những người thân trong học máy. 573 00:33:18,910 --> 00:33:23,350 Bạn sẽ thường chỉ làm một số loại trường hợp thử nghiệm để xem nếu code của bạn chạy. 574 00:33:23,350 --> 00:33:27,520 Vì vậy, chúng ta hãy kiểm tra iris là gì. 575 00:33:27,520 --> 00:33:33,130 >> Vì vậy, điều này đang xảy ra là một khung dữ liệu. 576 00:33:33,130 --> 00:33:36,000 Và đó là loại dài vì Tôi chỉ cần in ra iris. 577 00:33:36,000 --> 00:33:38,810 Nó in ra toàn bộ điều. 578 00:33:38,810 --> 00:33:42,830 Vì vậy, nó có tất cả các tên gọi khác nhau. 579 00:33:42,830 --> 00:33:45,505 Vì vậy, mống mắt là một bộ sưu tập hoa khác nhau. 580 00:33:45,505 --> 00:33:48,830 Trong trường hợp này, Nó nói bạn loài của nó, 581 00:33:48,830 --> 00:33:54,760 tất cả các độ rộng khác nhau và độ dài của đài hoa và cánh hoa. 582 00:33:54,760 --> 00:33:58,880 >> Và như vậy bình thường, nếu bạn muốn in iris, 583 00:33:58,880 --> 00:34:03,680 Ví dụ, bạn không muốn có nó làm tất cả điều này vì đó có thể đi qua 584 00:34:03,680 --> 00:34:05,190 toàn bộ giao diện điều khiển của bạn. 585 00:34:05,190 --> 00:34:09,280 Vì vậy, có một điều đó là thực sự đẹp là chức năng đầu. 586 00:34:09,280 --> 00:34:12,929 Vì vậy, nếu bạn chỉ cần làm đầu iris, điều này sẽ cung cấp cho bạn 587 00:34:12,929 --> 00:34:17,389 các năm hàng đầu tiên, hoặc sáu tôi đoán. 588 00:34:17,389 --> 00:34:19,909 Và sau đó tốt, bạn chỉ có thể chỉ định ở đây. 589 00:34:19,909 --> 00:34:22,914 Vì vậy 20-- này sẽ cung cấp cho bạn 20 dòng đầu tiên. 590 00:34:22,914 --> 00:34:24,830 Và tôi thực sự đã được loại của ngạc nhiên rằng đây 591 00:34:24,830 --> 00:34:28,770 đã cho tôi sáu vì vậy hãy để tôi đi trước và kiểm tra iris-- hoặc đầu, xin lỗi. 592 00:34:28,770 --> 00:34:31,699 593 00:34:31,699 --> 00:34:34,960 Và ở đây nó sẽ cung cấp cho bạn tài liệu 594 00:34:34,960 --> 00:34:37,960 của những người đứng đầu giá trị nào. 595 00:34:37,960 --> 00:34:40,839 Vì vậy, nó sẽ trả về đầu tiên hoặc cuối cùng của một đối tượng. 596 00:34:40,839 --> 00:34:42,630 Và sau đó tôi sẽ nhìn vào giá trị mặc định. 597 00:34:42,630 --> 00:34:47,340 Và sau đó nó nói mặc định Phương pháp đầu x và n bằng 6L. 598 00:34:47,340 --> 00:34:50,620 Vì vậy, đây trả về sáu yếu tố đầu tiên. 599 00:34:50,620 --> 00:34:55,050 Và tương tự, nếu bạn nhận thấy ở đây, tôi không phải chỉ định n bằng 6. 600 00:34:55,050 --> 00:34:56,840 Theo mặc định nó sử dụng sáu, tôi đoán. 601 00:34:56,840 --> 00:35:00,130 Và sau đó, nếu tôi muốn chỉ định một số giá trị, sau đó tôi có thể xem đó là tốt. 602 00:35:00,130 --> 00:35:02,970 603 00:35:02,970 --> 00:35:10,592 >> Vì vậy, đó là một số lệnh đơn giản và đây là một số khác đó là just-- tốt, 604 00:35:10,592 --> 00:35:12,550 Tôi can-- này là thực sự một chút phức tạp hơn, 605 00:35:12,550 --> 00:35:17,130 nhưng điều này sẽ chỉ mất lớp của từng cột trong bộ dữ liệu iris. 606 00:35:17,130 --> 00:35:20,910 Vì vậy, đây sẽ cho bạn thấy những gì mỗi người trong các cột là về kiểu của chúng. 607 00:35:20,910 --> 00:35:23,665 Vì vậy, chiều dài đài hoa là số, chiều rộng là đài hoa số. 608 00:35:23,665 --> 00:35:26,540 Tất cả các giá trị chỉ số bởi vì bạn có thể nói từ dữ liệu này 609 00:35:26,540 --> 00:35:29,440 cấu trúc này là tất cả sẽ số. 610 00:35:29,440 --> 00:35:34,310 >> Và cột Loài sẽ là một yếu tố. 611 00:35:34,310 --> 00:35:37,270 Vì vậy, thông thường, bạn sẽ nghĩ rằng điều này giống như một chuỗi ký tự. 612 00:35:37,270 --> 00:35:48,830 Nhưng nếu bạn chỉ cần làm irisSpecies, và sau đó tôi sẽ làm đầu 5, 613 00:35:48,830 --> 00:35:51,820 và điều này đang xảy ra để in ra năm giá trị đầu tiên. 614 00:35:51,820 --> 00:35:54,150 >> Và sau đó nhận thấy mức độ này. 615 00:35:54,150 --> 00:35:58,870 Vì vậy, đây là saying-- này là cách R của của việc có các biến phân loại. 616 00:35:58,870 --> 00:36:03,765 Vì vậy, thay vì chỉ có chuỗi ký tự, 617 00:36:03,765 --> 00:36:06,740 nó có mức quy định cụ mà những điều này là. 618 00:36:06,740 --> 00:36:12,450 >> Vì vậy, chúng ta hãy nói irisSpecies 1. 619 00:36:12,450 --> 00:36:17,690 Vì vậy, những gì bạn muốn làm ở đây là tôi Subsetting tới cột Loài này. 620 00:36:17,690 --> 00:36:21,480 Vì vậy, điều này cần có sự Cột loài và sau đó 621 00:36:21,480 --> 00:36:23,820 nó chỉ để có được những yếu tố đầu tiên. 622 00:36:23,820 --> 00:36:27,140 Vì vậy, điều này sẽ cho bạn setosa. 623 00:36:27,140 --> 00:36:28,710 Và nó cũng cung cấp cho bạn mức độ ở đây. 624 00:36:28,710 --> 00:36:32,812 >> Vì vậy, bạn cũng có thể so sánh này để các nhân vật setosa 625 00:36:32,812 --> 00:36:34,645 và điều này sẽ không là TRUE vì một 626 00:36:34,645 --> 00:36:37,940 là một loại khác nhau hơn khác. 627 00:36:37,940 --> 00:36:40,590 Hoặc tôi đoán đó là sự thật vì R thông minh hơn đó. 628 00:36:40,590 --> 00:36:45,420 Và có vẻ lúc này và sau đó nói, có lẽ đây là những gì bạn muốn. 629 00:36:45,420 --> 00:36:51,860 Vì vậy, nó sẽ nói các nhân vật chuỗi setosa là giống như thế này. 630 00:36:51,860 --> 00:37:01,290 Và sau đó tương tự như vậy, bạn có thể cũng chỉ lấy những như vậy. 631 00:37:01,290 --> 00:37:05,580 >> Vì vậy, đó chỉ là một số loại nhanh chóng lệnh của tập dữ liệu. 632 00:37:05,580 --> 00:37:08,030 Vì vậy, đây là một số thăm dò dữ liệu. 633 00:37:08,030 --> 00:37:11,360 Vì vậy, đây là nhiều hơn một chút tham gia với các phân tích dữ liệu. 634 00:37:11,360 --> 00:37:18,340 Và điều này được lấy từ một số bootcamp trong R tại Berkeley. 635 00:37:18,340 --> 00:37:20,790 >> Vì vậy, thư viện nước ngoài. 636 00:37:20,790 --> 00:37:24,880 Vì vậy, tôi sẽ tải trong một thư viện đó được gọi là nước ngoài. 637 00:37:24,880 --> 00:37:32,460 Vì vậy, điều này sẽ cho tôi read.dta nên giả định rằng tôi có số liệu này. 638 00:37:32,460 --> 00:37:39,000 Điều này được lưu trữ trong hiện tại thư mục của giao diện điều khiển của tôi làm việc. 639 00:37:39,000 --> 00:37:42,190 Vì vậy, chúng ta hãy xem những gì các thư mục làm việc là. 640 00:37:42,190 --> 00:37:44,620 >> Vì vậy, đây là thư mục làm việc của tôi. 641 00:37:44,620 --> 00:37:50,040 Và đọc dot dữ liệu, điều này điều, nói rằng tập tin này 642 00:37:50,040 --> 00:37:54,650 nằm trong các thư mục dữ liệu thư mục làm việc hiện tại này. 643 00:37:54,650 --> 00:38:00,520 Và đây không phải là read.dta một lệnh mặc định. 644 00:38:00,520 --> 00:38:02,760 Tôi đoán tôi nạp sẵn vào phòng. 645 00:38:02,760 --> 00:38:04,750 IEI cho rằng tôi nạp này đã. 646 00:38:04,750 --> 00:38:08,115 >> Nhưng như vậy không phải là đi read.dta là một lệnh mặc định. 647 00:38:08,115 --> 00:38:11,550 Và đó là lý do tại sao bạn sẽ có để tải trong thư viện này package-- 648 00:38:11,550 --> 00:38:14,500 gói này được gọi là nước ngoài. 649 00:38:14,500 --> 00:38:16,690 Và nếu bạn không có gói, tôi nghĩ 650 00:38:16,690 --> 00:38:19,180 nước ngoài là một trong những người xây dựng trong. 651 00:38:19,180 --> 00:38:31,150 Nếu không, bạn cũng có thể làm install.packages 652 00:38:31,150 --> 00:38:33,180 và điều này sẽ cài đặt các gói phần mềm. 653 00:38:33,180 --> 00:38:36,878 Và điều này sẽ cung cấp cho bạn R. Uh, không. 654 00:38:36,878 --> 00:38:39,830 655 00:38:39,830 --> 00:38:43,140 Và sau đó tôi chỉ cần đi để ngăn chặn điều này vì tôi đã có nó. 656 00:38:43,140 --> 00:38:46,920 >> Nhưng những gì thực sự tốt đẹp về R là việc quản lý gói 657 00:38:46,920 --> 00:38:48,510 hệ thống là rất thanh lịch. 658 00:38:48,510 --> 00:38:52,470 Bởi vì nó sẽ lưu trữ tất cả mọi thứ thực sự độc đáo cho bạn. 659 00:38:52,470 --> 00:38:59,780 Vì vậy, trong trường hợp này, nó sẽ lưu trữ nó vào, tôi tin rằng, thư viện này ở đây. 660 00:38:59,780 --> 00:39:02,390 >> Vì vậy, bất cứ lúc nào bạn muốn cài đặt gói mới, 661 00:39:02,390 --> 00:39:04,980 nó chỉ đơn giản như làm install.packages 662 00:39:04,980 --> 00:39:07,500 và R sẽ quản lý tất cả các gói cho bạn. 663 00:39:07,500 --> 00:39:12,900 Vì vậy, bạn không cần phải làm một cái gì đó trong Python, nơi bạn có gói bên ngoài 664 00:39:12,900 --> 00:39:15,330 quản lý như giấy Anaconda nơi bạn 665 00:39:15,330 --> 00:39:18,310 doing-- bạn cài đặt gói bên ngoài của Python 666 00:39:18,310 --> 00:39:20,940 và sau đó bạn cố gắng để chạy chúng mình. 667 00:39:20,940 --> 00:39:22,210 Vì vậy, đây thực sự là cách tốt đẹp. 668 00:39:22,210 --> 00:39:25,590 >> Và install.packages yêu cầu internet. 669 00:39:25,590 --> 00:39:31,950 Phải mất nó từ một máy chủ và rằng kho 670 00:39:31,950 --> 00:39:33,960 thu thập tất cả các gói có tên Cran. 671 00:39:33,960 --> 00:39:40,690 Và bạn có thể chỉ định loại gương bạn muốn tải về các gói. 672 00:39:40,690 --> 00:39:43,420 >> Vì vậy, ở đây tôi dùng dữ liệu này. 673 00:39:43,420 --> 00:39:46,240 Tôi đọc nó trong việc sử dụng chức năng này. 674 00:39:46,240 --> 00:39:49,360 Vì vậy, hãy để tôi đi trước và làm điều đó. 675 00:39:49,360 --> 00:39:52,900 >> Vì vậy, chúng ta hãy giả định rằng bạn có bộ dữ liệu này 676 00:39:52,900 --> 00:39:55,550 và bạn đã hoàn toàn không biết nó là gì. 677 00:39:55,550 --> 00:39:58,560 Và điều này thực sự đi lên khá thường xuyên trong ngành công nghiệp 678 00:39:58,560 --> 00:40:00,910 nơi bạn chỉ cần có những tấn và nhiều thứ lộn xộn 679 00:40:00,910 --> 00:40:02,890 và họ đang vô cùng không có nhãn. 680 00:40:02,890 --> 00:40:06,380 Vì vậy, ở đây tôi có điều này dataset và tôi không biết 681 00:40:06,380 --> 00:40:08,400 những gì nó là như vậy tôi chỉ hiện để kiểm tra xem nó ra. 682 00:40:08,400 --> 00:40:10,620 >> Vì vậy, tôi sẽ làm gì đầu tiên. 683 00:40:10,620 --> 00:40:14,190 Vì vậy, tôi kiểm tra đầu tiên sáu cột của những dữ liệu này là. 684 00:40:14,190 --> 00:40:21,730 Vì vậy, đây là nhà nước, pres04, và sau đó tất cả các loại khác nhau của cột. 685 00:40:21,730 --> 00:40:25,612 Và điều thú vị ở đây, tôi đoán, là bạn 686 00:40:25,612 --> 00:40:27,945 sẽ giả định rằng điều này có vẻ như một số loại của cuộc bầu cử. 687 00:40:27,945 --> 00:40:30,482 688 00:40:30,482 --> 00:40:32,190 Và tôi đoán chỉ từ nhìn vào các tập tin 689 00:40:32,190 --> 00:40:41,070 tên này là một số loại bộ sưu tập các dữ liệu về các ứng cử viên hoặc cử tri 690 00:40:41,070 --> 00:40:44,920 người bình chọn cho Chủ tịch cụ thể hoặc ứng cử viên tổng thống 691 00:40:44,920 --> 00:40:46,550 cho các cuộc bầu cử năm 2004. 692 00:40:46,550 --> 00:40:52,920 >> Vì vậy, đây là giá trị 1, 2 vì vậy một cách để lưu trữ 693 00:40:52,920 --> 00:40:56,540 các ứng cử viên tổng thống là tên của họ. 694 00:40:56,540 --> 00:40:59,780 Trong trường hợp này, nó trông giống như họ giá trị chỉ số nguyên. 695 00:40:59,780 --> 00:41:04,030 Vì vậy, năm 2004, đó là Bush so với Kerry tôi tin. 696 00:41:04,030 --> 00:41:09,010 Và bây giờ, chúng ta hãy nói rằng bạn không biết dù 1 tương ứng với Bush hoặc 2 697 00:41:09,010 --> 00:41:11,703 tương ứng với Kerry hay và vv và vv, phải không? 698 00:41:11,703 --> 00:41:15,860 >> Và đây là, chỉ với tôi, một vấn đề khá phổ biến. 699 00:41:15,860 --> 00:41:18,230 Vì vậy, những gì bạn có thể làm gì trong trường hợp này? 700 00:41:18,230 --> 00:41:20,000 Vì vậy, hãy kiểm tra tất cả những thứ khác. 701 00:41:20,000 --> 00:41:22,790 >> nhà nước, tôi giả định này đến từ các quốc gia khác nhau. 702 00:41:22,790 --> 00:41:25,100 partyid, thu nhập. 703 00:41:25,100 --> 00:41:27,710 Hãy nhìn vào partyid. 704 00:41:27,710 --> 00:41:32,800 Vì vậy, có một điều bạn có thể làm là nhìn nhau của các quan sát 705 00:41:32,800 --> 00:41:36,250 rằng có một partyid của đảng Cộng hòa hay Đảng Dân chủ hoặc một cái gì đó. 706 00:41:36,250 --> 00:41:38,170 Vì vậy, chúng ta hãy nhìn vào những gì là partyid. 707 00:41:38,170 --> 00:41:41,946 >> Vì vậy, tôi sẽ mất dat và sau đó tôi sẽ 708 00:41:41,946 --> 00:41:47,960 để làm ký hiệu đô la này điều hành mà tôi đã làm trước đó 709 00:41:47,960 --> 00:41:50,770 và điều này sẽ tập hợp con để cột đó. 710 00:41:50,770 --> 00:41:57,760 Và sau đó tôi sẽ đứng đầu này trong 20, chỉ để nhìn thấy điều này như thế nào. 711 00:41:57,760 --> 00:42:00,170 >> Vì vậy, đây chỉ là một bó của NA. 712 00:42:00,170 --> 00:42:02,800 Vì vậy, nói cách khác, bạn có thiếu dữ liệu về những chàng trai. 713 00:42:02,800 --> 00:42:08,100 Nhưng bạn cũng nhận thấy điều này dat partyid là một yếu tố 714 00:42:08,100 --> 00:42:10,030 vì vậy điều này cung cấp cho bạn loại khác nhau. 715 00:42:10,030 --> 00:42:14,170 Vì vậy, nói cách khác, có thể mất partyid Đảng Dân chủ, đảng Cộng hòa, độc lập, 716 00:42:14,170 --> 00:42:16,640 hay cái gì khác. 717 00:42:16,640 --> 00:42:23,940 >> Vì vậy, chúng ta hãy đi trước và chúng ta hãy xem ai trong số những is-- oh, OK. 718 00:42:23,940 --> 00:42:28,480 Vì vậy, tôi sẽ tập hợp con để partyid và sau đó 719 00:42:28,480 --> 00:42:32,780 nhìn vào những người thân mà Đảng Dân chủ, cho ví dụ. 720 00:42:32,780 --> 00:42:37,150 Điều này sẽ cung cấp cho bạn một Boolean, một Boolean lớn TRUEs và FALSEs. 721 00:42:37,150 --> 00:42:41,630 >> Và bây giờ, chúng ta hãy nói rằng tôi muốn để tập hợp để các chàng trai. 722 00:42:41,630 --> 00:42:47,260 Vì vậy, đây là sẽ mất dat của tôi và tập con để bất cứ quan sát 723 00:42:47,260 --> 00:42:48,910 có equals partyid bằng đảng Dân chủ. 724 00:42:48,910 --> 00:42:52,830 725 00:42:52,830 --> 00:42:55,180 Và điều này là khá dài vì có rất nhiều người trong số họ. 726 00:42:55,180 --> 00:42:59,060 Vì vậy, bây giờ, tôi sẽ đầu này trong 20. 727 00:42:59,060 --> 00:43:05,690 728 00:43:05,690 --> 00:43:11,270 >> Và như bạn thấy, bằng equals là thú vị trong đó bạn 729 00:43:11,270 --> 00:43:13,250 already-- bạn cũng bao gồm các NA. 730 00:43:13,250 --> 00:43:19,010 Vì vậy, trong trường hợp này, bạn vẫn có thể không nhận được bất kỳ thông tin bởi vì bây giờ bạn có NA 731 00:43:19,010 --> 00:43:22,650 và bạn chỉ muốn xem ai trong họ quan sát tương ứng với đảng Dân chủ 732 00:43:22,650 --> 00:43:24,670 và không những mất giá trị bản thân. 733 00:43:24,670 --> 00:43:27,680 Vì vậy, làm thế nào bạn sẽ thoát khỏi những NA? 734 00:43:27,680 --> 00:43:36,410 >> Vì vậy, ở đây tôi chỉ sử dụng các phím lên trên của tôi con trỏ và sau đó nói rằng di chuyển xung quanh. 735 00:43:36,410 --> 00:43:39,778 Và sau đó ở đây tôi chỉ cần đi nói is.na datpartyid. 736 00:43:39,778 --> 00:43:48,970 737 00:43:48,970 --> 00:43:52,720 Vì vậy, đây và và sẽ mất hai vectơ Boolean khác nhau 738 00:43:52,720 --> 00:43:57,160 và nói rằng nó sẽ là TRUE và FALSE ví dụ. 739 00:43:57,160 --> 00:43:59,190 Vì vậy, nó sẽ làm phần khôn ngoan này. 740 00:43:59,190 --> 00:44:02,910 Vì vậy, ở đây tôi đang nói take các khung dữ liệu, tập hợp con 741 00:44:02,910 --> 00:44:10,170 những cái mà tương ứng với đảng Dân chủ, và loại bỏ bất kỳ của họ mà không phải là NA. 742 00:44:10,170 --> 00:44:13,540 >> Vì vậy will-- này nên cung cấp cho bạn một cái gì đó. 743 00:44:13,540 --> 00:44:16,540 744 00:44:16,540 --> 00:44:17,600 Hãy xem is.na. 745 00:44:17,600 --> 00:44:24,670 746 00:44:24,670 --> 00:44:27,690 Hãy thử datpartyid is.na. 747 00:44:27,690 --> 00:44:36,290 748 00:44:36,290 --> 00:44:45,290 Và điều này sẽ cho you-- sorry-- chỉ là một vector Boolean. 749 00:44:45,290 --> 00:44:49,260 Và sau đó, bởi vì nó quá dài, Tôi sẽ tập hợp con đến 20. 750 00:44:49,260 --> 00:44:49,760 OK. 751 00:44:49,760 --> 00:44:51,570 Vì vậy, điều này sẽ làm việc. 752 00:44:51,570 --> 00:44:54,700 >> Và điều này cũng sẽ được TRUEs. 753 00:44:54,700 --> 00:45:01,830 Ah, do lỗi của tôi ở đây là I'm-- tôi sử dụng C ++ và R thay thế cho nhau vì vậy tôi làm 754 00:45:01,830 --> 00:45:03,590 sai lầm này tất cả các thời gian. 755 00:45:03,590 --> 00:45:05,807 Các nhà điều hành và là thực sự là một trong những bạn muốn. 756 00:45:05,807 --> 00:45:08,140 Bạn không muốn sử dụng hai ampersands, chỉ một duy nhất. 757 00:45:08,140 --> 00:45:14,970 758 00:45:14,970 --> 00:45:17,010 OK. 759 00:45:17,010 --> 00:45:18,140 >> Vì vậy, chúng ta hãy xem. 760 00:45:18,140 --> 00:45:20,930 761 00:45:20,930 --> 00:45:23,920 Vì vậy, chúng tôi subsetted đến partyid nơi họ thuộc đảng Dân chủ 762 00:45:23,920 --> 00:45:25,300 và họ không mất giá trị. 763 00:45:25,300 --> 00:45:27,690 Và bây giờ chúng ta hãy nhìn vào những người thân mà họ đã bỏ phiếu cho. 764 00:45:27,690 --> 00:45:31,530 Vì vậy, nó có vẻ như hầu hết của họ bình chọn cho 1. 765 00:45:31,530 --> 00:45:36,090 Vì vậy, tôi sẽ đi trước và nói rằng đó là Kerry. 766 00:45:36,090 --> 00:45:39,507 >> Và tương tự, bạn có thể cũng đi đến Cộng hòa 767 00:45:39,507 --> 00:45:41,090 và hy vọng, điều này sẽ cung cấp cho bạn 2. 768 00:45:41,090 --> 00:45:49,730 769 00:45:49,730 --> 00:45:51,770 Nó chỉ là một loạt các cột khác nhau. 770 00:45:51,770 --> 00:45:53,070 Và quả thực, đó là 2. 771 00:45:53,070 --> 00:45:55,750 Vì vậy, tất cả các partyid đảng Cộng hòa, hầu hết trong số họ đang bỏ phiếu cho 2. 772 00:45:55,750 --> 00:45:58,390 >> Vì vậy, nó có vẻ như, chỉ bằng cách này, 773 00:45:58,390 --> 00:46:00,600 Cộng hòa là có được một very-- hoặc partyid 774 00:46:00,600 --> 00:46:02,790 là có được một rất yếu tố lớn trong việc xác định 775 00:46:02,790 --> 00:46:05,420 ứng cử viên nào họ sẽ bỏ phiếu cho. 776 00:46:05,420 --> 00:46:07,120 Và điều này rõ ràng là đúng nói chung. 777 00:46:07,120 --> 00:46:10,139 Và điều này phù hợp với bạn trực giác, tất nhiên. 778 00:46:10,139 --> 00:46:11,930 Vì vậy, nó có vẻ như tôi chạy ra khỏi thời gian để 779 00:46:11,930 --> 00:46:17,040 hãy để tôi chỉ cần đi trước và hiển thị một số hình ảnh nhanh chóng. 780 00:46:17,040 --> 00:46:21,120 Vì vậy, đây là một cái gì đó hơi phức tạp hơn với hình dung. 781 00:46:21,120 --> 00:46:26,450 Vì vậy, trong trường hợp này, điều này là rất phân tích đơn giản chỉ kiểm tra những gì 782 00:46:26,450 --> 00:46:28,500 Chủ tịch '04 là. 783 00:46:28,500 --> 00:46:33,920 >> Vì vậy, trong trường hợp này, chúng ta hãy nói rằng bạn muốn trả lời câu hỏi này. 784 00:46:33,920 --> 00:46:38,540 Vì vậy, giả sử chúng ta muốn biết cuộc bỏ phiếu hành vi trong cuộc bầu cử tổng thống năm 2004 785 00:46:38,540 --> 00:46:41,170 và làm thế nào mà thay đổi theo chủng tộc. 786 00:46:41,170 --> 00:46:44,380 Vì vậy, không chỉ làm bạn muốn thấy những hành vi bỏ phiếu, 787 00:46:44,380 --> 00:46:47,860 nhưng bạn muốn tập hợp con của mỗi chủng tộc và loại tóm tắt đó. 788 00:46:47,860 --> 00:46:50,770 Và bạn chỉ có thể nói bởi ký hiệu phức tạp này 789 00:46:50,770 --> 00:46:52,580 rằng đây là loại nhận mơ hồ. 790 00:46:52,580 --> 00:46:56,390 >> Vì vậy, một trong những nâng cao hơn R gói đó cũng là loại gần đây 791 00:46:56,390 --> 00:47:00,070 được gọi là dplyr. 792 00:47:00,070 --> 00:47:03,060 Vì vậy, nó là một trong những điều này ngay tại đây. 793 00:47:03,060 --> 00:47:08,080 Và ggplot2 ggg-- chỉ là một tốt đẹp cách làm hình tượng tốt hơn 794 00:47:08,080 --> 00:47:09,400 hơn so với một built-in. 795 00:47:09,400 --> 00:47:11,108 >> Vì vậy, tôi sẽ nạp hai thư viện này. 796 00:47:11,108 --> 00:47:13,200 797 00:47:13,200 --> 00:47:16,950 Và sau đó, tôi sẽ đi trước và chạy lệnh này. 798 00:47:16,950 --> 00:47:19,050 Bạn chỉ có thể điều trị này như một hộp đen. 799 00:47:19,050 --> 00:47:23,460 >> Có gì xảy ra là ống này điều hành là đi qua trong lập luận này 800 00:47:23,460 --> 00:47:24,110 vào đây. 801 00:47:24,110 --> 00:47:28,070 Vì vậy, tôi nói rằng nhóm của dat chủng tộc và sau đó chủ tịch 04. 802 00:47:28,070 --> 00:47:31,530 Và sau đó, tất cả các lệnh khác được lọc và sau đó tổng hợp 803 00:47:31,530 --> 00:47:34,081 nơi tôi đang làm và đếm sau đó tôi vẽ nó ở đây. 804 00:47:34,081 --> 00:47:39,980 805 00:47:39,980 --> 00:47:42,500 OK mát. 806 00:47:42,500 --> 00:47:44,620 Vì vậy, chúng ta hãy đi trước và thấy điều này như thế nào. 807 00:47:44,620 --> 00:47:52,280 808 00:47:52,280 --> 00:47:57,290 >> Vì vậy, những gì đang xảy ra ở đây tôi là chỉ vẽ mỗi cuộc đua và sau đó 809 00:47:57,290 --> 00:47:59,670 những người thân mà họ đã bỏ phiếu cho. 810 00:47:59,670 --> 00:48:03,492 Và hai những khác nhau giá trị tương ứng là 2 và 1. 811 00:48:03,492 --> 00:48:05,325 Nếu bạn muốn được nhiều hơn thanh lịch, bạn cũng có thể 812 00:48:05,325 --> 00:48:11,770 chỉ cần xác định rằng 2 là Kerry-- hay 2 là Bush, và sau đó là 1 Kerry. 813 00:48:11,770 --> 00:48:13,700 Và bạn cũng có thể có mà trong truyền thuyết của bạn. 814 00:48:13,700 --> 00:48:17,410 >> Và bạn cũng có thể chia nhỏ các đồ thị thanh. 815 00:48:17,410 --> 00:48:19,480 Bởi vì có một điều rằng, nếu bạn thông báo, 816 00:48:19,480 --> 00:48:24,560 này không phải là rất dễ dàng để xác định mà trong hai giá trị lớn. 817 00:48:24,560 --> 00:48:27,920 Vì vậy, có một điều bạn muốn làm là lấy vùng màu xanh này 818 00:48:27,920 --> 00:48:31,855 và chỉ cần di chuyển nó qua đây để bạn có thể so sánh hai phía các bên. 819 00:48:31,855 --> 00:48:34,480 Và tôi đoán đó là một cái gì đó tôi không có thời gian để làm ngay bây giờ, 820 00:48:34,480 --> 00:48:36,660 nhưng mà cũng rất dễ dàng để làm. 821 00:48:36,660 --> 00:48:40,310 Bạn chỉ có thể nhìn vào các trang man của ggplot. 822 00:48:40,310 --> 00:48:47,170 Vì vậy, bạn chỉ có thể làm như ggplot đó và đọc vào trang này người đàn ông. 823 00:48:47,170 --> 00:48:51,920 >> Vì vậy, hãy để tôi một cách nhanh chóng cho bạn một số điều thú. 824 00:48:51,920 --> 00:48:57,610 Hãy đi trước và đi với: chỉ một ứng dụng của máy tính học tập. 825 00:48:57,610 --> 00:49:02,450 Vì vậy, chúng ta hãy nói rằng chúng ta có ba gói vì vậy tôi sẽ để tải các trong. 826 00:49:02,450 --> 00:49:05,500 827 00:49:05,500 --> 00:49:09,170 Vì vậy, điều này chỉ in ra một số thông tin sau khi tôi nạp trong điều. 828 00:49:09,170 --> 00:49:15,220 Vì vậy, tôi nói read.csv này, số liệu này, và bây giờ 829 00:49:15,220 --> 00:49:18,940 Tôi sẽ đi trước và tìm và nhìn thấy những gì bên trong tập dữ liệu này. 830 00:49:18,940 --> 00:49:22,080 >> Vì vậy, 20 quan sát đầu tiên. 831 00:49:22,080 --> 00:49:27,190 Vì vậy, tôi chỉ có X1, X2, và Y. Vì vậy, nó có vẻ giống như một bó của các giá trị 832 00:49:27,190 --> 00:49:31,640 là khác nhau, có lẽ từ 20 đến 80 hoặc hơn. 833 00:49:31,640 --> 00:49:37,700 Và sau đó tương tự cho X2 và sau đó Y này có vẻ là nhãn 0 và 1. 834 00:49:37,700 --> 00:49:49,500 >> Để xác minh điều này, tôi có thể chỉ làm dữ liệu tóm tắt X1. 835 00:49:49,500 --> 00:49:51,660 Và sau đó tương tự cho tất cả các cột khác. 836 00:49:51,660 --> 00:49:55,300 Vì vậy, tóm tắt một cách nhanh chóng chỉ hiển thị cho bạn những giá trị nhanh chóng. 837 00:49:55,300 --> 00:49:56,330 Oh, xin lỗi. 838 00:49:56,330 --> 00:49:58,440 Điều này nên được Y. 839 00:49:58,440 --> 00:50:03,420 >> Vì vậy, trong trường hợp này, cung cấp cho các quantiles, trung vị, đạt cực đại là tốt. 840 00:50:03,420 --> 00:50:07,130 Trong trường hợp này, dataY, bạn có thể nhìn thấy mà nó chỉ sẽ là 0 và 1. 841 00:50:07,130 --> 00:50:10,100 Cũng có nghĩa là đang nói 0.6, chỉ có nghĩa là nó 842 00:50:10,100 --> 00:50:13,380 có vẻ như tôi có hơn 1s 0s. 843 00:50:13,380 --> 00:50:16,160 >> Vì vậy, hãy để tôi đi trước và hiển thị bạn này trông giống như những gì. 844 00:50:16,160 --> 00:50:17,470 Vì vậy, tôi chỉ cần đi âm mưu này. 845 00:50:17,470 --> 00:50:22,852 846 00:50:22,852 --> 00:50:24,636 Chúng ta hãy xem làm thế nào để xóa này. 847 00:50:24,636 --> 00:50:30,492 848 00:50:30,492 --> 00:50:31,468 Oh OK. 849 00:50:31,468 --> 00:50:35,840 850 00:50:35,840 --> 00:50:36,340 OK. 851 00:50:36,340 --> 00:50:37,590 >> Vì vậy, đây là những gì nó trông như thế nào. 852 00:50:37,590 --> 00:50:46,310 Vì vậy, nó có vẻ như tôi đã chỉ định vàng là 0, và sau đó màu đỏ tôi đã chỉ định như 1s. 853 00:50:46,310 --> 00:50:52,190 Vì vậy, đây có vẻ như điểm nhãn và nó 854 00:50:52,190 --> 00:50:56,410 có vẻ như bạn chỉ muốn một số loại clustering trên này. 855 00:50:56,410 --> 00:51:01,020 >> Và hãy để tôi chỉ cần đi trước và hiển thị bạn một số chức năng được xây dựng trong. 856 00:51:01,020 --> 00:51:03,580 Vì vậy, đây là lm. 857 00:51:03,580 --> 00:51:06,060 Vì vậy, đây chỉ là cố gắng để phù hợp với một dòng này. 858 00:51:06,060 --> 00:51:08,640 Vì vậy, cách tốt nhất là gì mà tôi có thể phù hợp với một dòng như vậy 859 00:51:08,640 --> 00:51:14,020 rằng nó sẽ tách tốt nhất loại này clustering. 860 00:51:14,020 --> 00:51:21,790 Và lý tưởng, bạn chỉ có thể xem mà tôi chỉ cần chạy tất cả các lệnh 861 00:51:21,790 --> 00:51:25,450 và sau đó, tôi sẽ trước và thêm các dòng. 862 00:51:25,450 --> 00:51:28,970 >> Vì vậy, điều này có vẻ như đoán tốt nhất. 863 00:51:28,970 --> 00:51:34,150 Nó lấy cái tốt nhất để giảm thiểu các lỗi trong cố gắng để phù hợp với dòng này. 864 00:51:34,150 --> 00:51:40,000 Rõ ràng, điều này có vẻ không vui tốt, nhưng nó không phải là tốt nhất. 865 00:51:40,000 --> 00:51:43,130 Và mô hình tuyến tính, trong Nói chung, sẽ được 866 00:51:43,130 --> 00:51:46,811 thực sự tuyệt vời cho lý thuyết và chỉ cần loại xây dựng cơ bản của máy 867 00:51:46,811 --> 00:51:47,310 học tập. 868 00:51:47,310 --> 00:51:50,330 Nhưng trong thực tế, bạn sẽ muốn làm một cái gì đó chung chung hơn. 869 00:51:50,330 --> 00:51:54,280 >> Vì vậy, bạn chỉ có thể thử chạy một cái gì đó gọi là một mạng lưới thần kinh. 870 00:51:54,280 --> 00:51:57,110 Những điều này là ngày càng phổ biến hơn. 871 00:51:57,110 --> 00:52:00,530 Và họ chỉ làm việc rất tuyệt vời cho các tập dữ liệu lớn. 872 00:52:00,530 --> 00:52:07,080 Vì vậy, trong trường hợp này, chúng tôi chỉ have-- hãy see-- chúng tôi có nrow. 873 00:52:07,080 --> 00:52:09,010 Vì vậy nrow chỉ là nói số hàng. 874 00:52:09,010 --> 00:52:11,790 Vì vậy, trong trường hợp này, tôi có 100 quan sát. 875 00:52:11,790 --> 00:52:15,010 >> Vì vậy, hãy để tôi đi trước và làm cho một mạng lưới thần kinh. 876 00:52:15,010 --> 00:52:18,620 Vì vậy, đây là thực sự tốt đẹp bởi vì tôi chỉ có thể nói nnet 877 00:52:18,620 --> 00:52:21,767 và sau đó tôi thoái Y. Vì vậy, Y là cột đó. 878 00:52:21,767 --> 00:52:23,850 Và sau đó thoái nó trên hai biến khác. 879 00:52:23,850 --> 00:52:27,360 Vì vậy, đây là ngắn hơn ký hiệu cho X1 và X2. 880 00:52:27,360 --> 00:52:29,741 >> Vì vậy, chúng ta hãy đi trước và chạy này. 881 00:52:29,741 --> 00:52:30,240 Oh, xin lỗi. 882 00:52:30,240 --> 00:52:32,260 Tôi cần phải chạy toàn bộ điều này. 883 00:52:32,260 --> 00:52:37,500 Và điều này chỉ được in ký hiệu cho nhanh như thế nào hay không một cách nhanh chóng nó 884 00:52:37,500 --> 00:52:38,460 hội tụ. 885 00:52:38,460 --> 00:52:41,420 Vì vậy, có vẻ như nó đã hội tụ. 886 00:52:41,420 --> 00:52:44,970 Vì vậy, hãy để tôi đi trước và in ấn ra điều này như thế nào. 887 00:52:44,970 --> 00:52:51,260 >> Xem ở đây là hình ảnh và đây là một đường viền cho thấy làm thế nào cũng phù hợp. 888 00:52:51,260 --> 00:52:56,380 Và đây là just-- bạn có thể nhìn thấy này rằng đây là rất, rất đẹp. 889 00:52:56,380 --> 00:52:59,400 Nó thậm chí có thể là overfitting, nhưng bạn cũng có thể 890 00:52:59,400 --> 00:53:03,390 tài khoản này có khác các kỹ thuật như cross-validation. 891 00:53:03,390 --> 00:53:06,180 Và đây cũng được xây dựng vào R. 892 00:53:06,180 --> 00:53:09,170 >> Và hãy để tôi chỉ cho bạn hỗ trợ máy vector. 893 00:53:09,170 --> 00:53:12,470 Đây là một thực sự phổ biến kỹ thuật trong máy học. 894 00:53:12,470 --> 00:53:18,550 Nó rất giống với mô hình tuyến tính, nhưng nó sử dụng những gì được gọi là một phương pháp hạt nhân. 895 00:53:18,550 --> 00:53:22,790 Và chúng ta hãy xem như thế nào mà. 896 00:53:22,790 --> 00:53:26,430 Vì vậy, đây là một trong rất giống với cách cũng một mạng lưới thần kinh thực hiện, 897 00:53:26,430 --> 00:53:27,900 nhưng nó nhiều hơn mượt mà hơn. 898 00:53:27,900 --> 00:53:35,740 Và điều này là dựa tắt của what-- cách SVMs công việc. 899 00:53:35,740 --> 00:53:40,250 >> Vì vậy, đây chỉ là một rất tổng quan nhanh chóng của một số 900 00:53:40,250 --> 00:53:43,822 các chức năng được xây dựng-in, bạn có thể làm và cũng có một số thăm dò dữ liệu. 901 00:53:43,822 --> 00:53:45,905 Vì vậy, hãy để tôi chỉ cần đi trước và quay trở lại các slide. 902 00:53:45,905 --> 00:53:50,290 903 00:53:50,290 --> 00:53:53,670 >> Vì vậy, rõ ràng, đây là không phải là rất toàn diện. 904 00:53:53,670 --> 00:53:57,140 Và điều này thực sự chỉ là một lời trêu ghẹo hiển thị cho bạn những gì bạn thực sự có thể làm trong R. 905 00:53:57,140 --> 00:53:59,100 Vì vậy, nếu bạn chỉ muốn để tìm hiểu thêm, ở đây 906 00:53:59,100 --> 00:54:01,210 là một loạt các nguồn tài nguyên khác nhau. 907 00:54:01,210 --> 00:54:06,890 >> Vì vậy, nếu bạn thích sách giáo khoa hoặc bạn chỉ thích đọc những thứ trực tuyến, 908 00:54:06,890 --> 00:54:09,670 thì đây là một tuyệt vời từng Hadley Wickham, 909 00:54:09,670 --> 00:54:13,010 người cũng tạo ra tất cả các gói thực sự mát mẻ. 910 00:54:13,010 --> 00:54:17,420 Nếu bạn thích video, sau đó Berkeley có bootcamp tuyệt vời 911 00:54:17,420 --> 00:54:21,060 đó là several-- đó là loại dài. 912 00:54:21,060 --> 00:54:24,210 Và nó sẽ dạy cho bạn gần như tất cả mọi thứ bạn muốn biết về R. 913 00:54:24,210 --> 00:54:27,770 >> Và tương tự, có Codeacademy và tất cả các loại khác 914 00:54:27,770 --> 00:54:29,414 website của các tương tác. 915 00:54:29,414 --> 00:54:31,580 Họ cũng đang nhận được common-- hơn và phổ biến hơn. 916 00:54:31,580 --> 00:54:33,749 Vì vậy, đây là rất tương tự như Codeacademy. 917 00:54:33,749 --> 00:54:35,790 Và cuối cùng, nếu bạn chỉ muốn cộng đồng và giúp đỡ, 918 00:54:35,790 --> 00:54:38,800 đây là một loạt các điều bạn có thể đi đến. 919 00:54:38,800 --> 00:54:40,880 Rõ ràng, chúng ta vẫn còn sử dụng danh sách gửi thư, chỉ 920 00:54:40,880 --> 00:54:44,860 giống như hầu hết các khác cộng đồng lập trình ngôn ngữ. 921 00:54:44,860 --> 00:54:47,880 Và #rstats, đây là cộng đồng của chúng tôi Twitter. 922 00:54:47,880 --> 00:54:49,580 Đó là thực tế khá phổ biến. 923 00:54:49,580 --> 00:54:50,850 Và sau đó người sử dụng! 924 00:54:50,850 --> 00:54:52,340 Chỉ là hội nghị của chúng tôi. 925 00:54:52,340 --> 00:54:55,390 >> Và sau đó, tất nhiên, bạn có thể sử dụng tất cả các Q & A những thứ khác, 926 00:54:55,390 --> 00:54:57,680 như Stack Overflow, Google, và sau đó GitHub. 927 00:54:57,680 --> 00:55:00,490 Bởi vì hầu hết các gói và rất nhiều cộng đồng 928 00:55:00,490 --> 00:55:03,420 sẽ được tập trung vào phát triển mã bởi vì nó là mã nguồn mở. 929 00:55:03,420 --> 00:55:05,856 Và nó chỉ thực sự tốt đẹp trên GitHub. 930 00:55:05,856 --> 00:55:08,730 Và cuối cùng, bạn có thể liên hệ với tôi nếu bạn chỉ cần có bất kỳ câu hỏi nhanh chóng. 931 00:55:08,730 --> 00:55:13,530 Vì vậy, bạn có thể tìm thấy tôi trên Twitter ở đây, trang web của tôi, và chỉ email của tôi. 932 00:55:13,530 --> 00:55:17,840 Vì vậy, hy vọng, đó là something-- chỉ là một lời trêu ghẹo ngắn 933 00:55:17,840 --> 00:55:20,900 những gì R là thực sự có khả năng làm. 934 00:55:20,900 --> 00:55:23,990 Và hy vọng, bạn chỉ hãy kiểm tra các liên kết ba 935 00:55:23,990 --> 00:55:25,760 và xem những gì bạn có thể làm nhiều hơn nữa. 936 00:55:25,760 --> 00:55:28,130 Và tôi đoán đó chỉ là về nó. 937 00:55:28,130 --> 00:55:28,630 Cảm ơn. 938 00:55:28,630 --> 00:55:30,780 >> [Vỗ tay] 939 00:55:30,780 --> 00:55:31,968