Es un conjunto de herramientas para manipulación de datos. Calculo de de la media de cada variable entre especies de iris.
mean.iris.loop <- NULL
for(species in unique(iris$Species))
{
iris_sub <- iris[iris$Species==species,]
column_means <- colMeans(iris_sub[,-5])
mean.iris.loop <- rbind(mean.iris.loop,column_means)
}
rownames(mean.iris.loop) <- unique(iris$Species)library (plyr)
ddply(iris,~Species,function(x) colMeans(x[,-which(colnames(x)=="Species")]))mean.iris.loop## Sepal.Length Sepal.Width Petal.Length Petal.Width
## setosa 5.006 3.428 1.462 0.246
## versicolor 5.936 2.770 4.260 1.326
## virginica 6.588 2.974 5.552 2.026
Calculo de la media de cada especie
# Calculate column mean for each species and output will be data
frame## function ()
## {
## for (fun in getHook("before.plot.new")) {
## if (is.character(fun))
## fun <- get(fun)
## try(fun())
## }
## .External2(C_plot_new)
## grDevices:::recordPalette()
## for (fun in getHook("plot.new")) {
## if (is.character(fun))
## fun <- get(fun)
## try(fun())
## }
## invisible()
## }
## <bytecode: 0x7fe1eec45ee0>
## <environment: namespace:graphics>
iris_mean <- adply(iris3,3,colMeans)
class(iris_mean)## [1] "data.frame"
# Now calculate mean again with output as list
iris_mean <- alply(iris3,3,colMeans)
class(iris_mean)## [1] "list"
iris_mean## $`1`
## Sepal L. Sepal W. Petal L. Petal W.
## 5.006 3.428 1.462 0.246
##
## $`2`
## Sepal L. Sepal W. Petal L. Petal W.
## 5.936 2.770 4.260 1.326
##
## $`3`
## Sepal L. Sepal W. Petal L. Petal W.
## 6.588 2.974 5.552 2.026
##
## attr(,"split_type")
## [1] "array"
## attr(,"split_labels")
## X1
## 1 Setosa
## 2 Versicolor
## 3 Virginica