使用 iris 数据集,用 ggplot2 绘制花萼长度、花萼宽度、花瓣长度、花瓣宽度的箱线图。并回答下列问题:
a. 计算三个物种的花萼长度的四分位差,判断哪个物种花萼长度离散程度最高,哪个物种花萼长度离散程度最低。
b. 计算三个物种的花萼宽度的标准差和方差,判断哪个物种花萼宽度离散程度最高,哪个物种花萼宽度离散程度最低。
c. 计算三个物种的花瓣长度的偏度,判断哪些物种花瓣长度是右偏分布,哪些物种花瓣长度是左偏分布。
d. 计算三个物种的花瓣宽度的峰度,判断哪个物种花瓣宽度峰度最大,哪个物种花瓣宽度峰度最小。
#绘制箱线图
library(ggplot2)
ggplot(iris,aes(x=factor(Species),y=Sepal.Length))+
geom_boxplot()
ggplot(iris,aes(x=factor(Species),y=Sepal.Width))+
geom_boxplot()
ggplot(iris,aes(x=factor(Species),y=Petal.Length))+
geom_boxplot()
ggplot(iris,aes(x=factor(Species),y=Petal.Width))+
geom_boxplot()
# 计算花萼长度的四分位差
q1 <- tapply(iris$Sepal.Length, iris$Species, quantile, probs = 0.25)
q3 <- tapply(iris$Sepal.Length, iris$Species, quantile, probs = 0.75)
iqr <- q3 - q1
iqr
# 计算花萼宽度的标准差和方差
sd <- tapply(iris$Sepal.Width, iris$Species, sd)
var <- tapply(iris$Sepal.Width, iris$Species, var)
sd
var
# 计算花瓣长度的偏度
install.packages("e1071")
library(e1071)
skewness <- tapply(iris$Petal.Length, iris$Species, skewness)
skewness
# 计算花瓣宽度的峰度
kurt <- tapply(iris$Petal.Width, iris$Species, kurtosis)
kurt