>> [MUSIC CHƠI]
Dustin TRAN: Hi.
Tên tôi của Dustin.
Vì vậy, tôi sẽ trình bày Phân tích dữ liệu trong R.
Chỉ cần một chút về bản thân mình.
Tôi hiện đang là sinh viên đại học trong Khoa học Kỹ thuật và Ứng dụng.
Tôi nghiên cứu một giao điểm của máy học và thống kê
để phân tích dữ liệu trong R là thực sự cơ bản với những gì
Tôi làm trên cơ sở hàng ngày.
>> Và R là đặc biệt tốt để phân tích dữ liệu
vì nó rất tốt cho prototyping.
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 đề
sẽ nhận thức.
Và vì vậy bạn chỉ muốn có một số ngôn ngữ thực sự tốt mà
chỉ là tốt để làm được xây dựng trong các chức năng, như trái ngược
việc phải đối phó với những thứ ở mức độ thấp.
Vì vậy, ngay từ đầu, tôi chỉ cần đi R để giới thiệu là gì, tại sao
bạn muốn sử dụng nó, và sau đó đi qua vào một số bản demo,
và chỉ cần đi vào từ đó.
>> Vì vậy, R là gì?
R chỉ là một ngôn ngữ phát triển cho tính toán thống kê
và trực quan.
Vì vậy, điều này có nghĩa là nó là một ngôn ngữ rất tuyệt vời
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.
Vì vậy, bạn có tất cả những phân bố xác suất.
Hiện đang có được xây dựng trong các chức năng.
Bạn cũng sẽ phải xuất sắc âm mưu gói.
>> Python là một cạnh tranh ngôn ngữ cho dữ liệu.
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.
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
mà chỉ hoạt động rất tốt.
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.
>> Và ở đây, một loạt các chỉ từ khóa ném vào bạn.
Đó 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
hơn nó sẽ chỉ thay đổi nó trên bay.
Đó là lười biếng vì vậy nó là thông minh về nó như thế nào tính toán.
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--
bất kỳ loại thao tác bạn làm, nó sẽ được dựa tắt chức năng.
>> Vì vậy, các nhà khai thác nhị phân, ví dụ, là chức năng chỉ vốn.
Và tất cả mọi thứ mà bạn sẽ làm được
sẽ được chạy tắt chức năng riêng của mình.
Và sau đó hướng đối tượng là tốt.
>> Vì vậy, đây là một âm mưu XKCD.
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
trình bày, nhưng vì Tôi cảm thấy như thế này thực sự
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
phân tích, vấn đề không phải là rất nhiều cách nhanh chóng nó chạy,
nhưng bao lâu nó sẽ đưa bạn đến chương trình nhiệm vụ.
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.
Điều này là có được một cái gì đó mà bạn
sẽ đối phó với rất nhiều trong loại ngôn ngữ cấp thấp
nơi bạn đang đối phó với lỗi seg, cấp phát bộ nhớ, khởi động ban đầu,
thậm chí làm cho các chức năng được xây dựng trong.
Và công cụ này là tất cả các xử lý rất, rất thanh lịch trong R.
>> Như vậy chỉ cần búa này điểm, các nút cổ chai lớn nhất
là có được nhận thức.
Vì vậy, phân tích dữ liệu là một vấn đề rất khó khăn.
Cho dù bạn đang làm học máy hoặc bạn
chỉ cần làm một số loại thăm dò dữ liệu cơ bản,
bạn không muốn có để có một tài liệu
và sau đó biên dịch một cái gì đó mỗi khi bạn
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
trông như thế nào.
Vì vậy, bạn chỉ muốn có một số giao diện thực sự tốt đẹp
bạn có thể chạy một chức năng đơn giản mà chỉ số để bất cứ điều gì
bạn muốn và chỉ cần chạy nó từ đó.
Và bạn cần miền ngôn ngữ cụ thể cho việc này.
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.
>> 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.
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.
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ệ
dữ liệu về lớn.
Ngoài ra, không chỉ là công nghệ ngành công nghiệp, nhưng thực sự
bất kỳ ngành công nghiệp vì that-- rất nhiều các ngành công nghiệp
là loại cơ bản để cố gắng giải quyết những vấn đề này.
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
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.
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
và nó được phát triển từ đó.
>> Vì vậy, đây là một số chi tiết tính năng của R. Nó có
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.
Vì vậy, bất cứ lúc nào bạn có một vấn đề nào đó, nhất
thời gian R sẽ có mà chức năng cho bạn.
Vì vậy, cho dù bạn muốn xây dựng một số loại máy
thuật toán học được gọi là Random Forest hoặc Quyết định Trees,
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,
R sẽ có điều đó.
>> 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
được rằng sau khi bạn đã hoàn tất mẫu một số loại ngôn ngữ cấp cao,
bạn sẽ ném mà in-- bạn sẽ chỉ là cổng mà qua
một số ngôn ngữ cấp thấp.
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 ++,
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.
Vì vậy, đó là một thực sự tính năng thú vị về R,
nếu bạn thực sự quan tâm điểm tối ưu.
>> Và nó cũng thực sự tốt cho visualizations web.
Vì vậy D3.js, ví dụ, là Tôi đoán hội thảo khác
mà chúng tôi trình bày hôm nay.
Và điều này là thực sự tuyệt vời cho làm visualizations tương tác.
Và D3.js giả định rằng bạn có một số loại dữ liệu để có thể vẽ được
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ó
qua D3.js hoặc thậm chí chỉ cần chạy D3.js lệnh vào R chính nó,
cũng như tất cả các các thư viện khác.
>> 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ó.
Vì vậy, hy vọng, tôi đã thuyết phục bạn một cái gì đó
về chỉ cần cố gắng để xem những gì nó muốn.
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
và những gì bạn thực sự có thể làm được.
>> Vì vậy, đây chỉ là một là loạt các lệnh toán học.
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
để có một loạt các công cụ khác nhau.
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.
>> Vì vậy, đây là 2 cộng 2.
Dưới đây là 2 lần pi.
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.
>> Và sau đó, đây là 7 plus runif, vì vậy runif của 1.
Đây là một chức năng mà tạo một ngẫu nhiên đồng nhất 0-1.
Và sau đó có 3 với sức mạnh của 4.
Có rễ vuông.
>> Có log.
Vì vậy, đăng nhập sẽ làm cơ sở theo cấp số nhân của chính nó.
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ở.
Và sau đó đây là một số lệnh khác.
Vì vậy, bạn có 23 mod 2.
Sau đó, bạn có còn lại.
Sau đó, bạn có khoa học ký hiệu nếu bạn cũng
muốn làm chỉ hơn và những điều phức tạp hơn.
>> Vì vậy, đây là phân công.
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
vì vậy nó ít hơn và sau đó các dấu gạch ngang.
Vì vậy, ở đây tôi chỉ giao 3 đến val biến.
>> Và sau đó tôi đã in ra val và sau đó nó in ra ba.
Theo mặc định trong thông dịch viên R, nó sẽ in những điều trên cho bạn
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ì đó.
Bạn chỉ có thể làm được và val sau đó nó sẽ làm điều đó cho bạn.
>> Ngoài ra, bạn có thể sử dụng bằng từ kỹ thuật như một toán tử gán.
Có tinh tế nhẹ giữa việc sử dụng các mũi tên
điều hành và equals điều hành cho các bài tập.
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.
>> Và ở đây, tôi gán này ký hiệu xiên gọi là 1 tràng 6.
Điều này tạo ra một vector 1-6.
Và điều này thực sự tốt đẹp, vì sau đó bạn chỉ cần gán các vector để val
và rằng hoạt động của chính nó.
>> Vì vậy, điều này đã đi từ một single-- một dữ liệu rất trực quan
cấu trúc của chỉ một đôi một số loại loại vào một vector
và đó sẽ thu thập tất cả các giá trị vô hướng cho bạn.
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.
Một vector là bất kỳ loại bộ sưu tập cùng loại.
Vì vậy, đây là một loạt các vectơ.
>> Vì vậy, đây là số.
Số là cách R nói đôi.
Và do đó, theo mặc định, bất kỳ số sẽ là một đôi.
>> Vì vậy, nếu bạn có c là 1,1, 3, âm 5.7, c là một chức năng.
Đây móc nối cả ba số vào một vector.
Và điều này sẽ be-- vì vậy nếu bạn nhận thấy 3 của chính nó,
thông thường bạn sẽ giả rằng điều này giống như một số nguyên,
nhưng bởi vì tất cả các vector là cùng loại,
đây là một vector của tăng gấp đôi hoặc số trong trường hợp này.
>> rnorm là một chức năng mà tạo variables-- chuẩn tiêu chuẩn
hoặc giá trị chuẩn.
Và tôi xác định hai trong số họ.
Vì vậy, tôi đang làm rnorm 2, gán rằng để devs, và sau đó tôi đã in ra devs.
Vì vậy, đây chỉ là hai giá trị bình thường ngẫu nhiên.
>> Và sau đó ints nếu bạn làm bạn quan tâm đến số nguyên.
Vì vậy, đây là chỉ là về bộ nhớ phân bổ và tiết kiệm dung lượng bộ nhớ.
Vì vậy, bạn sẽ phải nối thêm số của bạn bằng cách thủ đô L.
>> Nói chung, đây là Ký hiệu R của lịch sử
cho một cái gì đó gọi là số nguyên dài.
Vì vậy, hầu hết thời gian, bạn sẽ thấy là đối phó với đôi.
Và nếu bạn đã bao giờ sẽ về sau về tối ưu hóa mã của bạn,
Bạn chỉ có thể thêm các L's sau hoặc trong khi nó
nếu bạn đang như precognitive về những gì bạn sẽ làm các biến này.
>> Vì vậy, đây là một vector nhân vật.
Vì vậy, một lần nữa, tôi concatenating ba chuỗi thời gian này.
Chú ý rằng chuỗi đôi và dây duy nhất là như nhau trong R.
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
sẽ hiển thị chuỗi kép.
Và nếu bạn cũng muốn bao gồm chuỗi tăng gấp đôi hoặc đơn
trong nhân vật của bạn, sau đó bạn có thể hoặc thay thế dây của bạn.
>> Vì vậy marvin cho các Yếu tố thứ hai, đây là
sẽ show-- bạn chỉ có các chuỗi kép
và sau đó là một chuỗi duy nhất vì vậy đây là xen kẽ.
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
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.
Vì vậy, bạn làm các chuỗi kép dấu chéo ngược.
>> Và cuối cùng, chúng tôi cũng có vectơ logic.
Vì vậy, để logical-- TRUE và FALSE, và họ
có được tất cả chữ viết hoa.
Và sau đó, một lần nữa, tôi concatenating họ và sau đó giao cho họ để bools.
Vì vậy bools sẽ chỉ cho bạn TRUE, FALSE, và TRUE.
>> Vì vậy, đây là chỉ mục véc tơ.
Vì vậy, ngay từ đầu, tôi đang tham gia một function--
này được gọi là một sequence-- chuỗi 2-12.
Và tôi đang tham gia một chuỗi bằng 2.
Vì vậy, nó sẽ làm gì 2, 4, 6, 8, 10 và 12.
Và sau đó, tôi lập chỉ mục để có được những yếu tố thứ ba.
>> 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.
Vì vậy, Vals 3 sẽ cung cấp cho bạn phần tử thứ ba.
Đây là loại khác nhau từ khác ngôn ngữ mà nó bắt đầu từ số không.
Vì vậy, trong C hoặc C ++, ví dụ, bạn sẽ nhận được nguyên tố thứ tư.
>> Và đây là Vals 3-5.
Vì vậy, có một điều đó là thực sự thú vị mà bạn
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.
Vì vậy, đây là 3-5.
Vì vậy, tôi là tạo ra một vector 3, 4, và 5 và sau đó
Tôi đang lập chỉ mục để có được thứ ba, yếu tố thứ tư, và thứ năm.
>> Vì vậy, tương tự như vậy, bạn có thể trừu tượng này chỉ cần làm
bất kỳ loại của một vector cung cấp cho bạn lập chỉ mục.
Vì vậy, đây là Vals và sau đó các yếu tố đầu tiên, thứ ba, và thứ sáu.
Và sau đó, nếu bạn muốn để làm một sự bổ sung,
vì vậy bạn chỉ cần làm trừ sau đó và sẽ thấy rằng
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.
Vì vậy, đây sẽ là 4, 8, và 10.
>> Và nếu bạn muốn nhận được thậm chí cao hơn,
bạn có thể nối các vectơ Boolean.
Vì vậy, chỉ số này sẽ cung cấp cho bạn vector Boolean này có độ dài 6.
Vì vậy, đại diện TRUE dấu phẩy 3.
Điều này sẽ lặp lại TRUE ba lần.
Vì vậy, đây sẽ cung cấp cho bạn một vector TRUE, TRUE, TRUE.
>> đại diện FALSE 4-- này sẽ cung cấp cho bạn một vector của FALSE, FALSE, FALSE, FALSE.
Và sau đó c là sẽ tiếp nhau hai phép toán luận với nhau.
Vì vậy, bạn sẽ có được ba TRUEs và sau đó bốn FALSEs.
>> Vì vậy, khi bạn Vals chỉ số, bạn đi để có được TRUE, TRUE, TRUE.
Vì vậy, đó là sẽ nói có, Tôi muốn những ba yếu tố.
Và sau đó FALSE, FALSE, FALSE, FALSE sẽ
để 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.
>> 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
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,
nó phải được lặp lại 3 FALSE.
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 đó
thậm chí nó sẽ không báo lỗi ra.
Nó sẽ chỉ cho bạn giá trị này.
Vì vậy, nó sẽ chỉ cần bỏ qua mà FALSE thứ tư.
>> Vì vậy, đây là phân véc tơ.
Vì vậy set.seed-- này chỉ đặt hạt giống cho các số giả ngẫu nhiên.
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
ba ngẫu nhiên bình thường giá trị, và sau đó nếu bạn
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,
sau đó bạn cũng có được cùng ba normal ngẫu nhiên.
>> Vì vậy, đây là thực sự tốt cho khả năng tái.
Thông thường, khi bạn đang làm một số loại phân tích khoa học,
bạn sẽ muốn thiết lập các hạt giống.
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 đã
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
giá trị mà bạn đã lấy ra là tốt.
>> Và như vậy việc giao vectorized đây là hiển thị các Vals 1-2.
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.
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.
>> Vì vậy, Vals không bằng 0-- chí này cung cấp cho bạn một FALSE vector, FALSE, TRUE
trong trường hợp này.
Và sau đó, nó sẽ nói bất kỳ những chỉ số đó là TRUE,
sau đó nó sẽ gán cho 5.
Vì vậy, nó có các yếu tố thứ ba ở đây và sau đó gán nó cho 5.
>> Và điều này là thực sự tốt đẹp so với các ngôn ngữ cấp thấp
nơi bạn có để sử dụng cho các vòng để làm tất cả những thứ này vectorized
bởi vì nó chỉ là rất trực quan và đó là một single one-liner.
Và tuyệt vời về những gì ký hiệu véc tơ
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
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
và sau đó có nó để làm việc lập chỉ mục tự động.
Và đó sẽ chậm hơn so với làm các loại điều này vectorized
nơi mà nó có thể làm điều đó song song, nơi nó làm nó trong luồng cơ bản.
>> Vì vậy, đây là vector hóa hoạt động.
Vì vậy, tôi là tạo ra một giá trị 1-3, gán rằng để vec1, 3-5, vec2,
thêm chúng với nhau.
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.
>> vec1 lần vec2.
Này nhân hai giá trị thành phần khôn ngoan.
Vì vậy, nó là 1 lần 3, 2 lần 4, và sau đó 3 lần 5.
>> Và sau đó, tương tự bạn cũng có thể làm comparisons-- so sánh logic.
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,
2 là không lớn hơn 4.
Đâ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.
Yeah.
Và vì vậy bạn chỉ có thể làm tất cả các hoạt động đơn giản
vì họ thừa hưởng từ các lớp mình.
>> Vì vậy, đó chỉ là các vector.
Và đó là sắp xếp của các cơ bản nhất R đối tượng vì cho một vector,
bạn có thể xây dựng các đối tượng cao cấp hơn.
>> Vì vậy, đây là một ma trận.
Đ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ó.
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,
hoặc bạn có thể xem xét nó khi mỗi đứa một hàng.
>> 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.
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.
>> 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.
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--
nó sẽ là 1, 2, 3 trong cột đầu tiên,
và sau đó nó sẽ làm 4, 5, 6 trong cột thứ hai,
và sau đó 7, 8, 9 trong cột thứ ba.
>> Và đây là một số khác chức năng thông thường, bạn có thể sử dụng.
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.
Nó sẽ trả về cho bạn một vector của các kích thước.
Vì vậy, trong trường hợp này, vì ma trận của chúng tôi là 3 by 3,
nó sẽ cung cấp cho bạn một vector số đó là 3 3.
>> Và đây chỉ là hiển thị phép nhân ma trận.
Vì vậy, thông thường, nếu bạn chỉ cần làm asterisk-- vậy mat dấu mat--
này là có được hoạt động thành phần khôn ngoan
hoặc những gì được gọi là sản phẩm Hadamard.
Vì vậy, nó sẽ làm mỗi yếu tố thành phần khôn ngoan.
Tuy nhiên, nếu bạn muốn ma trận multiplication--
vì vậy nhân lần hàng đầu tiên cột đầu tiên của ma trận thứ hai
và như vậy bạn sẽ sử dụng on-- hoạt động này phần trăm.
>> Và t của mat chỉ là một hoạt động cho transpose.
Vì vậy, tôi đang nói lấy transpose trong ma trận, nhân nó bởi ma trận
chính nó.
Và sau đó nó sẽ trả lại cho bạn 3 khác
3 ma trận hiển thị các sản phẩm mà bạn muốn.
>> Và đó là ma trận.
Dưới đây là những gì được gọi là một khung dữ liệu.
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
là có được một kiểu khác nhau.
>> 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ó,
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ự
thứ lộn xộn nơi từng cột mình có thể có nhiều loại khác nhau.
Vì vậy, ở đây tôi đang nói tạo ra một khung dữ liệu, làm ints 1-3,
và sau đó cũng có một vector nhân vật.
Vì vậy, tôi có thể chỉ mục thông qua mỗi cột
và sau đó tôi sẽ có được giá trị bản thân.
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.
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
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
trong đó mỗi cột sẽ là một kiểu khác nhau.
>> 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
chỉ sẽ thu thập bất kỳ các đối tượng khác mà bạn muốn.
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.
>> Vì vậy, ở đây, tôi đang tham gia một danh sách.
Tôi đang nói chuyện bằng 3.
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ụ,
và nó sẽ có giá trị 3.
>> Tôi cũng có thể tạo ra một ma trận.
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.
Cũng trong danh sách và nó được gọi là mat.
moreStuff, một chuỗi ký tự, và thậm chí cả một danh sách của riêng mình.
>> Vì vậy, đây là một danh sách đó là 5 và gấu.
Vì vậy, nó có giá trị 5 và nó có các chuỗi ký tự gấu
và đó là một danh sách bên trong một danh sách.
Vì vậy, bạn có thể có những điều recursive nơi
bạn có một another-- gõ trong vòng loại.
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.
Và một danh sách chỉ là một cách tốt thu thập và tổng hợp
tất cả các đối tượng khác nhau.
>> 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.
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,
bạn có thể làm giúp đỡ của các chức năng đó.
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.
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
vì vậy họ đang bí danh.
>> 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.
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
và rằng sẽ cung cấp cho bạn một số loại tài liệu
trông giống như một trang người đàn ông trong Unix, nơi
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à,
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.
>> 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.
Vì vậy, tôi đã đi qua rất nhanh chóng chỉ cần các dữ liệu
cấu trúc và một số loại của op-- một số hoạt động.
Dưới đây là một số chức năng.
>> Vì vậy, ở đây tôi chỉ cần đi định nghĩa một hàm.
Vì vậy, tôi cũng đang sử dụng hành phân công ở đây,
và sau đó tôi nói khai báo nó như là một chức năng.
Và nó có giá trị x.
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ó.
Vì vậy, đây là chức năng nhận dạng.
>> Và những gì là thú vị về điều này so với các ngôn ngữ khác
và một người khác ở mức độ thấp ngôn ngữ là x
có thể là bất kì kiểu tự và nó sẽ trả lại loại đó.
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.
Xin lỗi.
>> 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
được gọi là rstudio.
Đây là những gì được gọi là một IDE.
Và một điều đó là thực sự tốt đẹp về điều này
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
chỉ rất trực quan.
>> Vì vậy, đây là một giao diện điều khiển thông dịch viên.
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
Và điều này là chính xác điều tương tự như giao diện điều khiển.
Vì vậy, tôi chỉ có thể làm chức năng id x, x, x.
Và then-- rồi mà sẽ bị phạt bản thân.
>> Vì vậy rstudio là tuyệt vời bởi vì nó có giao diện điều khiển.
Nó cũng có các tài liệu bạn muốn chạy trên.
Và sau đó nó có một số biến mà bạn có thể thấy trong các môi trường.
Và sau đó, nếu bạn có làm lô, sau đó bạn
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
của mình.
>> 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ỉ
để có được một ý tưởng tốt làm thế nào để sử dụng R. Thông thường,
khi bạn đang cố gắng để tìm hiểu một số nhiệm vụ mới,
bạn không muốn để xử lý quá nhiều thứ cùng một lúc.
Vì vậy, R chỉ là một rstudio very-- là một cách rất tốt để học tập R
mà không cần phải đối phó với tất cả những thứ khác.
>> Vì vậy, ở đây tôi đang chạy id hello.
Điều này trả hello.
id 123.
Dưới đây là một vector của các số nguyên.
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ị,
bạn có thể làm trở về id của x để nó trả về 1234 và 5.
>> 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.
Và tương tự, nếu bạn làm lớp id x, nó sẽ là số nguyên.
Và sau đó, bạn cũng có thể so sánh hai và đó là TRUE.
Vì vậy, tôi đang kiểm tra nếu id của x bằng equals x và thông báo
mà nó mang lại cho bạn hai TRUEs.
Vì vậy, đây là không nói được hai đối tượng giống hệt nhau,
nhưng mỗi mục trong các vectơ giống hệt nhau.
>> Dưới đây là bounded.compare.
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
và sau đó phải mất hai tranh luận tại một thời điểm.
Vì vậy, x là kiểu bất kỳ.
Và tôi đang nói điều này số thứ hai là một.
Đây có thể là bất cứ điều gì là tốt.
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ì.
>> Vì vậy, ở đây tôi sẽ nói nếu x là lớn hơn một.
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,
sau đó tôi sẽ trở về TRUE.
khác, tôi sẽ trả về FALSE.
Vì vậy, hãy để tôi đi trước và định nghĩa này.
>> Và bây giờ tôi sẽ đến chạy bounded.compare 3.
Vì vậy, nó nói là 3 ít than-- là 3 lớn hơn 5.
Không, nó không phải như vậy FALSE.
>> Và bounded.compare 3 và tôi sẽ để so sánh nó sử dụng một = 2.
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.
Vì vậy, tôi sẽ nói một, bạn sẽ có 2.
>> 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.
Đây là một dễ đọc hơn trong khi bạn đang
nhìn vào những sự các chức năng phức tạp
mất nhiều arguments-- và điều này có thể có hàng chục oftentimes-- chỉ nói
A bằng 2 là có thể đọc được nhiều hơn cho bạn để sau này trong tương lai
bạn sẽ biết những gì bạn đang làm.
>> Vì vậy, trong trường hợp này, tôi nói là 3 lớn hơn 2.
Có nó là.
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
nơi một = 2.
Và đó cũng là TRUE.
Có?
>> Đung Bạn thực hiện từng dòng?
>> Dustin TRAN: Yes I am.
Vì vậy, những gì tôi đang làm ở đây là lấy văn bản này document--
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.
Vì vậy, tôi đang làm Control-Enter.
>> Và sau đó, tôi đang tham gia các dòng trong tài liệu văn bản
và sau đó đưa vào các giao diện điều khiển.
Vì vậy, ở đây tôi đang nói, bounded.compare và tôi đang làm Control-X.
Vì vậy, tôi chỉ có thể làm chạy ở đây là tốt.
Và sau đó mà sẽ đưa các dòng và sau đó đặt nó ở đây.
Và sau đó tương tự như vậy, tôi có thể làm chạy ở đây.
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ế.
>> 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.
x-- nếu nếu điều kiện cũng là sẽ sử dụng dấu ngoặc đơn và sau đó
bạn có thể sử dụng khác.
Một số khác là nếu người nào khác.
Vì vậy, đây sẽ là x bằng bằng một ví dụ.
Và sau đó tôi sẽ trả lại một cái gì đó ở đây.
>> Chú ý rằng có hai khác nhau điều ở đây đang xảy ra.
Một là, ở đây tôi chỉ định trả về giá trị TRUE.
Ở đây tôi chỉ nói x.
Vì vậy, R sẽ thường theo mặc định lấy arguments-- cuối cùng
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.
Vì vậy, đây là giống nhau điều là làm trở lại x.
>> Và chỉ để cho bạn.
Và sau đó, nó sẽ hoạt động như thế.
Vì vậy, hãy để tôi tiếp tục với điều này.
>> Vì vậy, nếu người nào khác.
Và thực sự, tôi có thể trở lại bất cứ điều gì tôi muốn.
Vì vậy, tôi thậm chí không có để trở Booleans tất cả các thời gian,
Tôi chỉ có thể trở lại một cái gì đó khác.
Vì vậy, tôi có thể trở lại làm con gấu.
>> Vì vậy, nếu x bằng bằng một, nó sẽ trả lại con gấu.
Nếu không, nó sẽ trả về TRUE.
Tôi cũng có thể làm một vector hoặc thực sự bất cứ điều gì.
>> Và thông thường trong tĩnh ngôn ngữ đánh máy,
bạn phải chỉ định một loại ở đây.
Và nhận thấy rằng nó chỉ có thể là bất cứ điều gì.
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.
>> Vì vậy, hãy để tôi xác định điều này.
Unexpected-- oh xin lỗi.
Nó phải là một cú đúp xoăn ở đây.
OK.
Cool.
Được rồi.
Vì vậy, bây giờ hãy so sánh 3 và một bằng 3.
Vì vậy, nó nên return-- yeah-- gấu giá trị.
>> 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.
Vì vậy, bạn có chức năng này.
Đ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ố,
nói cách khác, đôi.
>> Nhưng những gì về một cái gì đó giống như một vector.
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.
Vì vậy, nếu tôi trở lại này, này là một vector từ 4, 5, 6.
>> 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.
Vì vậy, điều này sẽ cung cấp cho bạn 15 năm 1251.
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
do đó, nó nói x là ít hơn một hoặc một cái gì đó.
Vì vậy, điều này là hơi khó hiểu bởi vì bây giờ
bạn chỉ không biết những gì đang xảy ra.
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
là bạn chỉ có thể làm val lớn hơn một và xem những gì xảy ra ở đó.
>> Vì vậy val-- một là theo mặc định 5 nên hãy chỉ val lớn hơn 5.
Vì vậy, đây là một vector FALSE FALSE TRUE.
Vì vậy, bây giờ khi bạn đang tìm kiếm này, nó sẽ nói nếu,
và sau đó nó sẽ cung cấp cho bạn này là một vector của FALSE FALSE TRUE.
>> 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.
Bởi vì họ hy vọng một đơn giá trị, mà là một Boolean, và bây giờ
bạn đang đem lại cho nó một vector của các phép toán luận.
Vì vậy, theo mặc định, chỉ là R sẽ nói cái quái gì,
Tôi sẽ cho rằng bạn đang sẽ mất phần tử đầu tiên ở đây.
Vì vậy, tôi sẽ say-- tôi sẽ cho rằng đây là FALSE.
Vì vậy, nó sẽ nói không có, điều này là không đúng.
>> Tương tự như vậy, nó sẽ được val bằng bằng một.
Không, xin lỗi 5.
Và nó cũng sẽ là sai lầm là tốt.
Vì vậy, nó sẽ nói không, nó không phải là TRUE cũng vì vậy nó
sẽ trở lại cuối cùng này.
>> 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ó.
Bởi vì khi bạn tạo ra các chức năng này,
bạn không thực sự biết những gì đang xảy ra.
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.
Trong trường hợp này, R không làm điều đó.
Vì vậy, nó thực sự lên đến bạn dựa tắt của những gì
bạn nghĩ rằng các ngôn ngữ nên làm gì trong trường hợp này
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.
>> 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
sẽ trả về FALSE.
Vì vậy, một cách trừu tượng hóa này là để nói tôi
thậm chí không cần điều kiện này.
Một điều tôi có thể làm chỉ là trở về các giá trị bản thân.
Vì vậy, nếu bạn chú ý, nếu bạn làm val là lớn hơn 5,
điều này sẽ trả về một vector FALSE FALSE TRUE.
>> Có lẽ đây là những gì bạn muốn cho bounded.compare.
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ị
cho bản thân.
Vì vậy, bạn chỉ có thể làm bounded.compare chức năng x, a = 5.
Và sau đó, thay vì làm này nếu điều kiện khác,
Tôi chỉ cần đi để trở về x là lớn hơn 5.
Vì vậy, nếu đó là sự thật, sau đó nó sẽ trả về TRUE.
Và sau đó nếu nó không phải, đó là sẽ trả về FALSE.
>> Và điều này sẽ làm việc cho bất kỳ của các cấu trúc.
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,
cho ví dụ.
Và sau đó nó sẽ cung cấp cho bạn các Boolean đúng
vector mà bạn đang thiết kế.
>> Vì vậy, đó chỉ là những chức năng và bây giờ hãy để tôi chỉ
chỉ cho bạn một số hình ảnh tương tác.
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
và bỏ qua một điều này tôi đoán.
>> Nhưng có một điều đó là mát mẻ mặc dù là nếu bạn chỉ
muốn thử nghiệm một loạt các lệnh dữ liệu khác nhau,
có một loạt các bộ dữ liệu khác nhau mà đã được cài đặt sẵn vào R.
Vì vậy, một trong số họ là gọi là mống mắt bộ dữ liệu.
Đâ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.
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.
Vì vậy, chúng ta hãy kiểm tra iris là gì.
>> Vì vậy, điều này đang xảy ra là một khung dữ liệu.
Và đó là loại dài vì Tôi chỉ cần in ra iris.
Nó in ra toàn bộ điều.
Vì vậy, nó có tất cả các tên gọi khác nhau.
Vì vậy, mống mắt là một bộ sưu tập hoa khác nhau.
Trong trường hợp này, Nó nói bạn loài của nó,
tất cả các độ rộng khác nhau và độ dài của đài hoa và cánh hoa.
>> Và như vậy bình thường, nếu bạn muốn in iris,
Ví dụ, bạn không muốn có nó làm tất cả điều này vì đó có thể đi qua
toàn bộ giao diện điều khiển của bạn.
Vì vậy, có một điều đó là thực sự đẹp là chức năng đầu.
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
các năm hàng đầu tiên, hoặc sáu tôi đoán.
Và sau đó tốt, bạn chỉ có thể chỉ định ở đây.
Vì vậy 20-- này sẽ cung cấp cho bạn 20 dòng đầu tiên.
Và tôi thực sự đã được loại của ngạc nhiên rằng đây
đã 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.
Và ở đây nó sẽ cung cấp cho bạn tài liệu
của những người đứng đầu giá trị nào.
Vì vậy, nó sẽ trả về đầu tiên hoặc cuối cùng của một đối tượng.
Và sau đó tôi sẽ nhìn vào giá trị mặc định.
Và sau đó nó nói mặc định Phương pháp đầu x và n bằng 6L.
Vì vậy, đây trả về sáu yếu tố đầu tiên.
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.
Theo mặc định nó sử dụng sáu, tôi đoán.
Và sau đó, nếu tôi muốn chỉ định một số giá trị, sau đó tôi có thể xem đó là tốt.
>> Vì vậy, đó là một số lệnh đơn giản và đây là một số khác đó là just-- tốt,
Tôi can-- này là thực sự một chút phức tạp hơn,
nhưng điều này sẽ chỉ mất lớp của từng cột trong bộ dữ liệu iris.
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.
Vì vậy, chiều dài đài hoa là số, chiều rộng là đài hoa số.
Tất cả các giá trị chỉ số bởi vì bạn có thể nói từ dữ liệu này
cấu trúc này là tất cả sẽ số.
>> Và cột Loài sẽ là một yếu tố.
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ự.
Nhưng nếu bạn chỉ cần làm irisSpecies, và sau đó tôi sẽ làm đầu 5,
và điều này đang xảy ra để in ra năm giá trị đầu tiên.
>> Và sau đó nhận thấy mức độ này.
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.
Vì vậy, thay vì chỉ có chuỗi ký tự,
nó có mức quy định cụ mà những điều này là.
>> Vì vậy, chúng ta hãy nói irisSpecies 1.
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.
Vì vậy, điều này cần có sự Cột loài và sau đó
nó chỉ để có được những yếu tố đầu tiên.
Vì vậy, điều này sẽ cho bạn setosa.
Và nó cũng cung cấp cho bạn mức độ ở đây.
>> Vì vậy, bạn cũng có thể so sánh này để các nhân vật setosa
và điều này sẽ không là TRUE vì một
là một loại khác nhau hơn khác.
Hoặc tôi đoán đó là sự thật vì R thông minh hơn đó.
Và có vẻ lúc này và sau đó nói, có lẽ đây là những gì bạn muốn.
Vì vậy, nó sẽ nói các nhân vật chuỗi setosa là giống như thế này.
Và sau đó tương tự như vậy, bạn có thể cũng chỉ lấy những như vậy.
>> Vì vậy, đó chỉ là một số loại nhanh chóng lệnh của tập dữ liệu.
Vì vậy, đây là một số thăm dò dữ liệu.
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.
Và điều này được lấy từ một số bootcamp trong R tại Berkeley.
>> Vì vậy, thư viện nước ngoài.
Vì vậy, tôi sẽ tải trong một thư viện đó được gọi là nước ngoài.
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.
Đ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.
Vì vậy, chúng ta hãy xem những gì các thư mục làm việc là.
>> Vì vậy, đây là thư mục làm việc của tôi.
Và đọc dot dữ liệu, điều này điều, nói rằng tập tin này
nằm trong các thư mục dữ liệu thư mục làm việc hiện tại này.
Và đây không phải là read.dta một lệnh mặc định.
Tôi đoán tôi nạp sẵn vào phòng.
IEI cho rằng tôi nạp này đã.
>> Nhưng như vậy không phải là đi read.dta là một lệnh mặc định.
Và đó là lý do tại sao bạn sẽ có để tải trong thư viện này package--
gói này được gọi là nước ngoài.
Và nếu bạn không có gói, tôi nghĩ
nước ngoài là một trong những người xây dựng trong.
Nếu không, bạn cũng có thể làm install.packages
và điều này sẽ cài đặt các gói phần mềm.
Và điều này sẽ cung cấp cho bạn R. Uh, không.
Và sau đó tôi chỉ cần đi để ngăn chặn điều này vì tôi đã có nó.
>> Nhưng những gì thực sự tốt đẹp về R là việc quản lý gói
hệ thống là rất thanh lịch.
Bởi vì nó sẽ lưu trữ tất cả mọi thứ thực sự độc đáo cho bạn.
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.
>> Vì vậy, bất cứ lúc nào bạn muốn cài đặt gói mới,
nó chỉ đơn giản như làm install.packages
và R sẽ quản lý tất cả các gói cho bạn.
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
quản lý như giấy Anaconda nơi bạn
doing-- bạn cài đặt gói bên ngoài của Python
và sau đó bạn cố gắng để chạy chúng mình.
Vì vậy, đây thực sự là cách tốt đẹp.
>> Và install.packages yêu cầu internet.
Phải mất nó từ một máy chủ và rằng kho
thu thập tất cả các gói có tên Cran.
Và bạn có thể chỉ định loại gương bạn muốn tải về các gói.
>> Vì vậy, ở đây tôi dùng dữ liệu này.
Tôi đọc nó trong việc sử dụng chức năng này.
Vì vậy, hãy để tôi đi trước và làm điều đó.
>> Vì vậy, chúng ta hãy giả định rằng bạn có bộ dữ liệu này
và bạn đã hoàn toàn không biết nó là gì.
Và điều này thực sự đi lên khá thường xuyên trong ngành công nghiệp
nơi bạn chỉ cần có những tấn và nhiều thứ lộn xộn
và họ đang vô cùng không có nhãn.
Vì vậy, ở đây tôi có điều này dataset và tôi không biết
những gì nó là như vậy tôi chỉ hiện để kiểm tra xem nó ra.
>> Vì vậy, tôi sẽ làm gì đầu tiên.
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à.
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.
Và điều thú vị ở đây, tôi đoán, là bạn
sẽ giả định rằng điều này có vẻ như một số loại của cuộc bầu cử.
Và tôi đoán chỉ từ nhìn vào các tập tin
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
người bình chọn cho Chủ tịch cụ thể hoặc ứng cử viên tổng thống
cho các cuộc bầu cử năm 2004.
>> Vì vậy, đây là giá trị 1, 2 vì vậy một cách để lưu trữ
các ứng cử viên tổng thống là tên của họ.
Trong trường hợp này, nó trông giống như họ giá trị chỉ số nguyên.
Vì vậy, năm 2004, đó là Bush so với Kerry tôi tin.
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
tương ứng với Kerry hay và vv và vv, phải không?
>> Và đây là, chỉ với tôi, một vấn đề khá phổ biến.
Vì vậy, những gì bạn có thể làm gì trong trường hợp này?
Vì vậy, hãy kiểm tra tất cả những thứ khác.
>> nhà nước, tôi giả định này đến từ các quốc gia khác nhau.
partyid, thu nhập.
Hãy nhìn vào partyid.
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
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ì đó.
Vì vậy, chúng ta hãy nhìn vào những gì là partyid.
>> Vì vậy, tôi sẽ mất dat và sau đó tôi sẽ
để làm ký hiệu đô la này điều hành mà tôi đã làm trước đó
và điều này sẽ tập hợp con để cột đó.
Và sau đó tôi sẽ đứng đầu này trong 20, chỉ để nhìn thấy điều này như thế nào.
>> Vì vậy, đây chỉ là một bó của NA.
Vì vậy, nói cách khác, bạn có thiếu dữ liệu về những chàng trai.
Nhưng bạn cũng nhận thấy điều này dat partyid là một yếu tố
vì vậy điều này cung cấp cho bạn loại khác nhau.
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,
hay cái gì khác.
>> 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.
Vì vậy, tôi sẽ tập hợp con để partyid và sau đó
nhìn vào những người thân mà Đảng Dân chủ, cho ví dụ.
Điều này sẽ cung cấp cho bạn một Boolean, một Boolean lớn TRUEs và FALSEs.
>> 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.
Vì vậy, đây là sẽ mất dat của tôi và tập con để bất cứ quan sát
có equals partyid bằng đảng Dân chủ.
Và điều này là khá dài vì có rất nhiều người trong số họ.
Vì vậy, bây giờ, tôi sẽ đầu này trong 20.
>> Và như bạn thấy, bằng equals là thú vị trong đó bạn
already-- bạn cũng bao gồm các NA.
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
và bạn chỉ muốn xem ai trong họ quan sát tương ứng với đảng Dân chủ
và không những mất giá trị bản thân.
Vì vậy, làm thế nào bạn sẽ thoát khỏi những NA?
>> 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.
Và sau đó ở đây tôi chỉ cần đi nói is.na datpartyid.
Vì vậy, đây và và sẽ mất hai vectơ Boolean khác nhau
và nói rằng nó sẽ là TRUE và FALSE ví dụ.
Vì vậy, nó sẽ làm phần khôn ngoan này.
Vì vậy, ở đây tôi đang nói take các khung dữ liệu, tập hợp con
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.
>> Vì vậy will-- này nên cung cấp cho bạn một cái gì đó.
Hãy xem is.na.
Hãy thử datpartyid is.na.
Và điều này sẽ cho you-- sorry-- chỉ là một vector Boolean.
Và sau đó, bởi vì nó quá dài, Tôi sẽ tập hợp con đến 20.
OK.
Vì vậy, điều này sẽ làm việc.
>> Và điều này cũng sẽ được TRUEs.
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
sai lầm này tất cả các thời gian.
Các nhà điều hành và là thực sự là một trong những bạn muốn.
Bạn không muốn sử dụng hai ampersands, chỉ một duy nhất.
OK.
>> Vì vậy, chúng ta hãy xem.
Vì vậy, chúng tôi subsetted đến partyid nơi họ thuộc đảng Dân chủ
và họ không mất giá trị.
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.
Vì vậy, nó có vẻ như hầu hết của họ bình chọn cho 1.
Vì vậy, tôi sẽ đi trước và nói rằng đó là Kerry.
>> Và tương tự, bạn có thể cũng đi đến Cộng hòa
và hy vọng, điều này sẽ cung cấp cho bạn 2.
Nó chỉ là một loạt các cột khác nhau.
Và quả thực, đó là 2.
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.
>> Vì vậy, nó có vẻ như, chỉ bằng cách này,
Cộng hòa là có được một very-- hoặc partyid
là có được một rất yếu tố lớn trong việc xác định
ứng cử viên nào họ sẽ bỏ phiếu cho.
Và điều này rõ ràng là đúng nói chung.
Và điều này phù hợp với bạn trực giác, tất nhiên.
Vì vậy, nó có vẻ như tôi chạy ra khỏi thời gian để
hãy để tôi chỉ cần đi trước và hiển thị một số hình ảnh nhanh chóng.
Vì vậy, đây là một cái gì đó hơi phức tạp hơn với hình dung.
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ì
Chủ tịch '04 là.
>> 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.
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
và làm thế nào mà thay đổi theo chủng tộc.
Vì vậy, không chỉ làm bạn muốn thấy những hành vi bỏ phiếu,
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 đó.
Và bạn chỉ có thể nói bởi ký hiệu phức tạp này
rằng đây là loại nhận mơ hồ.
>> Vì vậy, một trong những nâng cao hơn R gói đó cũng là loại gần đây
được gọi là dplyr.
Vì vậy, nó là một trong những điều này ngay tại đây.
Và ggplot2 ggg-- chỉ là một tốt đẹp cách làm hình tượng tốt hơn
hơn so với một built-in.
>> Vì vậy, tôi sẽ nạp hai thư viện này.
Và sau đó, tôi sẽ đi trước và chạy lệnh này.
Bạn chỉ có thể điều trị này như một hộp đen.
>> Có gì xảy ra là ống này điều hành là đi qua trong lập luận này
vào đây.
Vì vậy, tôi nói rằng nhóm của dat chủng tộc và sau đó chủ tịch 04.
Và sau đó, tất cả các lệnh khác được lọc và sau đó tổng hợp
nơi tôi đang làm và đếm sau đó tôi vẽ nó ở đây.
OK mát.
Vì vậy, chúng ta hãy đi trước và thấy điều này như thế nào.
>> Vì vậy, những gì đang xảy ra ở đây tôi là chỉ vẽ mỗi cuộc đua và sau đó
những người thân mà họ đã bỏ phiếu cho.
Và hai những khác nhau giá trị tương ứng là 2 và 1.
Nếu bạn muốn được nhiều hơn thanh lịch, bạn cũng có thể
chỉ cần xác định rằng 2 là Kerry-- hay 2 là Bush, và sau đó là 1 Kerry.
Và bạn cũng có thể có mà trong truyền thuyết của bạn.
>> Và bạn cũng có thể chia nhỏ các đồ thị thanh.
Bởi vì có một điều rằng, nếu bạn thông báo,
này không phải là rất dễ dàng để xác định mà trong hai giá trị lớn.
Vì vậy, có một điều bạn muốn làm là lấy vùng màu xanh này
và chỉ cần di chuyển nó qua đây để bạn có thể so sánh hai phía các bên.
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ờ,
nhưng mà cũng rất dễ dàng để làm.
Bạn chỉ có thể nhìn vào các trang man của ggplot.
Vì vậy, bạn chỉ có thể làm như ggplot đó và đọc vào trang này người đàn ông.
>> Vì vậy, hãy để tôi một cách nhanh chóng cho bạn một số điều thú.
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.
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.
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.
Vì vậy, tôi nói read.csv này, số liệu này, và bây giờ
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.
>> Vì vậy, 20 quan sát đầu tiên.
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ị
là khác nhau, có lẽ từ 20 đến 80 hoặc hơn.
Và sau đó tương tự cho X2 và sau đó Y này có vẻ là nhãn 0 và 1.
>> Để xác minh điều này, tôi có thể chỉ làm dữ liệu tóm tắt X1.
Và sau đó tương tự cho tất cả các cột khác.
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.
Oh, xin lỗi.
Điều này nên được Y.
>> 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.
Trong trường hợp này, dataY, bạn có thể nhìn thấy mà nó chỉ sẽ là 0 và 1.
Cũng có nghĩa là đang nói 0.6, chỉ có nghĩa là nó
có vẻ như tôi có hơn 1s 0s.
>> 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ì.
Vì vậy, tôi chỉ cần đi âm mưu này.
Chúng ta hãy xem làm thế nào để xóa này.
Oh OK.
OK.
>> Vì vậy, đây là những gì nó trông như thế nào.
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.
Vì vậy, đây có vẻ như điểm nhãn và nó
có vẻ như bạn chỉ muốn một số loại clustering trên này.
>> 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.
Vì vậy, đây là lm.
Vì vậy, đây chỉ là cố gắng để phù hợp với một dòng này.
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
rằng nó sẽ tách tốt nhất loại này clustering.
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
và sau đó, tôi sẽ trước và thêm các dòng.
>> Vì vậy, điều này có vẻ như đoán tốt nhất.
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.
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.
Và mô hình tuyến tính, trong Nói chung, sẽ được
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
học tập.
Nhưng trong thực tế, bạn sẽ muốn làm một cái gì đó chung chung hơn.
>> 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.
Những điều này là ngày càng phổ biến hơn.
Và họ chỉ làm việc rất tuyệt vời cho các tập dữ liệu lớn.
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.
Vì vậy nrow chỉ là nói số hàng.
Vì vậy, trong trường hợp này, tôi có 100 quan sát.
>> Vì vậy, hãy để tôi đi trước và làm cho một mạng lưới thần kinh.
Vì vậy, đây là thực sự tốt đẹp bởi vì tôi chỉ có thể nói nnet
và sau đó tôi thoái Y. Vì vậy, Y là cột đó.
Và sau đó thoái nó trên hai biến khác.
Vì vậy, đây là ngắn hơn ký hiệu cho X1 và X2.
>> Vì vậy, chúng ta hãy đi trước và chạy này.
Oh, xin lỗi.
Tôi cần phải chạy toàn bộ điều này.
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ó
hội tụ.
Vì vậy, có vẻ như nó đã hội tụ.
Vì vậy, hãy để tôi đi trước và in ấn ra điều này như thế nào.
>> 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.
Và đây là just-- bạn có thể nhìn thấy này rằng đây là rất, rất đẹp.
Nó thậm chí có thể là overfitting, nhưng bạn cũng có thể
tài khoản này có khác các kỹ thuật như cross-validation.
Và đây cũng được xây dựng vào R.
>> Và hãy để tôi chỉ cho bạn hỗ trợ máy vector.
Đây là một thực sự phổ biến kỹ thuật trong máy học.
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.
Và chúng ta hãy xem như thế nào mà.
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,
nhưng nó nhiều hơn mượt mà hơn.
Và điều này là dựa tắt của what-- cách SVMs công việc.
>> Vì vậy, đây chỉ là một rất tổng quan nhanh chóng của một số
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.
Vì vậy, hãy để tôi chỉ cần đi trước và quay trở lại các slide.
>> Vì vậy, rõ ràng, đây là không phải là rất toàn diện.
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.
Vì vậy, nếu bạn chỉ muốn để tìm hiểu thêm, ở đây
là một loạt các nguồn tài nguyên khác nhau.
>> 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,
thì đây là một tuyệt vời từng Hadley Wickham,
người cũng tạo ra tất cả các gói thực sự mát mẻ.
Nếu bạn thích video, sau đó Berkeley có bootcamp tuyệt vời
đó là several-- đó là loại dài.
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.
>> Và tương tự, có Codeacademy và tất cả các loại khác
website của các tương tác.
Họ cũng đang nhận được common-- hơn và phổ biến hơn.
Vì vậy, đây là rất tương tự như Codeacademy.
Và cuối cùng, nếu bạn chỉ muốn cộng đồng và giúp đỡ,
đây là một loạt các điều bạn có thể đi đến.
Rõ ràng, chúng ta vẫn còn sử dụng danh sách gửi thư, chỉ
giống như hầu hết các khác cộng đồng lập trình ngôn ngữ.
Và #rstats, đây là cộng đồng của chúng tôi Twitter.
Đó là thực tế khá phổ biến.
Và sau đó người sử dụng!
Chỉ là hội nghị của chúng tôi.
>> 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,
như Stack Overflow, Google, và sau đó GitHub.
Bởi vì hầu hết các gói và rất nhiều cộng đồng
sẽ được tập trung vào phát triển mã bởi vì nó là mã nguồn mở.
Và nó chỉ thực sự tốt đẹp trên GitHub.
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.
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.
Vì vậy, hy vọng, đó là something-- chỉ là một lời trêu ghẹo ngắn
những gì R là thực sự có khả năng làm.
Và hy vọng, bạn chỉ hãy kiểm tra các liên kết ba
và xem những gì bạn có thể làm nhiều hơn nữa.
Và tôi đoán đó chỉ là về nó.
Cảm ơn.
>> [Vỗ tay]