>> [音樂播放]
DUSTIN TRAN：你好。
我的名字的達斯汀。
所以我會介紹 在R.數據分析
我自己只是一點點。
我目前的研究生 該工程與應用科學。
我研究的交集 機器學習和統計
因此在研發數據分析 真正的基礎是什麼
我每天。
>> R是特別 良好的數據分析
因為它是非常好的原型。
通常，當你做一些 數據分析，很多的問題的
要認知。
所以你只是想有 一些很好的語言
是做剛剛好 內置函數，而不是
具有處理低電平的東西。
所以，在開始的時候，我只是去 介紹什麼是R，為什麼會
要使用它， 然後去到過的一些演示，
而只是去從那裡。
>> 那麼，什麼是R'
R的只是一個語言開發 統計計算
和可視化。
所以，這是什麼意思的是， 這是一個非常優秀的語言
對於與處理任何諸如此類的事情 不確定或數據可視化。
所以，你擁有所有這些 概率分佈。
有將要 內置函數。
你也將有出色 繪圖包。
>> Python是互相競爭 語言數據。
還有一件事，我覺得是R 為更好的為可視化。
所以你會在演示照見 也僅僅是一個很直觀的語言
這只是工作得非常好。
它也是免費和開源的，因為 是什麼好語言，我猜。
>> 在這裡，一堆剛 關鍵字扔向你。
它是動態的，這意味著如果你有一個 分配到一個對象的特定類型
比將只在飛行修改。
這是懶惰所以它的聰明 它是如何做計算。
功能意味著它可以真正操作 基於關閉功能等anything--
任何形式的操縱你 這樣做，它會根據關功能。
>> 所以二元運算符，例如， 只是固有的功能。
和一切 你要做的是
將要流掉函數本身。
然後面向對象的為好。
>> 因此，這裡是一個XKCD情節。
這不僅是因為我覺得自己像 XKCD是至關重要的任何形式
介紹的，但由於 我喜歡這種感覺真的
錘點，很多的 當你正在做一些數據的時間
分析，問題是不 與其說它運行的速度有多快，
不過多久，它會 帶你到編程任務。
所以這裡只是分析是否 策略a或b是更有效的。
這將是 你是什​​麼
要處理很多在 那種低層次的語言
在那裡你正在處理的賽格故障， 內存分配，初始化，
甚至使內置函數。
而這個東西是所有處理 非常，非常優雅的R.
>> 所以只是這一錘 點，最大的瓶頸
將是認知。
這樣的數據分析是一個非常困難的問題。
無論你正在做的 機器學習或者你
這樣做只是某種 基本數據探索，
你不希望有 取一個文件
然後編譯 每一次你的東西
想看看一列的樣子， 什麼特定的條​​目以矩陣
看起來像。
所以，你只是想有 一些非常漂亮的界面
您可以運行一個簡單的函數 該指數的任何
你想從那裡只要運行它。
你需要域名 特定語言這一點。
和R將真正幫助你定義 問題和解決它以這種方式。
>> 因此，這裡是顯示編程 的R普及，因為它走了一段時間。
所以你可以看到，像2013年或 所以它只是炸毀了極大。
這一直只是因為 在科技產業的巨大發展趨勢
關於大數據。
另外，不只是該技術 行業，但真正
任何行業that--因為 很多行業
是那種根本 試圖解決這些問題。
通常，你可以有一些不錯的 測量這些問題的方式
甚至定義它們或 利用數據解決這些問題。
所以我覺得現在R是第11 在TIOBE最流行的語言
和它的增長至今。
>> 因此，這裡的一些 R的特點，具有
包的巨大數量和 所有這些不同的東西。
所以，任何時候你有一個 某些問題，最
時間R將有 該功能為您服務。
因此，無論你想 建立某種機
所謂的學習算法 隨機森林或決策樹，
甚至試圖採取的平均 一個函數或任何這方面的東西，
R將有。
>> 如果你這樣做你關心 優化，一件事是很常見
在這之後，你就大功告成了原型 某種高級語言，
你會拋出in-- 你只會端口超過
一些低級語言。
有什麼好的R是，一旦你 做原型，你可以運行C ++，
或Fortran或任何這些 較低水平的人直接進入R.
所以，這人真的 關於R很酷的功能，
如果你真的關心 優化點。
>> 而且它也確實不錯 為Web可視化。
所以D3.js，例如，是 我想另一個研討會
我們今天提出。
這是真正的真棒 做交互式可視化。
和D3.js假設你有 要繪製某種數據的
和R是能夠做一個偉大的方式 導出之前的數據分析
交給D3.js甚至只是運行 D3.js命令為R本身，
以及所有這些 其他庫也是如此。
>> 所以這是剛剛出台 什麼是R和為什麼你可能會使用它。
所以希望，我已經 相信你的東西
大約只是想看看是什麼樣子的。
所以，我要繼續前進，經過 關於R對象的一些基礎知識
什麼，你真的可以做到。
>> 因此，這裡僅僅是一個 一堆數學指令。
所以說，you're--你想建立 語言自己只是想和你
有一堆不同的工具。
操作任何一種你認為你會 要的是幾乎將要在R.
>> 因此，這裡是2加2。
這是2倍圓周率。
R有一堆內置常量 你會經常使用如pi，E。
>> 然後，這裡是7加 runif，所以runif 1。
這是一個功能，是生成 1無規均勻從0到1。
再有3到4個電源。
有平方根。
>> 有日誌。
所以日誌會做基地 指數本身。
然後，如果你指定一個基地的話， 你可以做任何基地你想要的。
然後這裡有一些其他的命令。
所以，你有23 MOD 2。
那麼你有剩餘。
那麼你有科學 如果你還記法
要做到這更多， 更複雜的事情。
>> 因此，這裡是分配。
在這樣的典型任務 R被用箭頭完成
所以它的不足，然後連字符。
所以在這裡我只是分配 3向變量val。
>> 然後我打印出來VAL 然後打印出3。
默認情況下，在研發解釋，它 將打印出來的東西你
所以你不必指定打印VAL 任何時候你要打印的東西。
你可以做VAL和 然後它會為你做的。
>> 此外，您還可以使用等於技術上 作為賦值運算符。
有輕微的微妙之處 利用箭頭之間
操作員和等於 運營商的任務。
主要是按照慣例，每個人都 將只使用箭頭操作符。
>> 在這裡，我這個分配 斜符號稱為1結腸癌6。
這產生從1到6的載體。
這真的很好，因為那時 你剛才分配向量VAL
並且工作本身。
>> 因此，這已經從去 single--一個非常直觀的數據
只是雙重結構 一些類型的類型的插入載體
並會收集所有 標值給你。
因此，從標會後，你 具有R的對象，這是一個矢量。
向量是任何形式的 收集同一類型的。
因此，這裡有一堆載體。
>> 因此，這是數字。
數字是說雙R的方式。
因此在默認情況下，任何 號將是一個雙。
>> 所以，如果你有C 1.1，3， 負5.7，則c是一個函數。
這樣可以將所有三個 號碼到載體。
而這將be--所以如果 你注意到3本身，
通常你會假設 這是像的整數，
但由於所有矢量 是相同的類型，
這是雙打的向量 或數值在此情況下。
>> RNORM是一個函數，產生 標準正常variables--
或標準正常值。
和我指定他們兩個。
所以我做RNORM 2，分配，要 開發者，然後我打印出開發者。
因此，這些都是只有兩個 隨機正常值。
>> 如果你這樣做，然後INTS 你關心的整數。
所以，這只是關於內存 分配和節省內存大小。
所以，你將不得不追加 您的號碼被資本L.
>> 在一般情況下，這是 的r歷史符號
對於一些所謂的長整型。
所以大多數的時候，你會 是處理雙打。
如果你曾經稍後會 在優化你的代碼，
你可以只添加這些L的 之後或期間，
如果你像預知什麼 你要做這些變量。
>> 因此，這裡是一個字符向量。
所以，再一次，我串聯 三根弦這段時間。
請注意，雙串和 單一字符串的R.同
所以，我有亞瑟和馬文的等 當我打印出來，所有的人
要顯示雙字符串。
如果你也想有 雙或單串
在你的角色，那麼你就可以 無論你的交替串。
>> 所以馬文的對 第二元件，這是
去展示 - 你 只是有雙串
然後一個字符串 所以這是交替的。
否則，如果你想使用雙 字符串操作在雙串
當你宣布它，然後 你只需要使用轉義符。
所以，你要做的雙反斜線字符串。
>> 最後，我們還 有邏輯的載體。
所以logical--所以TRUE 和FALSE，他們是
將全部大寫。
然後，再一次，我串聯 他們，然後分配他們的bool。
所以布爾變量是要告訴 你TRUE，FALSE和TRUE。
>> 因此，這裡是矢量的索引。
所以，在開始的時候，我 我採取了function--
這就是所謂的序列 - 序為2至12。
而我2採取序列。
所以它會做 2，4，6，8，10和12。
然後，我索引 以獲得所述第三元件。
>> 所以有一點要記住的是 是R指標從1開始。
所以丘壑3是要給 你的第三個元素。
這有點與其他的不同 它從零開始的語言。
所以在C或C ++，例如，你 將得到的第四元素。
>> 這裡是丘壑3〜5。
這麼一件事是 很酷的是你
可以在裡面生成臨時變量 然後就用它們的飛行。
因此，這裡是3〜5。
所以我生成一個向量 3，4和5，然後
我索引獲得第三， 第四和第五元素。
>> 所以同樣，你可以 只是做摘要
任何類型的載體的 ，讓你的索引。
因此，這裡是丘壑，然後 第一，第三，第六元件。
然後，如果你想 做一個補充，
所以你只要做減號 事後那會
給你的一切，是不是 第一，第三，或第六元件。
因此，這將是4，8和10。
>> 如果你想獲得 更先進的，
您可以連接布爾向量。
因此，這指數是要給你 長度為6的這個布爾向量。
所以，代表TRUE逗號3。
這將重複為TRUE三次。
因此，這會給你一個 矢量TRUE，TRUE，TRUE。
>> 代表FALSE 4--這是要給你 的FALSE，FALSE，FALSE，FALSE的向量。
然後C是將串聯 這兩個布爾在一起。
所以，你會得到三個 TRUEs然後4 FALSEs。
>> 所以，當你的索引丘壑，你 會得到TRUE，TRUE，TRUE。
所以這是怎麼回事說是， 我想這三個要素。
然後FALSE，FALSE， FALSE，FALSE是怎麼回事
說沒有，我不希望這些元素 所以它不會來回報他們。
>> 我想有實際上在這裡一個錯字 因為這是說重複TRUE 3
重複FALSE 4，和技術上，你 只有六個要素如此重複FALSE，
它應該是重複FALSE 3。
我覺得R也足夠聰明，這樣的 如果你只是指定4在這裡，然後
它甚至不會出錯了。
它只是給你這個值。
所以它會忽略了第四FALSE。
>> 因此，這裡是矢量分配。
所以set.seed--這只是設置 種子偽隨機數。
所以我設置的種子 42，這意味著如果我產生
三個隨機正常 值，然後如果你
運行set.seed你自己 電腦使用相同的值42，
然後您還可以獲得 同樣的三個隨機法線。
>> 因此，這是真的好 可重複性。
通常情況下，當你做一些 排序科學分析，
你想設置的種子。
這樣，其他科學家可以只 重現你已經完全相同的代碼
這樣做，因為他們將有確切 相同的隨機變量that--或隨機
你已經取出，以及價值觀。
>> 這樣一來，矢量分配 這裡示出了瓦爾斯1至2。
因此，需要前兩個元素 丘壑，然後將它們分配給0。
然後，你也可以只是做了 類似的事情與布爾。
>> 所以瓦爾斯不等於0--該旨意 給你一個矢量FALSE，FALSE，TRUE
在這種情況下。
然後，它會說什麼 那些是真實的指標，
然後它會分配一個5。
因此，需要第三個元素 在這裡，然後將其分配給5。
>> 這是非常好的 相比低級語言
在那裡你必須使用循環 做這一切矢量的東西
因為它只是非常直觀 這是一個單一的單行。
這有什麼了不起 矢量符號
是，在R，這些都是排序 內置使他們幾乎一樣快
因為這樣做在一個低級語言如 反對做一個for循環在研發
再有它做 動態索引本身。
而這會比做慢 這種量化的東西
它可以並行，在那裡做 它這樣做的線程基本。
>> 因此，這裡是矢量操作。
所以我生成一個值1到3， 分配給該VEC 1，3至5，VEC2，
加在一起。
它增加了他們的組件，因此明智的 它是1加上3，2加4，等等。
>> VEC 1次VEC2。
這乘以2 明智的價值觀的組成部分。
所以它的1倍3，2次 4，然後3次5。
>> 然後，同樣，你也可以做 comparisons--邏輯比較。
因此，它是FALSE FALSE TRUE在這 情況下，因為1是不大於3，
圖2是不大於4。
這是，我猜，另一個錯字，3 絕對不大於5。
是啊。
所以你可以做所有 這些簡單的操作
因為他們的繼承 從自己的類。
>> 所以這只是個載體。
這就是那種最根本的 ř對象，因為給定的載體，
你可以構建更高級的對象。
>> 所以這裡有一個矩陣。
這在本質上是抽象 一個什麼樣的矩陣本身。
因此，在這種情況下，它的三個不同的 矢量，其中，每一個是一列，
或者你可以考慮 因為每一個是一排。
>> 所以，我存儲從1矩陣 9，然後我指定3行。
因此，1至9會給你一個向量1， 2，3，4，5，6，和一路9。
>> 有一件事也記住的是， ř專賣店在列的主要格式值。
所以，換句話說，當你看到1 至9，它要儲存them--
這將是1，2， 在第一列3，
然後它會做4，5， 在第二列6，
然後7，8，9，在第三列中。
>> 這裡有一些其他的 您可以使用常用功能。
因此昏暗的墊子，這會給你 矩陣的尺寸。
它會回報你 維度的向量。
因此，在這種情況下，因為 我們的矩陣為3×3，
它會給你一個 數字矢量是3 3。
>> 這裡只是展示 矩陣乘法。
所以通常情況下，如果你只是做 asterisk--所以墊星號mat--
這將是 組件明智的操作
或者什麼所謂的阿達瑪產品。
所以它會做的每 元素組件明智的。
但是，如果你想 矩陣multiplication--
所以第一行時間乘以 第二矩陣的第一列
所以on--你會使用 這個百分比操作。
>> 和墊噸只是一個 操作轉。
所以我說，走在轉 的矩陣，由矩陣乘以
本身。
然後它會 回報給你另外3
3矩陣，顯示 你想要的產品。
>> 所以這是矩陣。
這裡是所謂的數據幀。
數據幀，你能想到的作為 一個矩陣，但是每列本身
將是不同類型的。
>> 那麼，什麼是真正酷的數據 幀是在數據分析本身，
你將擁有這一切 異構數據，所有這些真的
亂七八糟的東西，其中每一列 本身可以是不同類型的。
所以在這裡我想說的創建 數據幀中，執行整數1至3個，
然後也有一個特徵向量。
這樣我就可以通過指數 這些列
然後我會得到的值本身。
而且你還可以做一些 對數據幀的操作。
和大部分的時間你的時候 進行數據分析，或某種
預處理，你會 與這些數據結構工作
其中每個列將 是不同類型的。
>> 最後，所以這些基本上都是剛 在R.列出四個基本目標
將只收取任何 你想要的其他對象。
因此，將這種存儲到一個 您可以輕鬆地訪問變量。
>> 所以在這裡，我要帶一個列表。
我說的東西等於3。
所以，我要在一個元素 列表中，這就是所謂的東西，
而這將有值3。
>> 我還可以創建一個矩陣。
因此，這是1至4和端排 等於2，所以由2矩陣2。
此外，在列表中，這就是所謂的墊子。
moreStuff，一個字符串， 甚至另一個列表本身。
>> 所以這是一個列表，是5和熊。
因此它具有值5和它 有字符串熊
和它的內部的列表的列表。
所以，你可以有這些 遞歸的東西在哪裡
你有another--一個 在類型類型。
所以同樣，你可以有一個矩陣 在另一個矩陣等。
和一個列表僅僅是一個很好的方法 收集和匯總的
所有這些不同的對象。
>> 最後，這裡是以防萬一幫助 這是剛剛經歷了非常迅速。
所以，任何時候你困惑 關於某種功能，
你可以做到這一點的功能幫助。
所以你可以做幫助矩陣 或問號矩陣。
並幫助和問號都 只是簡寫同樣的事情
所以他們的別名。
>> 流明是一個函數，它 只是做一個線性模型。
但如果你只是不知道怎麼說 作品中，你可以做流明幫助
而且會給你一些 這類文檔的
看起來有點像 在Unix中，在手冊頁
你有一個簡短的說明什麼 確實如此，亦是它的參數是，
它返回，並就如何只提示 使用它，並且一些實施例也是如此。
>> 因此，讓我繼續前進，顯示 使用R. OK了一些演示。
於是我去了很 很快就在數據
結構和某種的 op--一些操作。
下面是一些功能。
>> 所以在這裡我只是去 來定義的函數。
所以，我還使用 賦值運算符在這裡，
然後我說 聲明為一個函數。
而它需要的x值。
所以，這是你想要的任何值 而我要返回X本身。
因此，這是身份的功能。
>> 什麼是酷這個 相比其它語言
和另一低級別 語言是X
可以是任何類型本身 它會返回一個類型。
所以，你可以imagine--所以讓 我只想趕緊跑了。
抱歉。
>> 這麼一件事我還要提到 就是這個編輯器，我使用
被稱為rstudio。
這是所謂的IDE。
還有一件事是 非常好的關於這個
的是，它包含了很多 你想通過自己做R中的事情
只是很直觀。
>> 因此，這裡是一個解釋控制台。
所以同樣，你也可以得到這個 只是做一個大寫R.控制台原料
而這正是 同樣的事情作為控制台。
所以，我可以做ID功能X，X，X。
和then--然後該 將被罰款本身。
>> 所以rstudio是偉大的 因為它有控制台。
它也有文件 你想運行。
然後它有一些變數 您可以在環境中看到的。
然後，如果你有 做圖，那麼你
可以只看到它在這裡，相對於 管理所有這些不同的窗口
由自己決定。
>> 其實，我個人用Vim，但我 感覺rstudio是優秀的只是
為得到一個好主意 如何使用R.一般，
當你試圖 學習一些新的任務，
你不想處理 太多的事情一次。
所以，R是只是一個very-- rstudio 是學習R的非常好的方法
而無需處理 所有這些其他的東西。
>> 所以在這裡我跑ID打招呼。
這將返回打招呼。
編號123。
這裡是整數的向量。
那麼同樣的，因為你可以 採取某種價值，
你可以做回國ID X所以它返回1234和5。
>> 並讓我告訴你， 這確實是一個整數。
同樣，如果你​​這樣做類 ID X，這將是整數。
然後，你也可以 比較這兩個，這是真的。
所以我檢查，如果ID x的 等於等於x和通知
它給你兩個TRUEs。
因此，這是不是說有 兩個對象相同，
但是每個條目的 在矢量是相同的。
>> 這是bounded.compare。
因此，這是稍微複雜 在於：它具有一個if條件和其他
然後需要兩個 在一個時間參數。
所以x是任何類型。
而且我說這 第二個參數是一個。
這可以是任何為好。
但默認情況下，它會採取 5，如果你不指定任何東西。
>> 所以在這裡我要說 如果x大於一。
所以，如果我不指定，它 說，如果x大於5，
然後我會返回TRUE。
否則，我將返回FALSE。
因此，讓我繼續前進，定義這個。
>> 現在我要去 運行bounded.compare 3。
所以說，在3少 than--比5 3更大。
不，這不是那麼FALSE。
>> 和bounded.compare 3，我要去 用等於2來比較它。
所以，現在我要說的是，現在我 想別的東西。
所以我要去說，你應該是2。
>> 我可以做這樣的 符號或者我說等於2。
這是一個更可讀 在當你
看著這些真的 複雜功能
採取多種arguments--這 可幾十oftentimes--只是說
A等於2是更可讀的 你這樣以後在未來
你會知道你在做什麼。
>> 因此，在這種情況下，我 俗話說比2 3更大。
是的。
同樣，我也只是刪除 這一點，並說，比2 3更大
其中a等於2。
而這也是事實。
是嗎？
>> 聽眾：你 按行執行行？
>> DUSTIN TRAN：是的，我是。
所以我在做什麼這裡是 採取這一文本document--
什麼是偉大的關於rstudio是 我可以只運行一個short--一個快捷鍵。
所以我在做控制輸入。
>> 然後，我走了 文本文檔中的行
然後將在控制台中。
所以在這裡我要說，bounded.compare 和我做控制-X。
所以，我可以做跑這裡。
然後那會走 行，然後把它放在這裡。
然後同樣地，我可以在這裡做運行。
然後它會自顧自地定義 線成這樣的控制台。
>> 如果你也注意到了花 括號是有類似於C的語法。
x--如果if條件也 要使用括號，然後
你可以使用別的。
另外一個是，如果別人。
因此，這將是X 等於等於一，例如。
然後我要去 回到這裡的東西。
>> 請注意，有兩種不同的 這裡的東西這回事。
其一是，在這裡我指定 返回值TRUE。
在這裡，我只是說X。
所以R將通常默認 取最後arguments--
或取代碼的最後一行， 這將是它的返回。
所以在這裡，這是相同的 事情做回X。
>> 而剛剛給你看。
然後，它會工作就是這樣。
因此，讓我繼續這樣做。
>> 所以，如果別的。
真的，我可以返回 什麼我想。
所以我甚至不有 返回布爾所有的時間，
我可以返回別的東西。
所以我可以做回熊。
>> 所以，如果x等於等於， 它會返回熊。
否則，它會返回TRUE。
我也可以做一個向量 還是真的什麼。
>> 與通常靜態 類型化的語言，
你必須在這裡指定一個類型。
並發現它可以只是任何東西。
R是智能不夠，它 只是做到這一點，它會正常工作。
>> 因此，讓我定義這個。
Unexpected--哦對不起。
這應該是一個大括號在這裡。
好不好。
酷。
行。
所以，現在讓我們來比較3和等於3。
所以應該return-- yeah--值熊。
>> 所以，現在更普遍的是像 那麼其他的數據結構。
所以，你有這個功能。
這是去上班任何形式的 ，價值就像3或任何數字
換句話說，雙重。
>> 但對於像一個載體。
所以，如果你do--所以我會發生什麼 要分配VAL，比方說，4至6個。
所以，如果我回到這，這 為4，5，6的載體。
>> 現在，讓我們看看會發生什麼 如果我做bounded.compare VAL。
因此，這將會給你15 1251。
因此，換句話說，它說 如果你看一下這個條件
所以說，x是少 比什麼的。
因此，這是稍微 令人困惑，因為現在
你只是不知道發生了什麼事情。
所以我想一件事是真的 良好只是想調試
是，你可以做val為更大 不是，看看會發生什麼存在。
>> 所以val--一個是默認的5等 我們只是做VAL大於5。
所以這是一個矢量FALSE FALSE TRUE。
所以，當你看現在 這一點，這是怎麼回事，如果說，
然後它會給予你這個 為FALSE FALSE向量TRUE。
>> 所以，當你通過這個入R，R 不知道你在做什麼。
因為它需要一個單一的 值，這是一布爾值，而現在
你給它布爾向量。
因此，通過默認，R是剛 接下來要說什麼的挫折感，
我會假設你 要採取的第一個元素在這裡。
所以，我要say--我要去 假設這是假的。
所以它會說 不，這是不對的。
>> 同樣，這將 是VAL等於等於。
不，對不起5。
而它也將是錯誤的為好。
所以它會說沒有， 事實並非如此，以及因此它的
要返回該最後一個。
>> 因此，這可以是一個好事還是壞事 的事情，這取決於你如何看待它。
因為當你 創建這些功能，
你是不知道發生了什麼事情。
所以有時候你會希望有一個錯誤， 或者你只是想警告。
在這種情況下，R不這樣做。
所以，這真的取決於 您可以根據掉什麼
你認為語言 應該在此情況下
如果你通過在布爾向量 當你正在做的，如果條件。
>> 因此，讓我們說，你有原來的 之一，如果其他人返回TRUE和你
會返回FALSE。
抽象的這麼一種方式 這是說我
甚至不需要這個條件的事情。
另一件事，我可以做的就是 返回值本身。
所以，如果你發現，如果你 做val為大於5，
這將返回一個 矢量FALSE FALSE TRUE。
>> 也許這就是你 想要bounded.compare。
要返回布爾向量 它比較每個值
對自己負責。
所以，你可以做bounded.compare 函數x，a等於5。
然後，而不是做 這一點，如果其他條件，
我只是要回 x是大於5。
所以，如果這是真的，那麼 它會返回TRUE。
然後，如果它不是，它是 會返回FALSE。
>> 這將工作 任何這些結構。
這樣我就可以bounded.compareç1 6或9 然後我會說等於6，
例如。
然後它會 給你正確的布爾
矢量你設計。
>> 所以，那些只是功能 現在讓我
告訴你一些互動的視覺效果。
我不認為我實際上有 無線網絡連接，在這裡，所以讓我繼續前進
並跳過這個我猜。
>> 但有一點很酷 但是，如果你只是
要測試一堆 不同的數據的命令，
有一堆不同的數據集 那些已經預先加載到R.
所以其中之一是 所謂的虹膜數據集。
這是最知名的1 那些在機器學習。
你通常只是做某種 測試用例，看看你的代碼運行。
所以讓我們只檢查虹膜是什麼。
>> 所以這個事情是怎麼回事 成為一個數據幀。
而且它是一種長的，因為 我剛打印出來光圈。
它打印出整個事情。
因此它具有所有這些不同的名稱。
因此，虹膜是一家集 不同的花。
在這種情況下，它告訴 你它的品種，
所有這些不同的寬度和 在萼片和花瓣的長度。
>> 因此，通常，如果 要打印虹膜，
例如，你不想擁有它 做了這一切，因為這可以接管
整個控制台。
這麼一件事是真的 好的是頭功能。
所以，如果你只是做頭 虹膜，這會給你
第5行，或六，我猜。
然後好了，你 可以直接在這裡指定。
所以20--這會給 你的第一個20行。
實際上我是那種 的驚訝，這
給我6所以讓我繼續前進 並檢查iris--或頭部，對不起。
在這裡，它會給 您的文檔
價值頭上做什麼。
因此，它返回第一個 或最後一個對象。
然後我要去 看一下默認值。
然後它說的默認 法頭x和n等於6L。
因此，這將返回前六要素。
同樣，如果你​​在這裡看到的，我 沒有指定n等於6。
默認情況下它使用6，我猜。
然後，如果我要指定一個特定的 值，那麼我可以查看這一點。
>> 所以這是一些簡單的命令和 這裡的另一個這just--好，
我can--這實際上是 稍微複雜一些，
但是這只是走班 虹膜數據集的每一列。
因此，這將告訴你什麼是所有這些 列是在它們的類型的條款。
所以，萼片長數字， 萼片寬度的數字。
所有這些值都只是數字 因為你可以從這個數據
組織這些都是 一切都將數字。
>> 和物種列 將是一個因素。
所以通常情況下，你會認為 這就像一個字符串。
但如果你只是做irisSpecies， 然後我會做的頭5，
並且這是要打印 出的前五個值。
>> 然後注意到這個水平。
因此，這是saying--這為R的方式 具有分類變量。
因此，而不是僅僅 具有文字串，
它具有指定的水平 其中，這些東西都是。
>> 所以我們可以說irisSpecies 1。
所以，你想在這裡做什麼，我 子集這一物種列。
因此，這需要的 種柱中，然後
它的索引來獲得的第一個元素。
因此，這應該給你setosa。
它也給你的水平在這裡。
>> 所以，你也可以比較 這向字符setosa
而這是不會 為TRUE，因為一個
是一種不同的類型中的另一個。
或者，我想這是真的，因為ř 比這更聰明。
它著眼於這一點，然後 說，也許這就是你想要的。
所以它會說字符 串setosa是一樣的這一個。
然後同樣，您可以 也正好抓住這些像等。
>> 所以這只是某種 數據集的快速指令。
因此，這裡的一些數據的探索。
所以這是一個多一點 涉及數據分析。
這是從一些 集訓在研發在伯克利分校。
>> 所以，國外​​的圖書館。
所以我打算在加載 庫，被稱為外國人。
因此，這是要給我read.dta 所以假設我有這樣的數據集。
這被存儲在當前 我的工作控制台目錄。
所以讓我們只看到了什麼 工作目錄。
>> 因此，這裡是我的工作目錄。
和讀取點的數據，這 的事情，是說這個文件
位於數據文件夾 這個當前工作目錄。
並且read.dta這不是 默認命令。
我想我在裝好了。
IEI假設我已經裝這。
>> 但如此read.dta不會 是一個缺省的命令。
這就是為什麼你將有 在這個庫加載package--
這個包所謂外。
如果你沒有 包，我覺得
外國是內置的一個。
否則，你也可以 做install.packages
這將安裝該軟件包。
這會給你R.哦，不。
然後我只是要阻止 這一點，因為我已​​經擁有它。
>> 但是，什麼是真正好的關於R 的是，包管理
系統是非常優雅。
因為它會保存一切 真的很好你。
所以在這種情況下，這將存儲 它在，我相信，在這裡這個庫。
>> 所以，任何時候你想 安裝新的軟件包，
它只是這麼簡單 做install.packages
和R將管理所有 包你。
所以，你不必做一下 蟒蛇，在那裡你有外包裝
像紙經理 你在哪裡蟒蛇
您安裝doing--的 Python的外面包
然後嘗試自己運行它們。
因此，這是非常好的方式。
>> 和install.packages需要互聯網。
它需要從一個服務器 和存儲庫
收集所有的 包被稱為CRAN。
你可以指定排序鏡 你想從下載的軟件包。
>> 所以在這裡我採取這一數據集。
我讀它使用此功能。
因此，讓我繼續前進，做到這一點。
>> 因此，讓我們假設 你有這樣的數據集
你有絕對的 不知道它是什麼。
這實際上出現 相當經常在業內
在那裡，你只是有這些 噸，噸亂七八糟的東西
他們是令人難以置信的未標記。
所以在這裡我有這個 數據集，我不知道
它是什麼，所以我只是 顯示檢查出來。
>> 所以，我要先做頭。
所以，我檢查了前六 什麼這個數據集列。
因此，這是一個國家，pres04，然後 所有這些不同的排序列。
什麼是有趣的 在這裡，我想，是你
會認為這看起來 像某種選舉。
我想剛剛從 查看文件
名稱這是某種集合 有關候選人或選民數據
誰投票給特定的總統 或總統候選人
在2004年大選。
>> 因此，這裡是值1，2 如此存儲的一種方式
總統候選人 他們的名字。
在這種情況下，它看起來像 他們只是整數值。
所以，2004年，這是布什 與克里相信。
現在，讓我們說你只是不知道 無論是1對應於布什或2
對應於克里或與 等等等等，對不對？
>> 而這，只是為了我， 一個相當普遍的問題。
那麼，你可以在這種情況下怎麼辦？
因此，讓我們檢查所有這些其他的事情。
>> 狀態，我假設這 來自不同的狀態。
partyid收入。
讓我們來看看ID，然後
因此，也許有一件事你可以做的是 看看每個觀察
有共和黨一partyid 還是民主黨或什麼的。
那麼就讓我們來看看什麼是partyid。
>> 所以我要帶 DAT，然後我要去
要做到這一點美元符號 我以前做過運營商
並且這將 子集到該列。
然後我將頭這 20，正好看到了這個樣子。
>> 因此，這只是一堆港定居人士。
因此，換句話說，必須 缺少有關這些人的數據。
但是你也注意到這一點 的DAT partyid是一個因素
所以這給你不同的類別。
因此，換句話說，partyid可以採取 民主黨人，共和黨人，獨立，
還是其他什麼東西。
>> 因此，讓我們繼續前進，讓我們 看到這些is--哦，OK的。
所以，我要子集 以partyid然後
看看哪些是 民主黨人，例如。
這是要給你一個布爾值， TRUEs和FALSEs巨大布爾。
>> 現在，讓我們說，我想 以子集這些傢伙。
因此，這是要採取我的DAT和 子集的意見為準
有partyid平等等於民主黨。
這是相當長的，因為 有這麼多的人。
所以，現在，我要前往這20。
>> 正如你注意到，等於等號 是在你感興趣的
already--你還包括在NAS。
所以在這種情況下，你仍然不能得到 任何信息，因為現在你有來港定居
而你只是想看看它的 觀察對應民主黨
而不是這些缺失的值本身。
所以，你將如何擺脫這些來港定居的？
>> 所以在這裡我只是用在了我的鑰匙 游標，然後說走動。
然後在這裡我只是去 說is.na datpartyid。
因此，這與和將採取 兩個不同的布爾向量
並說這將是 TRUE和FALSE的例子。
所以它會做這個組件明智的。
所以在這裡我想說的起飛 數據幀，子集
到對應於民主黨人的那些， 並刪除其中的任何不屬於NA。
>> 因此，這will--應 給你的東西。
讓我們來看看is.na.
讓我們試著is.na datpartyid。
這應該給你 - sorry--只是一個布爾向量。
然後，因為它是如此漫長， 我要去子集20。
好不好。
所以這應該工作。
>> 而這一次也將是TRUEs。
啊，所以我在這裡的錯誤是I'm--我 使用C ++和R互換，所以我做
這個錯誤的所有時間。
在與運營商的 其實你想要的。
不希望使用兩個 ＆符號，只是一個單一的之一。
好不好。
>> 所以，讓我們來看看。
所以我們子集化的 partyid他們是民主黨
而他們沒有缺失值。
現在讓我們來看看 哪些，他們投票支持。
因此，它似乎最喜歡的 他們投票支持1。
所以我要繼續前進 並說這是克里。
>> 同樣，你可以 還去共和黨
並希望，這應該給你2。
這只是一堆不同的列。
事實上，這是2。
所以partyid所有共和黨， 他們大多​​投票支持2。
>> 所以它看起來，只是 通過看這個，
共和黨將是 一個very--或partyid
將是一個非常 在確定大因素
哪位候選人，他們是 會投票支持。
這是一般的明顯事實。
這符合您的 直覺的，當然。
如此看來像我 時間不多了這樣
讓我應該繼續 並展示一些快速的圖像。
因此，這裡的東西是輕微 更複雜的可視化。
所以在這種情況下，這是一個很 簡單只是檢查分析什麼
'04總統是。
>> 所以在這種情況下，假設你 要回答這個問題。
因此，假設我們想知道投票 在2004年的總統選舉中的行為
以及如何通過不同的比賽。
所以，你不僅要 看到投票行為，
但你希望每個來子集 那種種族和總結了。
你只能告訴 通過這種複雜的符號
這是一種越來越朦朧。
>> 這樣的更先進的研發1 包是最近也是一種
被稱為dplyr。
所以它是這一個就在這裡。
和ggg-- ggplot2是一個不錯的 做更好的可視化方式
比內置於一體。
>> 所以我要加載 這兩個庫。
然後，我會去 提前並運行此命令。
你可以把它當作一個黑盒子。
>> 這是怎麼回事的是，這條管道 運營商正在通過這一說法
到這裡。
所以我說GROUP BY DAT 種族和當時的總統04。
然後，所有這些其他命令 被過濾，然後總結
在那裡我做的數量和 然後我繪製在這裡。
OK涼爽。
因此，讓我們繼續前進， 看看這是什麼樣子。
>> 因此，這裡發生了什麼，是我 剛才繪製的每個種族和然後
哪些，他們投票支持。
與這兩個不同的 值對應於2和1。
如果你想更 優雅的，你也可以
只是指定2 Kerry--或 2是布什，然後1克里。
你也可以擁有 在你的傳奇。
>> 而且你還可以拆分這些柱狀圖。
因為有一件事是 ，如果你注意到，
這不是很容易識別 其中這兩個值都較大。
這麼一件事，你會想 做的是利用這個藍色區域
，只是將它在這裡等你 可通過側比較這兩個側面。
我想這是我的東西 沒有時間做的事情，
但是這也很容易做到。
你可以看看 手冊頁ggplot的。
所以，你可以做ggplot像 這一點，讀入該手冊頁。
>> 所以，讓我迅速 告訴你一些很酷的事情。
讓我們繼續前進，去to--只是一個 應用機器學習。
因此，讓我們說我們有這三個 封裝所以我打算在加載這些。
因此，這只是輸出一些 信息後，我裝的東西。
所以我說這句話的read.csv， 此數據集，現在
我要繼續前進，並期待和 看看這是什麼數據集內。
>> 因此，第一個20的觀察。
所以我只是有X1，X2，和Y.因此， 似乎像一堆這些值
是從也許20到80左右。
然後同樣的X2，然後 此ý似乎是標籤0和1。
>> 為了驗證這一點，我可以 只是做匯總數據X1。
然後同樣的 所有這些其他列。
所以總結的快捷方式 只是顯示你快速的價值觀。
哦，對不起。
這應該是Y.
>> 所以在這種情況下，給出了 分位數，中位數，馬克塞斯為好。
在這種情況下，DATAY，可以看到 它只是將是0和1。
也平均在說 0.6，只是意味著它
好像我比0以上1秒。
>> 因此，讓我繼續前進，顯示 你這是什麼樣子。
所以我只是要繪製這樣。
讓我們來看看如何清除此。
哦確定。
好不好。
>> 因此，這是什麼樣子。
所以好像我指定的黃色 為0，然後衝我指定為1秒。
所以在這裡它看起來像 標註點和它
好像你只是想要一些 這類群集在此的。
>> 並讓我繼續前進，顯示 您其中的一些內置的功能。
因此，這裡是流明。
因此，這只是試圖 以適應線路於此。
那麼，什麼是最好的方法 我能適應這樣的行
它將最好分開 這種集群。
理想情況下，你可以看到 我只是運行這些命令
然後，我要去 提前並添加行。
>> 因此，這似乎是最好的猜測。
它採取的最好的一個最小化 在試圖將這一行的錯誤。
很顯然，這看起來種 不錯，但不是最好的。
和線性模型，在 一般情況下，將要
真正偉大的理論，只是排序 機器的建築基礎的
學習。
但在實踐中，你會 想要做一些更普遍。
>> 所以，你可以嘗試運行 一些所謂的神經網絡。
這些東西 越來越普遍。
他們只是工作飛馳 用於大型數據集。
因此，在這種情況下，我們僅have-- 讓我們see--我們有nrow。
所以nrow只是說行數。
因此，在這種情況下，我 有100個觀測值。
>> 因此，讓我繼續前進， 使一個神經網絡。
因此，這是非常好的 因為我只能說NNET
然後我回歸Y. 所以Y是該列。
然後回歸它 其他兩個變量。
因此，這是短 符號為X1和X2。
>> 因此，讓我們繼續前進並運行此。
哦，對不起。
我需要運行這件事。
而這僅僅是印刷符號 如何迅速或不能很快就
收斂。
所以看起來它沒有收斂。
因此，讓我繼續前進，打印 出了這個樣子。
>> 看到這裡的圖片，這裡是 輪廓呈現，以及它如何適應。
這是just--你可以看到 這一點，這是非常，非常漂亮。
它甚至可能是 過學習，但你也可以
考慮到這一點與其他 技術，如交叉驗證。
而這些也被內置到R.
>> 並讓我告訴你 支持向量機。
這是另一種常見的真 技術，機器學習。
它是非常相似的線性模型，但 它使用什麼叫做核方法。
讓我們來看看如何好，做。
所以這個人是非常類似於如何 還有一個神經網絡進行，
但它更順暢。
而這是基於關 對what--支持向量機是如何工作的。
>> 所以，這只是一個非常 一些快速概述
的內置功能，你可以做 而也有一些數據探索。
所以，讓我繼續前進 並返回到幻燈片。
>> 所以，很顯然，這是 不是很全面。
這真的只是一個傳情 顯示你什麼，你真的可以做R.
所以，如果你只是想 要了解更多信息，點擊這裡
是一群不同的資源。
>> 所以，如果你喜歡的教科書或者你 只是喜歡閱讀網上的東西，
那麼這是一個夢幻般的 一個接哈德利韋翰，
誰也創造了這一切 真的很酷包。
如果你喜歡的視頻，然後 伯克利有一個真棒集訓
這是several--這是種很長。
它會教你幾乎 一切你想知道R.
>> 同樣，還有Codeacademy 而所有這些其他類型
互動網站。
它們也越來越 common--越來越普遍。
所以，這是非常相似Codeacademy。
最後，如果你只是 希望社區和幫助，
這些都是一堆 事情你可以去。
很顯然，我們仍然 使用郵件列表，只
像幾乎所有其他 編程語言社區。
和#rstats，這是 我們的社區微博。
這實際上相當普遍。
然後用戶！
只是我們的會議。
>> 然後，當然，你可以 使用所有這些其他的Q＆A的事，
像堆棧溢出， 谷歌，然後GitHub上。
因為大多數這些包 和很多社區
圍繞發展將集中 代碼，因為它是開源的。
它只是真的在GitHub上好看。
最後，你可以，如果我聯繫 你只要有任何簡單的問題。
所以，你可以找到我的Twitter在這裡， 我的網站，只是我的電子郵件。
所以希望，這是 something--只有很短的傳情
什麼R是真正能夠做到的事情。
並希望，你只要 看看這三個環節
看看你可以做更多。
我想這只是它。
謝謝。
>> [掌聲]