R代碼

R代碼

R代碼是指使用R語言時書寫的代碼。R是一套完整的數據處理、計算和製圖軟體系統。其功能包括:數據存儲和處理系統;數組運算工具(其向量、矩陣運算方面功能尤其強大);完整連貫的統計分析工具;優秀的統計製圖功能;簡便而強大的程式語言:可操縱數據的輸入和輸出,可實現分支、循環,用戶可自定義功能。

基本介紹

  • 中文名:R代碼
  • 外文名:R code
  • 分類:計算機 編程
  • 時間:1980年
  • 可視化:散點圖 直方圖等
  • 定義:指使用R語言時書寫的代碼
簡介,歷史,特點,優勢,可視化套用,散點圖,直方圖,柱狀圖和條形圖,箱線圖,面積圖,熱點圖,關係圖,R包介紹,安裝包,載入包,查看包的相關信息,

簡介

R代碼是指使用R語言時書寫的代碼。R是一套完整的數據處理、計算和製圖軟體系統。其功能包括:數據存儲和處理系統;數組運算工具(其向量、矩陣運算方面功能尤其強大);完整連貫的統計分析工具;優秀的統計製圖功能;簡便而強大的程式語言:可操縱數據的輸入和輸出,可實現分支、循環,用戶可自定義功能。

歷史

R是統計領域廣泛使用的誕生於1980年左右的S語言的一個分支。可以認為R是S語言的一種實現。而S語言是由貝爾實驗室開發的一種用來進行數據探索、統計分析和作圖的解釋型語言。最初S語言的實現版本主要是S-PLUS。S-PLUS是一個商業軟體,它基於S語言,並由MathSoft公司的統計科學部進一步完善。後來紐西蘭奧克蘭大學的Robert Gentleman和Ross Ihaka及其他志願人員開發了一個R系統。由“R開發核心團隊”負責開發。R可以看作貝爾實驗室(AT&T BellLaboratories)的RickBecker,JohnChambers和AllanWilks開發的S語言的一種實現。當然,S語言也是S-Plus的基礎。所以,兩者在程式語法上可以說是幾乎一樣的,可能只是在函式方面有細微差別,程式十分容易地就能移植到一程式中,而很多一的程式只要稍加修改也能運用於R。

特點

R作為一種統計分析軟體,是集統計分析與圖形顯示於一體的。它可以運行於UNIX,Windows和Macintosh的作業系統上,而且嵌入了一個非常方便實用的幫助系統,相比於其他統計分析軟體,R還有以下特點:
1、R是自由軟體。這意味著它是完全免費,開放原始碼的。可以在它的網站及其鏡像中下載任何有關的安裝程式、原始碼、程式包及其原始碼、文檔資料。標準的安裝檔案身自身就帶有許多模組和內嵌統計函式,安裝好後可以直接實現許多常用的統計功能。
2、R是一種可程式的語言。作為一個開放的統計編程環境,語法通俗易懂,很容易學會和掌握語言的語法。而且學會之後,我們可以編制自己的函式來擴展現有的語言。這也就是為什麼它的更新速度比一般統計軟如SPSS,SAS等快得多。大多數最新的統計方法和技術都可以在R中直接得到。
3.、所有R的函式和數據集是保存在程式包裡面的。只有當一個包被載入時,它的內容才可以被訪問。一些常用、基本的程式包已經被收入了標準安裝檔案中,隨著新的統計分析方法的出現,標準安裝檔案中所包含的程式包也隨著版本的更新而不斷變化。在另外版安裝檔案中,已經包含的程式包有:base-R的基礎模組、mle-極大似然估計模組、ts-時間序列分析模組、mva-多元統計分析模組、survival-生存分析模組等等。
4、R具有很強的互動性。除了圖形輸出是在另外的視窗處,它的輸入輸出視窗都是在同一個視窗進行的,輸入語法中如果出現錯誤會馬上在視窗口中得到提示,對以前輸入過的命令有記憶功能,可以隨時再現、編輯修改以滿足用戶的需要。輸出的圖形可以直接保存為JPG,BMP,PNG等圖片格式,還可以直接保存為PDF檔案。另外,和其他程式語言和資料庫之間有很好的接口。
5、如果加入R的幫助郵件列表一,每天都可能會收到幾十份關於R的郵件資訊。可以和全球一流的統計計算方面的專家討論各種問題,可以說是全世界最大、最前沿的統計學家思維的聚集地。

優勢

21 世紀人類進入信息社會,感測器和社會網路產生海量數據,數據累積的量變引發質變,越來越多的企業、行業和國家以數據為資源進行知識和智力開發,挖掘了數據內在的階值,逐步形成了大數據的概念。由於 R 語言並行計算存在令人詬病的“吃記憶體”弱點,所以很多觀點認為 R 語言處理不了大數據。這裡先不論大數據究竟是 GB 級還是 TB 或 PB 級的,甚至說處理不了的數據集才叫大,R 語言在處理 TB 級以上的數據集的確不是強項,可以說效率很低。
R 語言的優勢在於其眾多優秀的數據挖掘軟體包,以及諸多非常強大的繪圖軟體包,如 ggplot2 之類,深得各行業數據分析人士的青睞。近些年數據挖掘和大數據等概念的流行,R 作為數據分析工具正逐漸被重視。藉助于越來越多並行計算及大數據處理相關的 R 程式包,R 可以結合併行計算框架 Hadoop 來做大數據處理。R 語言的模型算法優勢加上 Hadoop 處理大數據的優勢,這種結合正慢慢地成為數據挖掘技術的主流。

可視化套用

今天,隨著數據量的不斷增加,數據可視化成為將數字變成可用的信息的一個重要方式。R語言提供了一系列的已有函式和可調用的庫,通過建立可視化的方式進行數據的呈現。在使用圖表分析的時候,常用的有7種圖表:散點圖,直方圖,柱狀圖和條形圖,箱線圖,面積圖,熱點圖,相關圖。我們以超市的數據作為舉例來介紹。

散點圖

使用場景:散點圖通常用於分析兩個連續變數之間的關係。在超市數據中,如果我們想根據他們的成本數據來可視化商品的知名度,我們可以用散點圖,兩個連續的變數這裡我們命名為Item_Visibility和Item_MRP。
R代碼
這裡使用R中的ggplot()和geom_point()函式。
library(ggplot2)// ggplot2 是R中的一個函式館
ggplot(train, aes(Item_Visibility, Item_MRP)) + geom_point() + scale_x_continuous("Item
Visibility", breaks = seq(0,0.35,0.05))+ scale_y_continuous("Item MRP", breaks = seq(0,270,by =
30))+ theme_bw()

直方圖

使用場景:直方圖用於連續變數的可視化分析。將數據劃分,並用機率的形式呈現數據的規律。我們可以將分類根據需求進行組合和拆分,從而通過這種方式看到數據的變化。
繼續使用上面我們引入的超市數據的例子,如果我們需要知道不同成本段的商品的數量,我們可以將所有數據畫出一個直方圖,Item_MRP作為橫坐標。如下圖所示:
R代碼
下面是一個簡單的畫直方圖的例子,使用的是R中的ggplot()和geom_histogram()函式。
ggplot(train, aes(Item_MRP)) + geom_histogram(binwidth = 2)+
scale_x_continuous("Item MRP", breaks = seq(0,270,by = 30))+
scale_y_continuous("Count", breaks = seq(0,200,by = 20))+
labs(title = "Histogram")

柱狀圖和條形圖

使用場景:柱狀圖一般用於表現分類的變數或者是連續的分類變數的組合。
在超市數據的例子中,如果我們需要知道在每一年新開的超市的門店數量,那么柱狀圖就是一個很好的圖形分析的方式。用“年”的信息作為坐標,如下圖所示:
R代碼
下面是一個簡單的畫柱狀圖的例子,使用的是R中的ggplot()函式。
ggplot(train, aes(Outlet_Establishment_Year)) + geom_bar(fill = "red")+theme_bw()+
scale_x_continuous("Establishment Year", breaks = seq(1985,2010)) +
scale_y_continuous("Count", breaks = seq(0,1500,150)) +
coord_flip()+ labs(title = "Bar Chart") + theme_gray()

箱線圖

使用場景:箱線圖一般用於相對複雜的場景,通常是組合分類的連續變數。這種圖表套用於對數據延伸的可視化分析和檢測離值群。主要包含數據的5個重要節點,最小值,25%,50%,75%和最大值。
在我們的案例中,如果我們想要找出每個折扣店每個商品銷售的價格的情況,包括最低價,最高價和中間價,箱線圖就大有用處。除此之外,箱線圖還可以提供非正常價格商品銷售的情況,如下圖所示。
R代碼
圖中,黑色的點為離值群。離值群的檢測和剔除是數據挖掘中很重要的環節。
下面是一個簡單的畫箱線圖的例子,使用的是R中的ggplot()和geom_boxplot函式。
ggplot(train, aes(Outlet_Identifier, Item_Outlet_Sales)) + geom_boxplot(fill = "red")+
scale_y_continuous("Item Outlet Sales", breaks= seq(0,15000, by=500))+
labs(title = "Box Plot", x = "Outlet Identifier")

面積圖

使用場景:面積圖通常用於顯示變數和數據的連續性。和線性圖很相近,是常用的時序分析方法。另外,它也被用來繪製連續變數和分析的基本趨勢。
超市案例中,當我們需要知道隨著時間的推移,折扣店商品的品種走勢,我們可以畫出如下的面積圖,圖中呈現了折扣店商品的成交量的變化。
R代碼
下面是一個簡單的畫面積圖的例子,用於分析折扣店商品成交數量的走勢,使用的是R中的ggplot()和geom_area函式。
ggplot(train, aes(Item_Outlet_Sales)) + geom_area(stat = "bin", bins = 30, fill = "steelblue") +
scale_x_continuous(breaks = seq(0,11000,1000))+
labs(title = "Area Chart", x = "Item Outlet Sales", y = "Count")

熱點圖

使用場景:熱點圖用顏色的強度(密度)來顯示二維圖像中的兩個或多個變數之間的關係。可對圖表中三個部分的進行信息挖掘,兩個坐標和圖像顏色深度。
超市案例中,如果我們需要知道每個商品在每個折扣店的成本,如下圖中所示,我們可以用三個變數Item_MRP,Outlet_Identifier和Item_type進行分析。
R代碼
暗的數據表示Item_MRP低於50,亮的數據表示Item_MRP接近250。
下面是R代碼,使用了ggplot()函式做簡單的熱點圖。
ggplot(train, aes(Outlet_Identifier, Item_Type))+
geom_raster(aes(fill = Item_MRP))+
labs(title ="Heat Map", x = "Outlet Identifier", y = "Item Type")+
scale_fill_continuous(name = "Item MRP")

關係圖

使用場景:關係圖用作表示連續變數之間的關聯性。每個單元可以標註成陰影或顏色來表明關聯的程度。顏色越深,代表關聯程度越高。正相關用藍色表示,負相關用紅色表示。顏色的深度隨著關聯程度的遞增而遞增。
超市案例中,用下圖可以展現成本,重量,知名度與折扣店開業的年份和銷售價格之間的關係。可以發現,成本和售價成正相關,而商品的重量和知名度成負相關。
R代碼
下面是用作簡單關係圖的R代碼,使用的是corrgram()函式。
install.packages("corrgram")
library(corrgram)
corrgram(train, order=NULL, panel=panel.shade, text.panel=panel.txt,
main="Correlogram")

R包介紹

R語言的使用,很大程度上是藉助各種各樣的R包的輔助,從某種程度上講,R包就是針對於R的外掛程式,不同的外掛程式滿足不同的需求,截至2013年3月6日,CRAN已經收錄了各類包4338個。例如用於經濟計量、財經分析、人文科學研究以及人工智慧。

安裝包

1、通過選擇選單:
程式包->安裝程式包->在彈出的對話框中,選擇你要安裝的包,然後確定。
2、使用命令
install.packages("package_name","dir")
package_name:是指定要安裝的包名,請注意大小寫。
dir:包安裝的路徑。默認情況下是安裝在..\library 資料夾中的。可以通過本參數來進行修改,來選擇安裝的資料夾。
3、本地來安裝
如果你已經下載的相應的包的壓縮檔案,則可以在本地來進行安裝。請注意在windows、unix、macOS作業系統下安裝檔案的後綴名是不一樣的:
1)linux環境編譯運行:tar.gz檔案
2)windows 環境編譯運行 :.zip檔案
3)MacOS環境編譯運行:.tgz檔案

載入包

包安裝後,如果要使用包的功能。必須先把包載入到記憶體中(默認情況下,R啟動後默認載入基本包),載入包命令:
Library(“包名”)
Require(“包名”)

查看包的相關信息

1、查看包幫忙
library(help="package_name")
主要內容包括:例如:包名、作者、版本、更新時間、功能描述、開源協定、存儲位置、主要的函式
help(package = "package_name")
主要內容包括:包的內置所有函式,是更為詳細的幫助文檔
2、查看當前環境哪些包載入
find.package() 或者 .path.package()
3、移除包出記憶體
detach()
4、把其它包的數據載入到記憶體中
data(dsname, package="package_name")
5、查看這個包里的包有數據
data( package="package_name")
6、列出所有安裝的包
library()

相關詞條

熱門詞條

聯絡我們