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

熱線電話:13121318867

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



步驟1:你為什么要學(xué)習(xí)R

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

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

步驟2:安裝

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

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

步驟3:了解R的語(yǔ)法

學(xué)習(xí)一種編程語(yǔ)言的語(yǔ)法和學(xué)習(xí)一種自然語(yǔ)言沒(méi)什么不同,通過(guò)練習(xí)。一個(gè)比較好的方式是通過(guò)下面這些教程。


步驟4:R的核心 ->包

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

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

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

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

你很可能會(huì)發(fā)現(xiàn),當(dāng)你解決了一個(gè)R的問(wèn)題,又會(huì)出現(xiàn)5個(gè)新問(wèn)題。這時(shí)候你就需要幫助系統(tǒng)來(lái)指導(dǎo)你。

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

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

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

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

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

當(dāng)你了解上面這些之后,你就可以開(kāi)始進(jìn)行分析了。

6.1導(dǎo)入數(shù)據(jù)

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

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

Excel文件:可以通過(guò)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導(dǎo)入,類似Systat 和Weka的數(shù)據(jù)格式可以用 foreignpackage導(dǎo)入。

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


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

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

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

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

.用stringr進(jìn)行字符串操作

.工作時(shí)的時(shí)間和日期的安裝lubridate封裝使其工作與這些更容易一點(diǎn)。

.像zoo,xtsandquantmod這類包可以幫助你在中R進(jìn)行時(shí)間序列分析

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

R語(yǔ)言作為數(shù)據(jù)分析和科學(xué)家們最喜歡的工具的原因是因?yàn)樗?a href='/map/shujukeshihua/' style='color:#000;font-size:inherit;'>數(shù)據(jù)可視化能力。成千上萬(wàn)的基數(shù)通過(guò)R語(yǔ)言進(jìn)行創(chuàng)造,就像 FlowingData所創(chuàng)造出的崗位一樣,舉個(gè)例子就是著名的facebook 的可視化:



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

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



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

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

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

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

6.4統(tǒng)計(jì)部分

如果你是個(gè)統(tǒng)計(jì)學(xué)新手,當(dāng)你在運(yùn)用R語(yǔ)言的時(shí)候這里有一些非常可靠的資源可以幫助你理解

.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)

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

6.5 報(bào)告你的結(jié)果

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

這里有關(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語(yǔ)言是一種快速進(jìn)化的語(yǔ)言。學(xué)術(shù)界和企業(yè)界都在快速采用它,因此研發(fā)R語(yǔ)言新的功能和工具的速度正在迅速提升。這些新的技術(shù)和軟件包才是使我們感到最興奮的。

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



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

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

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

祝你成功!

來(lái)源 | kdnuggets

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



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

若不方便掃碼,搜微信號(hào):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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }