El arte de programar en R Un leguaje para la estadística - page 77

CAPÍTULO 4. ESTRUCTURAS DE CONTROL Y MANEJO DE DATOS 74
4.3.2. Las funciones
sapply()
y
lapply()
Para empezar, supóngase que se tiene un
data frame
, exclusivamente de co-
lumnas numéricas y se quiere conocer el promedio de cada una de estas co-
lumnas. En este caso, la función
sapply()
permite aplicar una operación o una
función a cada uno de los elementos la lista o data frame, dado como argumen-
to. Así, la operación deseada se obtiene de la siguiente manera.
(misDatos
<-
data.frame
(
uno
=
runif
(
5
,
10.5
,
40.3
),
dos
=
runif
(
5
),
tres
=
runif
(
5
,
155
,
890
)))
## uno dos tres
## 1 17.66 0.7023 433.0
## 2 33.04 0.8633 875.6
## 3 38.24 0.9655 283.5
## 4 27.80 0.1671 156.1
## 5 11.53 0.2866 464.6
sapply
(misDatos, haz_promedio,
simplify
=
TRUE
)
## uno
dos tres
## 25.652 0.597 442.572
# aquí se podría haber usado la función 'mean' en vez de
# 'haz_promedio'
El argumento opcional
simplify
, especificado aquí como
TRUE
, obliga a que
el resultado, si se puede, sea entregado como un vector, con un elemento co-
rrespondiente a cada una de las columnas en este caso, de otra manera, el resul-
tado es entregado como una lista. El resultado obtenido con la función lapply
es más o menos similar, pero el resultado se entrega siempre en una lista:
lapply
(misDatos, mean)
## $uno
## [1] 25.65
##
## $dos
## [1] 0.597
##
## $tres
## [1] 442.6
# nota que aquí se usó la función 'mean' en vez de
# 'haz_promedio'
El uso de las funciones
sapply()
y
lapply()
mostrado arriba, es equiva-
lente a la siguiente versión más
procedural
.
1...,67,68,69,70,71,72,73,74,75,76 78,79,80,81,82,83,84,85,86,87,...198
Powered by FlippingBook