99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀R的學習路徑,從新手到專家的7個步驟
R的學習路徑,從新手到專家的7個步驟
2016-04-06
收藏
摘要:如果你從來沒有編程經(jīng)驗,也沒有比較熟悉的統(tǒng)計軟件,那么學習R可能會比較困難。這個學習路徑主要針對新手。關(guān)于R有很多優(yōu)秀資源,這里介紹的一些在線課程、書籍和更多讓你盡快學會R。



步驟1:你為什么要學習R

R迅速成為數(shù)據(jù)科學里的通用語言,你會發(fā)現(xiàn)在越來越多的商業(yè)環(huán)境和一些商業(yè)競爭軟件如SAS,STATA和SPSS中使用R。

這意味著,對R的需求日益增長,而且掌握這個技能很容易獲得高薪。通過學習R,你能熟悉一個高度多樣化和有趣的社區(qū),而且R在金融、基因組分析、房地產(chǎn)、廣告、支付等不同領(lǐng)域都有不同的應(yīng)用,這些領(lǐng)域都在促進R的發(fā)展,你會遇到各種例子,在每天基礎(chǔ)工作上的應(yīng)用,使工作變的更有趣,也會通過解決這些問題增加你的能力。

步驟2:安裝

在你用R工作之前,首先下載安裝在你的電腦上,登錄http://cran.r-project.org/mirrors.html,選擇離你最近的CRAN鏡像站點,選擇了鏡像站點后,根據(jù)你所用的操作系統(tǒng)下載適當?shù)陌姹尽有不同的版本,安裝起來很簡單,支持 Linux,Mac 和Windows 的系統(tǒng)。詳細可參照https://cran.r-project.org/。

在安裝R時,最好有一個集成開發(fā)環(huán)境,如果你喜歡一個圖形用戶界面,你應(yīng)該看看r-commander。

步驟3:了解R的語法

學習一種編程語言的語法和學習一種自然語言沒什么不同,通過練習。一個比較好的方式是通過下面這些教程。


步驟4:R的核心 ->包

每一個R包是一個簡單的代碼包。除了基本的代碼庫,包通常包括數(shù)據(jù)、文檔和測試。作為一個R的用戶,你可以下載一個特定的包(有些甚至是預(yù)先安裝)并開始使用它的功能。每個人都可以開發(fā)包,每個人都可以與他人分享他們的R包。

這是一個非常強大的概念,這個語言已經(jīng)形成一個社區(qū),你不需要做所有的核心規(guī)劃,或者自己理解每一個特定算法和可視化的所有細節(jié)。只需要一個軟件包,你就可以簡單的使用。

許多軟件包可以從Comprehensive R Archive Network這里下載,你可以通過install.packages function來安裝下載。你還可以通過Bioconductor,GitHub和bitbucket來尋找一些特定的包。在Rdocumentation上你可以很容易的搜索CRAN,github和 bioconductor上面的包。

步驟5:幫助系統(tǒng)

你很可能會發(fā)現(xiàn),當你解決了一個R的問題,又會出現(xiàn)5個新問題。這時候你就需要幫助系統(tǒng)來指導你。

在你可以使用其內(nèi)置的幫助系統(tǒng)。例如,輸入`?plot`將為您提供的繪圖功能的文檔。

R把一大重點放在文檔。前面提到的rdocumentation就是一個能尋找到各種報和功能的文檔的偉大網(wǎng)站。

Stack Overflowis 是一個很好的關(guān)于R的問答社區(qū)。

還有一些關(guān)于R的很好的博客例如KDnuggetsandR-bloggers.

步驟6:數(shù)據(jù)分析工作流程

當你了解上面這些之后,你就可以開始進行分析了。

6.1導入數(shù)據(jù)

你可以把各種數(shù)據(jù)格式都導入到R里,但是不同的類型需要不同的方法,這是一個難點。

文本文件:你可以從預(yù)安裝工具包中使用read.table()。和read.csv()等功能導入文本文件。

Excel文件:可以通過readxl package, gdata package和XLConnectpackage. https://www.datacamp.com/community/tutorials/r-tutorial-read-excel-into-r

SAS、STATA and SPSS數(shù)據(jù)可以用haven package導入,類似Systat 和Weka的數(shù)據(jù)格式可以用 foreignpackage導入。

和一些數(shù)據(jù)庫相關(guān)聯(lián)可以使用RMySQL, RpostgreSQL和the ROraclepackage.


如果你想了解更多關(guān)于如何將數(shù)據(jù)導入R的教程可以參照

https://www.datacamp.com/community/tutorials/r-data-import-tutorial

6.2數(shù)據(jù)操作

.用tidyr包為整理你的數(shù)據(jù)

.用stringr進行字符串操作

.工作時的時間和日期的安裝lubridate封裝使其工作與這些更容易一點。

.像zoo,xtsandquantmod這類包可以幫助你在中R進行時間序列分析

6.3 數(shù)據(jù)可視化

R語言作為數(shù)據(jù)分析和科學家們最喜歡的工具的原因是因為它的數(shù)據(jù)可視化能力。成千上萬的基數(shù)通過R語言進行創(chuàng)造,就像 FlowingData所創(chuàng)造出的崗位一樣,舉個例子就是著名的facebook 的可視化:



如果你想開始與可視化研究,那就要花些時間研究ggplot2的軟件包。其中一個有名的軟件包就是研發(fā)的圖形和圖。ggplot2強調(diào)利用語法和圖形,因此在使用時非常直觀(你不斷建立你的圖的部分,這有點像玩樂高)。有大量資源可以幫助你, interactivecoding tutorial好比cheatsheet(一個mac的操作系統(tǒng)軟件)和Hadley Wickham即將出版的書。

除了ggplot2以外,還有很多其他的軟件包,可以創(chuàng)建高度互動的圖形,還有很多很好的學習資源可以讓你加快速度。



如果你在數(shù)據(jù)繪圖中遇到問題,這篇文章可能會對你有幫助。

https://www.datacamp.com/community/tutorials/15-questions-about-r-plots

接下來要說的就是“傳統(tǒng)”的圖形,R語言也可以處理可視化的空間數(shù)據(jù)。你可以很容易地可視化空間數(shù)據(jù)和模型上的來源,如谷歌地圖和開放街道地圖包,如ggmap靜態(tài)地圖。另一個很大的軟件包choroplethr由阿里拉姆斯坦Trulia或TMAP開發(fā)。如果你想了解更多。

https://cran.r-project.org/doc/contrib/intro-spatial-rl.pdf

6.4統(tǒng)計部分

如果你是個統(tǒng)計學新手,當你在運用R語言的時候這里有一些非常可靠的資源可以幫助你理解

.AndrewConway’s Introduction to statistics with R (online interactive codingcourse)

.Data Analysis and StatisticalInference by Duke University (MOOC)

.PracticalData Science With R (book)

.DataAnalysis for life sciences by Harvard University (MOOC)

.Data ScienceSpecialization by Johns Hopkins (MOOC)

.ASurvival Guide to Data Science with R (book)

請注意,這些資源是針對初學者的。如果你想進一步深入學習,你可以看看關(guān)于機器學習R語言的復雜資源。書的話,比如《掌握機器學習》和《機器學習R語言》就非常好地解釋了不同的概念。還有一些網(wǎng)上資源,如Kaggle機器學習課程可以幫助你練習。此外還有一些非常有趣的博客例如MachineLearning Mastery 和this post.。

6.5 報告你的結(jié)果

分享你的模型的一個最好的方法是通過動態(tài)文檔的可視化。R Markdown(基于knitr和Pandoc)是一個做數(shù)據(jù)分析報告的最好的方式,在HTML,Word,PDF,ioslides等渠道上都是可以進行重復進行的。

這里有關(guān)于R Markdown的教程,https://www.datacamp.com/courses/reporting-with-r-markdown?tap_a=5644-dce66f&tap_s=14201-e863d5

步驟7:現(xiàn)在去發(fā)現(xiàn)令人興奮的新東西

R語言是一種快速進化的語言。學術(shù)界和企業(yè)界都在快速采用它,因此研發(fā)R語言新的功能和工具的速度正在迅速提升。這些新的技術(shù)和軟件包才是使我們感到最興奮的。

.HTML控件允許你創(chuàng)建交互式的Web可視化等動態(tài)地圖(傳單),時間序列數(shù)據(jù)的圖表(Dygraphs),互動表(數(shù)據(jù)表)。如果你想學習如何創(chuàng)建你自己的東西那就要通過RStudio看看這個教程。https://www.rstudio.com/resources/webinars/creating-javascript-data-visualizations-in-r/



.最近另一種在市場上引起爭議的技術(shù)是shiny。有了Shiny,你可以使你自己的交互式網(wǎng)絡(luò)應(yīng)用程序像這些一樣,有一個完整的學習門戶網(wǎng)站,還可以致力于建設(shè)自己的Shiny應(yīng)用程序。

.最近,有很多人將注意力集中于如何在云計算中應(yīng)用R語言。如果你想自己獨立完成這件事情,你可以看一下R語言是如何在AWS運用的,還有Azure(Azure是微軟基于云計算的操作系統(tǒng)) 的R語言編程,以及RStudioServer on Digital Ocean

一旦你在R語言上有一些經(jīng)驗,提升你的R語言水平的一個很好的辦法就是看看HadleyWickham的免費書Advanced R。此外,你還可以其他數(shù)據(jù)科學愛好者在Kaggle上競賽來鍛煉你的R語言水平。在這里,你有機會去操作一些有趣的案例,比如說泰坦尼克號數(shù)據(jù)集。

祝你成功!

來源 | kdnuggets

翻譯 | 數(shù)據(jù)客



數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }