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

CAPÍTULO 3. ACCESO A PORCIONES O SUBCONJUNTOS DE DATOS 55
Se había dicho en la sección 3.1 en la página 48 que el operador
[]
,
siempre
regresa un objeto del mismo de la misma clase que el original. Los ejemplos
anteriores manifiestan una excepción a esta regla, ya que:
class
(mt[
3
, ])
## [1] "integer"
class
(df.mt[
3
, ])
# sólo en este caso se cumple
## [1] "data.frame"
class
(mt[,
3
])
## [1] "integer"
class
(df.mt[,
3
])
## [1] "integer"
El lenguaje tiende a simplificar, cuando puede, a la clase más básica de dato,
es decir, a vector; lo que podría resultar útil en algunos casos, pero que, en otros
casos, podría complicar la programación. Este
extraño
comportamiento, no or-
togonal
3
, sin embargo, se puede modificar mediante la opción
drop=FALSE
, al
usar el operador, como se muestra a continuación:
# El tercer renglón:
mt[
3
, ,
drop
=
FALSE
]
##
[,1] [,2] [,3] [,4] [,5]
## [1,] 13 17 21 25 29
class
(mt[
3
, ,
drop
=
FALSE
])
## [1] "matrix"
df.mt[
3
, ,
drop
=
FALSE
]
##
UNO DOS TRES CUATRO CINCO
## tres 13 17 21 25 29
class
(df.mt[
3
, ,
drop
=
FALSE
])
## [1] "data.frame"
3
En el argot computacional el término
ortogonal
se refiere a que a una misma estructura sin-
táctica le corresponde una misma estructura semántica o de significado. Esto quiere decir que el
operador se comportaría uniformemente, entregando el mismo tipo de resultados, para una misma
sintaxis.
1...,48,49,50,51,52,53,54,55,56,57 59,60,61,62,63,64,65,66,67,68,...198
Powered by FlippingBook