lunes, 30 de marzo de 2009

R: Tipos de Datos y Objetos en R

Cuando se trabaja con un software informático de estas características, es importante conocer que tipos de datos están disponibles, ya que será de gran importancia para nuestros propósitos futuros.

En R, los tipos de datos más comunes son:


Tipos de Datos
Información
Lógico
Son datos que sólo permite los valores lógicos de verdadero (T) o falso (F).
Numérico
Son datos que pueden contener números reales.
Complejo
Son datos que pueden contener números complejos.
Carácter
Son datos que permiten introducir número y cualquier tipo de carácter.

Para poder conocer que tipo de dato contiene un objeto, se usa la función ya definida en R, mode(). Como ejemplo demostrativo:

> X <- 1
> mode(X)
[1] "numeric"

> Y <- c("Aqueronte")
> mode(Y)
[1] "character"

> Z <- T
> mode(Z)
[1] "logical"

Otro aspecto a tener en cuenta en R, es saber que es exactamente un objeto, ésto será el propósito que se desea explicar llegados a este punto.

Para empezar, en R, casi todo lo que se manipula, son objetos, como definición más formal, todas las entidades que manipula R se conocen con el nombre de objetos. Por ejemplo, los
vectores de números, reales o complejos, los vectores lógicos o los vectores de caracteres.

Los atributos de un objeto suministran información específica sobre el propio objeto. Otro atributo de un objeto es su longitud. Las funciones mode(), ya mencionada anteriormente, y length() se pueden utilizar para obtener el modo y longitud de cualquier estructura respectivamente.

Como tabla resumen, se muestran a continuación los atributos que pueden ser de información de los objetos:

Atributos de los Objetos
Información
Modo
Cualquier tipo de entidad que maneja R.
Se usa la función: mode(objeto).
Tipo
Tipo de datos de los objetos: entero, carácter, double, etc.
Se usa la función: typeof(
objeto).
Nombres
Etiquetas de los elementos individuales de un vector o lista.
Se usa la función: names(
objeto).
Dimensiones
Dimensiones de los arrays (alguna puede ser cero).
Se usa la función: dim(
objeto).
Dimnames
Nombres de las dimensiones de los arrays.
Se usa la función: dimnames(
objeto).
Clase
Vector alfanumérico con la lista de las clases del objeto.
Se usa la función: class(
objeto).
Otros atributos
Atributos de una serie temporal.

Hay que tener en cuenta que R, distingue entre mayúsculas y minúsculas, por lo tanto, no será el mismo objeto: x que X.

Los nombres que son válidos pueden ser cualquier tipo de combinaciones de letras, números y el punto ('.'), eso sí, éstos no pueden empezar por un número.

También hay que tener en consideración, que en R existen nombres que ya están asignados a funciones propias de R y por lo tanto no se pueden usar.

Y por último, la función attributes(objeto) proporciona una lista de todos los atributos no intrínsecos de nidos para el objeto en ese momento. La función attr(objeto, nombre) puede usarse para seleccionar un atributo específico.

Estas funciones no se utilizan habitualmente, sino que se reservan para la creación de un nuevo atributo con fines específicos, por ejemplo, para asociar una fecha de creación o un operador con un objeto de R.

Sin embargo, es un concepto muy importante que no debe olvidar. La asignación o eliminación de atributos de un objeto debe realizarse con precaución, ya que los atributos forman parte del sistema de objetos utilizados en R.

En definitiva, como ya se ha expuesto, casi todo en R son objetos, como ejemplo:

Objetos
Información
Vector
Cadenas unidimensionales (es decir una sola columna o fila) de un tipo único de valores (numéricos, caracteres, etc.)
Matrices
Estructura bidimensional donde todos los datos deben ser del mismo tipo.
Factores
Este tipo de objeto es fundamental para el análisis estadístico pues es la forma como se tratan las variables categóricas.
Listas
Las listas son objetos genéricos que corresponden a colecciones de distintos objetos que pueden ser de tipos distintos.
Data Frames
Como una matriz pero pudiendo contener distintos tipos de datos. Es lo que clásicamente se ha llamado base de datos o hoja de datos.

0 comentarios: