Usando librería de mtcars, se sacará el promedio de cada columna.

mean(mtcars$mpg)
## [1] 20.09062
mean(mtcars$cyl) 
## [1] 6.1875
# Esto no es tan eficiente

Se puede hacer de forma automatizada con for o apply:

FOR

Primero con un data frame y vector vacío:

resultado<-data.frame()
promedios<-c()
for (u in colnames(mtcars)) {
  promedios <- c(promedios, mean (mtcars[, u]))
}
promedios
##  [1]  20.090625   6.187500 230.721875 146.687500   3.596563   3.217250
##  [7]  17.848750   0.437500   0.406250   3.687500   2.812500
resultado<-rbind(promedios, resultado)

colnames(resultado)<-colnames(mtcars)

# Esta opción es extensa, por eso se usará la función apply


APPLY

En apply tenemos como primer parámetro un data frame pero también puede ser una matriz, como segundo argumento le pasamos “margin” y el vañor de 2 (columnas) y 1 (renglones). Y como tercer argumento una función. En apply no lleva paréntesis. El apply sustituye al for en algunas ocasiones y es más rápido que for.

# Con data frame
apply(mtcars, MARGIN = 1, median)
##           Mazda RX4       Mazda RX4 Wag          Datsun 710      Hornet 4 Drive 
##               4.000               4.000               4.000               3.215 
##   Hornet Sportabout             Valiant          Duster 360           Merc 240D 
##               3.440               3.460               4.000               4.000 
##            Merc 230            Merc 280           Merc 280C          Merc 450SE 
##               4.000               4.000               4.000               4.070 
##          Merc 450SL         Merc 450SLC  Cadillac Fleetwood Lincoln Continental 
##               3.730               3.780               5.250               5.424 
##   Chrysler Imperial            Fiat 128         Honda Civic      Toyota Corolla 
##               5.345               4.000               4.000               4.000 
##       Toyota Corona    Dodge Challenger         AMC Javelin          Camaro Z28 
##               3.700               3.520               3.435               4.000 
##    Pontiac Firebird           Fiat X1-9       Porsche 914-2        Lotus Europa 
##               3.845               4.000               4.430               4.000 
##      Ford Pantera L        Ferrari Dino       Maserati Bora          Volvo 142E 
##               5.000               6.000               8.000               4.000
# Con matriz
mi_matriz<-matrix(1:9, nrow = 3, ncol = 3)
mi_matriz
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
apply(mi_matriz, 2, mean)
## [1] 2 5 8


LAPPLY

Se diferencia de apply, en vez de recibir un data frame o una matriz, lapply recibe una lista y como resultado arroja otra lista.

l<-list(a = 1:10, b = 11:20)
lapply(l, mean)
## $a
## [1] 5.5
## 
## $b
## [1] 15.5
lapply(l, sum)
## $a
## [1] 55
## 
## $b
## [1] 155
class(lapply(l, sum))
## [1] "list"


SAPPLY

A diferencia del anterior, a pesar de que sapply también trabaja con listas, el resultado es un vector o una lista. La diferencia está en la forma del resultado.

s<-list(a = 1:10, b = 11:20)
sapply(s, mean)
##    a    b 
##  5.5 15.5


TAPPLY

Realiza operaciones sobre grupo. Por ejemplo, si queremos sacar el promedio de las millas por galón pero agrupados por cilindros…

tapply(mtcars$mpg, mtcars$cyl, mean)
##        4        6        8 
## 26.66364 19.74286 15.10000
# Suma de millas por galón
tapply(mtcars$mpg, mtcars$cyl, sum)
##     4     6     8 
## 293.3 138.2 211.4


MAPPLY

mapply(function(x, y){x*y}, x = 5, y = 20)
## [1] 100
# Mapply sustituye X y Y en la función
mapply(summary, mtcars)
##              mpg    cyl     disp       hp     drat      wt     qsec     vs
## Min.    10.40000 4.0000  71.1000  52.0000 2.760000 1.51300 14.50000 0.0000
## 1st Qu. 15.42500 4.0000 120.8250  96.5000 3.080000 2.58125 16.89250 0.0000
## Median  19.20000 6.0000 196.3000 123.0000 3.695000 3.32500 17.71000 0.0000
## Mean    20.09062 6.1875 230.7219 146.6875 3.596563 3.21725 17.84875 0.4375
## 3rd Qu. 22.80000 8.0000 326.0000 180.0000 3.920000 3.61000 18.90000 1.0000
## Max.    33.90000 8.0000 472.0000 335.0000 4.930000 5.42400 22.90000 1.0000
##              am   gear   carb
## Min.    0.00000 3.0000 1.0000
## 1st Qu. 0.00000 3.0000 2.0000
## Median  0.00000 4.0000 2.0000
## Mean    0.40625 3.6875 2.8125
## 3rd Qu. 1.00000 4.0000 4.0000
## Max.    1.00000 5.0000 8.0000
# También:
summary(mtcars)
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000