まず初めに、irisのデータを種類別に3つのデータに分割する。
setosa <- iris[iris$Species=="setosa",]
versicolor <- iris[iris$Species=="versicolor",]
virginica <- iris[iris$Species=="virginica",]
それぞれのデータについて、花弁とがくの大きさの平均をmeanを用いて求める。
setosa.mean <- apply(setosa[,1:4],2,mean)
versicolor.mean <- apply(versicolor[,1:4],2,mean)
virginica.mean <- apply(virginica[,1:4],2,mean)
求めた結果は次のようになる。
print(setosa.mean)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 5.006 3.428 1.462 0.246
print(versicolor.mean)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 5.936 2.770 4.260 1.326
print(virginica.mean)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 6.588 2.974 5.552 2.026
また、分散についてvarを用いて求めると次のようになる。
setosa.var <- apply(setosa[,1:4],2,var)
print(setosa.var)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 0.12424898 0.14368980 0.03015918 0.01110612
versicolor.var <- apply(versicolor[,1:4],2,var)
print(versicolor.var)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 0.26643265 0.09846939 0.22081633 0.03910612
virginica.var <- apply(virginica[,1:4],2,var)
print(virginica.var)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 0.40434286 0.10400408 0.30458776 0.07543265
また、花弁・がくのそれぞれで長さ・幅のプロットをとると次のようになる。
xlim <- c(1,8)
ylim <- c(0,3)
xlab <- "Petal.Length"
ylab <- "Petal.Width"
sub <- "setosa:red, versicolor.blue, virginica.black"
plot(setosa$Petal.Length, setosa$Petal.Width,
xlab=xlab, ylab=ylab, sub=sub, xlim=xlim, ylim=ylim, col="red")
par(new=T)
plot(versicolor$Petal.Length, versicolor$Petal.Width,
xlab=xlab, ylab=ylab, sub=sub, xlim=xlim, ylim=ylim, col="blue")
par(new=T)
plot(virginica$Petal.Length, virginica$Petal.Width,
xlab=xlab, ylab=ylab, sub=sub, xlim=xlim, ylim=ylim, col="black")
花弁については上のようなプロットになり、幅と長さは相関がありそうに見える。
xlim <- c(2,9)
ylim <- c(2,5)
xlab <- "Sepal.Length"
ylab <- "Sepal.Width"
sub <- "setosa:red, versicolor.blue, virginica.black"
plot(setosa$Sepal.Length, setosa$Sepal.Width,
xlab=xlab, ylab=ylab, sub=sub, xlim=xlim, ylim=ylim, col="red")
par(new=T)
plot(versicolor$Sepal.Length, versicolor$Sepal.Width,
xlab=xlab, ylab=ylab, sub=sub, xlim=xlim, ylim=ylim, col="blue")
par(new=T)
plot(virginica$Sepal.Length, virginica$Sepal.Width,
xlab=xlab, ylab=ylab, sub=sub, xlim=xlim, ylim=ylim, col="black")
一方、がくについては長さと幅に相関があるようには見えない。