1. 程式人生 > >R語言探索性分析及plyr資料轉換包

R語言探索性分析及plyr資料轉換包

R包dplyr可用於處理R內部或者外部的結構化資料,相較於plyr包,dplyr專注接受dataframe物件, 大幅提高了速度,並且提供了更穩健的資料庫介面。 下面針對一些具體的例子介紹探索性分析和plyr資料轉換包 統計diamonds(R語言自帶的資料集)在不同克拉的數量

#%>%管道運算子,用於傳遞資料集
diamonds %>%
    count(cut_width(carset,0.5))

carset代表是克拉資料集,0.5代表的集合長度,count點明是統計量 這裡寫圖片描述

用直方圖畫出小於三克拉的鑽石分佈

a<-diamonds %>%
  filter
(carat<3) ggplot(data=a,mapping=aes(x=carat))+ #設定直方圖的binwidth geom_histogram(binwidth=0.01)+ #設定x軸的標度 scale_x_continuous(breaks=seq(from=0,to=3,by=0.5))

這裡寫圖片描述 從這個圖可以初步進行資料分析 1.克拉越大的鑽石的頻數越小 2.整數克拉的頻數遠大於同區段非整數克拉的頻數。且這種區別在克拉越大的區段越明顯 這些推斷明顯和日常生活的常識是相符的。 在0克拉到1克拉之間,我們對是否是購買整數克拉並不在乎,0.3和0.5基本沒什麼區別,但隨著克拉數越大,我們越關注是否能購買到整數克拉的鑽石。相比於2.1克拉,我們更傾向於2克拉。

鑽石的異常值分析 對鑽石的異常值進行分析

ggplot(data=diamonds,mapping=aes(x=y))+
    geom_histogram(binwidth=0.5)

這裡寫圖片描述 似乎看不出有異常值,所有的值都緊密集中在一定的範圍內,不妨把圖縮小一點,因為例如一張世界地圖,如果我們想在世界地圖裡面找到一個城鎮(異常值)就需要將地圖放大

ggplot(data=diamonds,mapping = aes(x=y))+
  geom_histogram(binwidth = 0.5)+
 #設定y軸的範圍,變向縮小y軸
  coord_cartesian(ylim = c(0
,20)
)

這裡寫圖片描述 放大後我們能清晰的看到異常值,0克拉和32克拉,59克拉都是異常值,是違背常理的。 連續性和離散型 離散型和離散型資料組合

ggplot(mpg)+
  #box picture
  geom_boxplot(mapping=aes(x=reorder(class,hwy,FUN=median),y=hwy))+
  coord_flip()                    
#離散值與離散值 cut和color都是離散值
diamonds %>%
  count(color,cut) %>%
  ggplot(mapping = aes(x=color,y=cut))+
  geom_tile(mapping=aes(fill=n))

這裡寫圖片描述 這裡寫圖片描述 值得注意的有reorder函式和geom_tile 還有離散資料和連續資料在分別作為x座標和y座標選取的方法,怎麼樣才能準確的把影象表達清楚,有時候必須要考慮離散資料和連續資料的區別