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坐标选取的方法,怎么样才能准确的把图像表达清楚,有时候必须要考虑离散数据和连续数据的区别