rm(list=ls())
options(stringsAsFactors = F)
library(tidyverse)
library(dplyr)
library(ggplot2)
#查看每列的非重复值
distinct(diamonds,cut)
##查看每个非重复值出现的次数
count(diamonds,cut)
#cut仅有5个固定的取值,是分类变量,可以用条形图进行可视化。
ggplot(data=diamonds)+geom_bar(mapping=aes(x=cut))
#连续变量-例如diamonds中的carat
#用直方图进行可视化 binwidth是定义等宽分箱的宽度
ggplot(diamonds)+geom_histogram(mapping=aes(x=carat),
binwidth = 0.5)
#统计每个区间的观测数量
diamonds %>% count(cut_width(carat,0.5))
#典型值
#直方图或条形图较高的读数,表示常见值。聚集成簇成为子组。
##异常值
ggplot(diamonds)+
geom_histogram(mapping=aes(x=y),binwidth = 0.5)
ggplot(diamonds)+
geom_histogram(mapping=aes(x=y),binwidth = 0.5)+
coord_cartesian(ylim=c(0,50))
#找出异常值
filter(diamonds,y<3|y>20)%>%
select(price,x,y,z)%>%
arrange(y)
#在异常值中,有7个是缺失值
##异常值的处理方法
#1.丢弃
diamonds2 <- diamonds %>%
filter(between(y,3,20))
#2.用缺失值代替异常值
diamonds2 <- diamonds %>%
mutate(y=ifelse(y<3 | y>20,NA,y))#表示如果符合要求,就替换为NA
#ggplot中明确移除缺失值的命令:na.rm=TRUE
ggplot(data=diamonds,mapping = aes(x=x,y=y))+
geom_point(na.rm = TRUE)
#相关变动
#(1)分类变量与连续变量
#reorder函数对变量进行重排序:
(请注意例子是根据hwy来对class进行重排序)
ggplot(data=mpg)+
geom_boxplot(mapping=aes(x=reorder(class,hwy,FUN=median),y=hwy))
#(2)两个分类变量
count(diamonds,color,cut)
ggplot(diamonds)+
geom_count(mapping=aes(x=cut,y=color))
diamonds %>%
count(color, cut) %>%
ggplot(mapping = aes(x = color, y = cut)) +
geom_tile(mapping = aes(fill = n)) #geom_tile更好看
#(3)两个连续变量
ggplot(diamonds)+
geom_point(mapping=aes(x=carat,y=price))
#设置透明度更美观的散点图
ggplot(data = diamonds) +
geom_point(mapping = aes(x = carat, y = price), alpha = 1 / 100)
smaller <- diamonds %>%
filter(carat < 3)
ggplot(data = smaller) +
geom_bin2d(mapping = aes(x = carat, y = price))#矩形分箱
install.packages("hexbin")
ggplot(data = smaller) +
geom_hex(mapping = aes(x = carat, y = price))#六边形分箱
参考:生信星球 书没带回家 后续还需要补充
网友评论