CAPÍTULO 4. ESTRUCTURAS DE CONTROL Y MANEJO DE DATOS 85
## 26 E2 1980 Mar 246.3
## 27 E3 1982 Feb 50.5
## 28 E2 1981 Ene 60.3
## 29 E3 1982 Mar 90.6
## 30 E1 1979 Ene 21.5
## 31 E1 1980 Feb 31.0
## 32 E2 1979 Feb NA
## 33 E3 1980 Ene 10.1
Cada una de las columnas del
data frame
leído, es o bien un vector numérico,
o un factor. Debido a la organización de la tabla anterior, para obtener mismo
el resultado que las funciones usadas anteriormente,
by()
y
aggregate()
, la
función
tapply()
tiene que sacar provecho de que el segundo argumento, que
sirve para clasificar los datos, puede ser una lista de uno o mas objetos, inter-
pretables como factores, y que en el caso del ejemplo estará constituida por las
columnas correspondiente a los años y a los meses. Así, el resultado deseado
se obtiene como sigue:
(rr
<-
tapply
(dd
$
Prec,
list
(dd
$
Anio, dd
$
Mes), mean,
na.rm
= T))
##
Ene Feb Mar
## 1978 54.00 38.50 NaN
## 1979 16.15 25.65 84.7
## 1980 65.43 24.25 107.0
## 1981 40.25 21.80 90.3
## 1982 28.90 50.50 60.3
La posibilidad de la función
tapply()
de usar como clasificador una lis-
ta de objetos interpretables como factores, también está disponible para las
otras funciones que utilizan este esquema de clasificación:
split()
,
by()
y
aggregate()
. Para más detalles, consulte las páginas de ayuda, introducien-
do en su intérprete, p.ej.,
“?aggregate”
.
Como se puede ver por lo expuesto en este capítulo, mucho del trabajo que
otros lenguajes resuelven con ciclos, decisiones y secuencias de instrucciones,
en R, alternativamente, se puede hacer por medio de este elegante conjunto
de funciones de clasificación, transformación y agregación de datos, lo que,
junto con las operaciones para manipular porciones de los datos estructurados,
revisadas en el capítulo anterior, hacen del lenguaje una poderosa herramienta
para el procesamiento de información.
En relación con las funciones disponibles en el lenguaje, tales como las
trigonométricas, logarítmicas, exponenciales, de distribución de probabilida-
des, etc., debido a la integración de infinidad de paquetes sobre muy diver-
sos tópicos en el lenguaje, se invita al lector a considerar las fuentes de in-
formación contenidas en el intérprete del lenguaje, mediante la instrucción
“
??functions
”, que mostrará todo lo que se encuentra bajo ese rubro en el
módulo de ayuda del intérprete, y en Internet, la dirección: