[音樂播放] 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是真正能夠做到的事情。 並希望,你只要 看看這三個環節 看看你可以做更多。 我想這只是它。 謝謝。 [掌聲]