r語言程序設計是什么?
R語言是統(tǒng)計、計算和可視化的高級語言。開源,有可擴展的軟件包和眾多的應用。
R語言數(shù)據(jù)結(jié)構(gòu)其實以數(shù)據(jù)類型的方式出現(xiàn),有數(shù)據(jù)框,數(shù)組、向量和矩陣,因子和列表。數(shù)據(jù)框dataframe是統(tǒng)計專業(yè)常用數(shù)據(jù)集,而因子factor是分類所用的方法,表明了R語言鮮明的經(jīng)濟統(tǒng)計色彩。向量vector類似一維數(shù)組,但是沒有行名和列名,只有標簽names。數(shù)組array包括一維數(shù)組,二維數(shù)組和三維數(shù)組和多維數(shù)組,三維數(shù)組有行、列和層,有行名rownames和列名colnames。矩陣matrix是二維數(shù)組,但是具有矩陣計算的性質(zhì)。列表list不僅具有c語言結(jié)構(gòu)struct的特征,而且性質(zhì)是向量,因此是數(shù)據(jù)結(jié)構(gòu)中的廣義表。
R語言的數(shù)據(jù)結(jié)構(gòu)中,沒有樹和圖。樹可用靜態(tài)數(shù)組實現(xiàn),應用索引方法。而圖在軟件包igraph中提供的函數(shù)實現(xiàn),R語言的圖稱為網(wǎng)絡數(shù)據(jù)格式,所以能分析生物結(jié)構(gòu)和計算機網(wǎng)絡。
高級語言?
R語言有程序的控制結(jié)構(gòu)和函數(shù)function。盡管R語言是解釋型語言,但是可以用編譯的方式實現(xiàn),調(diào)用方法是source(file.R)命令。R語言的軟件包能在編程環(huán)境中,通過子菜單下載后安裝,因此是無障礙的。軟件包有7000多,在統(tǒng)計、數(shù)學計算、金融數(shù)據(jù)分析、生物學、互聯(lián)網(wǎng)數(shù)據(jù)分析,大數(shù)據(jù)、并行計算,混合編程、數(shù)據(jù)挖掘、數(shù)據(jù)分析方面有實際應用。
程序中加載軟件包的命令,
>library(parallel) #并行計算軟件包,單線程多核
查找軟件包中所有函數(shù),
>library(help=parallel)
>help(packet=parallel)
R語言和解釋型語言一樣,沒有變量聲明。R語言能編寫c++程序,應用Rcpp軟件包。
編程風格?
統(tǒng)計方式的R語言,稱為數(shù)據(jù)操作,僅僅是用命令處理數(shù)據(jù),將數(shù)據(jù)分組,參數(shù)估計與結(jié)果檢驗。金融數(shù)據(jù)分析,則是建立模型,檢驗模型數(shù)據(jù)擬合效果,因此數(shù)據(jù)操作好像沒有明顯的編程意義,實質(zhì)上沒有明顯的程序風格。
計算機專業(yè)的R語言,稱為編程的藝術(shù)。因子的應用方法、混合編程、并行程序設計、編寫軟件包,都是需要高超的編程技術(shù)和鮮明的編程風格,因此不同軟件包的函數(shù)的程序運行時間不同。
R語言程序執(zhí)行時間的函數(shù)是system.time(function),參數(shù)是系統(tǒng)執(zhí)行的函數(shù)function。