自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文讀懂R語言 取代SAS做所有的事情

數(shù)據(jù)庫
以下5種語言 NODE、LUA、Python、Ruby、R ,哪個在2014年的應(yīng)用前景會更好?

我毫不猶豫的選擇R。R不僅是2014年,也是以后更長一段時間的主角。

1. 我的編程背景

本人程序員、架構(gòu)師,從編程入門到今天,一直深信著Java是改變世界的語言,Java已經(jīng)做到了,而且一直很輝煌。但當(dāng)Java的世界越來越大,變得無所不能的時候,反而不夠?qū)I(yè),給了其他語言發(fā)展的機(jī)會。

本次要比較要5種編程語言(NODE,LUA,Python,Ruby,R),這些都是非常優(yōu)秀的,在特定領(lǐng)域發(fā)展壯大的語言。

我已使用Java語言 11年,R語言 3年,Node 1年,對于本次問題 “哪個語言在2014年的應(yīng)用前景會更好?”,我選擇R語言。

2. 為什么我會選擇R?

我會從下面的幾個方面,來說明我選擇R的原因。

1). R的基因

R是統(tǒng)計學(xué)家發(fā)明的語言,天生具有統(tǒng)計的基因。

從我開始學(xué)習(xí)R語言,我就開始了知識的跨界思考。統(tǒng)計基于概率論,概率論又基于數(shù)學(xué),用計算機(jī)的方式編程,解決某個領(lǐng)域的實(shí)際問題。簡單一算,4個學(xué)科知識的交集,決定著我們解決問題的能力。統(tǒng)計的基因,讓R語言與眾不同!

2). R的發(fā)展

R一直在小眾領(lǐng)域成長著,最早也只有統(tǒng)計學(xué)家在用,主要用R來代替SAS做統(tǒng)計計算。時代在進(jìn)步,隨著大數(shù)據(jù)的爆發(fā),R終于在這一波浪潮中,被工業(yè) 界所發(fā)現(xiàn)。然后,有越來越多的工程背景的人加入到這個圈子,對R計算引擎,R的性能,R的各種程序包進(jìn)行改進(jìn)和升級,讓R獲得了新生。

我們現(xiàn)在用到的R語言軟件,已經(jīng)越來越接近工業(yè)軟件的標(biāo)準(zhǔn)了。由工程師推動的R的發(fā)展速度,遠(yuǎn)遠(yuǎn)地超過了由統(tǒng)計學(xué)家推動的步伐。隨著人們對數(shù)據(jù)分析要求的進(jìn)一步增加,R會以更快的腳步繼續(xù)發(fā)展,將成為免費(fèi)的、開源的、數(shù)據(jù)分析軟件的代名詞。

3). R的社區(qū)和資源

R的發(fā)展,離不開R的社區(qū)支持。當(dāng)然,我不得不承認(rèn)R的官方社區(qū),從Web頁上看起來太簡陋了,稍微調(diào)整一下CSS樣式表,都會比現(xiàn)在好看很多。也許這種簡單、無修飾也是統(tǒng)計學(xué)家的基因吧。

在R的社區(qū)中,我們可以下載到R語言軟件,R的第三方軟件包,和R的其他支持軟件??梢哉业介_發(fā)者論壇,R-Journal列表,軟件包列表,R語言圖書列表,R用戶組等的信息,同其他語言的社區(qū)資源一樣豐富。

R是自由軟件,開發(fā)者可以開發(fā)自己的軟件包,封裝自己的功能,然后在CRAN上面發(fā)布。截止到2014年2月,共有5236個R包在CRAN上面發(fā)布。

可能很多人會說只有5236個包,數(shù)量太少了。這是因?yàn)镃RAN是需要提交申請的,R語言小組審核,檢查后再會發(fā)布的出來。而且審核非常嚴(yán)格的,高 質(zhì)量是發(fā)布一個新的R包基本要求。由于CRAN過于嚴(yán)格的審查,讓很多的開發(fā)者選擇在RForge上發(fā)布,還有些R包是基于Github發(fā)布的,我也在 github上面發(fā)布了自己的R包:https://github.com/bsspirit/chinaWeather。

R官方地址:http://www.r-project.org/ 

R開發(fā)者論壇:http://r.789695.n4.nabble.com/ 

CRAN:http://cran.rstudio.com/ 

RForge:https://r-forge.r-project.org/

4). R的哲學(xué)

每種語言都有自己的設(shè)計理念和哲學(xué),而我體會的R的哲學(xué),就是“靜下心做事情”。

R不需要很長的代碼,R也不需要設(shè)計模式。一個函數(shù)調(diào)用,傳幾個參數(shù),就能實(shí)現(xiàn)一個復(fù)雜的統(tǒng)計模型。我們需要思考,用什么模型,傳什么參數(shù),而不是怎么進(jìn)行程序設(shè)計。

我們可能會用R實(shí)現(xiàn) “從一個數(shù)學(xué)公式,變成一個統(tǒng)計模型” 的過程,我們也可能會考慮 “如何讓一個分類器結(jié)果更準(zhǔn)確”,但我們不會思考 “時間復(fù)雜度是多少,空間復(fù)雜度是多少”。

R的哲學(xué),可以讓你把數(shù)學(xué)和統(tǒng)計學(xué)的知識,變成計算模型,這也是R的基因所決定的。

5). R的使用者

R語言早期主要是學(xué)術(shù)界統(tǒng)計學(xué)家在用,在各種不同的領(lǐng)域,包括統(tǒng)計分析,應(yīng)用數(shù)學(xué),計量經(jīng)濟(jì),金融分析,財經(jīng)分析,人文科學(xué),數(shù)據(jù)挖掘,人工智能,生物信息學(xué),生物制藥,全球地理科學(xué),數(shù)據(jù)可視化等等。

近些年來,由互聯(lián)網(wǎng)引發(fā)的大數(shù)據(jù)革命,才讓工業(yè)界的人,開始認(rèn)識R,加入R。當(dāng)越來越多的有工程背景的人,加入到R語言使用者的隊伍后,R才開始像著全領(lǐng)域發(fā)展,逐步實(shí)現(xiàn)工業(yè)化的要求。

RevolutionAnalytics公司的RHadoop產(chǎn)品,讓R可以直接調(diào)用Hadoop集群資源

RStudio公司的RStudio產(chǎn)品,給了我們對于編輯軟件新的認(rèn)識

RMySQL, ROracle, RJDBC 打通了R和數(shù)據(jù)庫訪問通道

rmongodb, rredis, RHive, rhbase, RCassandra 打通過R和NoSQL的訪問通道

Rmpi, snow 打通了單機(jī)多核并行計算的通道

Rserve,rwebsocket 打通了R語言的跨平臺通信的通道

R不僅是學(xué)術(shù)界的語言,更將成為工業(yè)界必備的語言。

6). R的語法

R是面向?qū)ο笳Z言,語法如同Python。但R的語法很自由,很多函數(shù)的名字,看起來都是那么隨意,這也是R的哲學(xué)的一部分吧!

看到這樣的賦值語法,有其他語言基礎(chǔ)的程序員,肯定會崩潰的。

> a<-c(1,2,3,4)->b
> a
[1] 1 2 3 4
> b
[1] 1 2 3 4
隨機(jī)取正態(tài)分布N(0,1)的10個數(shù),又是這么的簡單。
> rnorm(10)
[1] -0.694541401 1.877780959 -0.178608091 0.004362026
[5] 0.836891967 1.794961298 0.115284187 0.155175219
[9] 0.464028612 -0.842569561

用R畫鳶尾花的數(shù)據(jù)集的散點(diǎn)圖,非常好的可視化效果

> data(iris) #加載數(shù)據(jù)集
> head(iris) #查看前6行數(shù)據(jù)集
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
> plot(iris) #畫圖

R畫圖

正是因?yàn)镽自由哲學(xué),讓R的語法獨(dú)特而簡潔,我已經(jīng)喜歡上這種哲學(xué)了。

7). R的思維模式

R語言讓我跳出了原有思維定式。使用R語言,我們應(yīng)該從統(tǒng)計學(xué)的角度想問題,而不是計算機(jī)的思維模式。

R語言是直接面向數(shù)據(jù)的語言。在我們的日常生活中,無論做什么事情都會產(chǎn)生數(shù)據(jù),上網(wǎng)有瀏覽數(shù)據(jù),買東西有消費(fèi)數(shù)據(jù),就算什么都不干,也會受大氣PM2.5的影響。利用R語言,我可以直接分析這些數(shù)據(jù)。

面向什么業(yè)務(wù),就分析什么數(shù)據(jù),不需要從產(chǎn)品經(jīng)理向程序員的角色轉(zhuǎn)換,不需要考慮有什么功能,更不需要考慮程序設(shè)計的事。

跳出程序員的思維模式,你所能認(rèn)知的東西會更多,找到更適合自己的定位。

8). R解決的問題

當(dāng)數(shù)據(jù)成為生產(chǎn)資料的時候,R就是為人們能運(yùn)用生產(chǎn)資料創(chuàng)造價值的生產(chǎn)工具,R語言主要解決的是數(shù)據(jù)的問題。

在很長期的歷史時期,人類產(chǎn)生的數(shù)據(jù)都沒有自互聯(lián)網(wǎng)誕生以來產(chǎn)生的數(shù)據(jù)多;當(dāng)Hadoop幫助人們解決了大數(shù)據(jù)存儲的問題后,如何發(fā)現(xiàn)數(shù)據(jù)的價值,成為當(dāng)前最火的話題。R語言的統(tǒng)計分析能力,就是數(shù)據(jù)分析***的工具。

所以,R要解決的問題,就是大數(shù)據(jù)時代的問題,是時代賦予的任務(wù)。

9). R的不足

前面說了太多R的優(yōu)點(diǎn)了,R也有很多不足之處。

R語言是統(tǒng)計學(xué)家編寫的軟件,并不如軟件工程師編寫的軟件那么健壯。

R語言軟件的性能,存在一些問題。

R語言很自由,語法命名不太規(guī)范,需要花時間熟悉。

R語言結(jié)合了很多數(shù)學(xué)、概率、統(tǒng)計的基礎(chǔ)知識,學(xué)起來有一定門檻。

R的這些不足,都是可以克服的。當(dāng)有更多的工程背景的人加入的時候,R語言會比現(xiàn)在更強(qiáng)大,幫助使用者創(chuàng)造更多的價值。

3. R的應(yīng)用前景

R可以做所有SAS做的事情。

R應(yīng)用最熱門的領(lǐng)域:

  • 統(tǒng)計分析:包括統(tǒng)計分布,假設(shè)檢驗(yàn),統(tǒng)計建模

  • 金融分析:量化策略,投資組合,風(fēng)險控制,時間序列,波動率

  • 數(shù)據(jù)挖掘:數(shù)據(jù)挖掘算法,數(shù)據(jù)建模,機(jī)器學(xué)習(xí)

  • 互聯(lián)網(wǎng):推薦系統(tǒng),消費(fèi)預(yù)測,社交網(wǎng)絡(luò)

  • 生物信息學(xué):DNA分析,物種分析

  • 生物制藥:生存分析,制藥過程管理

  • 全球地理科學(xué):天氣,氣候,遙感數(shù)據(jù)

  • 數(shù)據(jù)可視化:靜態(tài)圖,可交互的動態(tài)圖,社交圖,地圖,熱圖,與各種Javascript庫的集成

R有著非常廣闊的應(yīng)用前景,而且R也將成為新一代的最有能力創(chuàng)造價值的工具。

4. 時代賦予R的任務(wù)

R語言是在大數(shù)據(jù)時代被工業(yè)界了解和認(rèn)識的語言,R語言被時代賦予了,挖掘數(shù)據(jù)價值,發(fā)現(xiàn)數(shù)據(jù)規(guī)律,創(chuàng)造數(shù)據(jù)財富的任務(wù)。

R語言也是幫助人們發(fā)揮智慧和創(chuàng)造力的***的生產(chǎn)工具,我們不僅要學(xué)好R語言,還要用好R語言,為社會注入更多的創(chuàng)新的生產(chǎn)力。

所以,通過上面的幾節(jié)內(nèi)容所有的文字描述,我認(rèn)為“R是最值得學(xué)習(xí)的編程語言”。不論你還在讀書,還是已經(jīng)工作,掌握R語言這個工具,找最適合自己的位置,前途將無限量。

***總結(jié):在這5種語言中,R是最特殊的,R被賦予了與其他語言不同的使命。R的基因決定了,R將成為2014年,也可能是以后更長一段時間的主角。

責(zé)任編輯:彭凡 來源: 36大數(shù)據(jù)
相關(guān)推薦

2022-07-26 00:00:03

語言模型人工智能

2023-12-22 19:59:15

2021-08-04 16:06:45

DataOps智領(lǐng)云

2018-09-28 14:06:25

前端緩存后端

2022-09-22 09:00:46

CSS單位

2022-11-06 21:14:02

數(shù)據(jù)驅(qū)動架構(gòu)數(shù)據(jù)

2025-04-03 10:56:47

2023-05-20 17:58:31

低代碼軟件

2023-11-27 17:35:48

ComponentWeb外層

2022-10-20 08:01:23

2021-12-29 18:00:19

無損網(wǎng)絡(luò)網(wǎng)絡(luò)通信網(wǎng)絡(luò)

2022-07-05 06:30:54

云網(wǎng)絡(luò)網(wǎng)絡(luò)云原生

2022-12-01 17:23:45

2024-05-16 11:34:55

2021-02-05 05:26:33

字節(jié)ASCII控制

2020-12-30 09:05:24

架構(gòu)微內(nèi)核系統(tǒng)

2017-05-04 20:29:12

HTTP服務(wù)器TCP

2021-05-18 09:48:58

前端開發(fā)架構(gòu)

2024-01-03 08:54:17

Kubernetes策略工具

2017-05-15 11:10:10

大數(shù)據(jù)聚類算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號