# Tipos de datos de R que deberías conocer

Como en cualquier otro lenguaje de programación, en la [programación con R](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/programacion-en-r/) también existen varios tipos de datos que ayudan a los programadores a estructurar sus datos. Además de los tipos de datos básicos, R también tiene tipos de datos más complejos.

## ¿Para qué se utilizan los tipos de datos en R?

La programación implica a menudo el tratamiento de datos. Para que estos datos se almacenen en la memoria de forma efectiva, los desarrolladores pueden elegir entre distintos tipos de datos en la gran mayoría de los lenguajes. Ejemplos de tipos de datos son los números o las cadenas.

Los distintos [operadores R](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/operadores-de-r/) suelen definirse sobre distintos tipos de datos. Por lo tanto, los tipos de datos también ayudan a los programadores a procesar sus **datos de forma adecuada** y aumentar así la eficacia de los programas.

## Los distintos tipos de datos en R

Existen varios tipos de datos diferentes en R. Algunos, a menos que estés [aprendiendo a programar](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/aprender-a-programar-introduccion-y-conceptos-basicos/), pueden resultarte familiares de otros **lenguajes de programación**. Para una comprobación del tipo de datos en R, existe el [comando R](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/comandos-de-r/) *class()*, que toma cualquier variable como parámetro de paso y devuelve el tipo de datos de esta variable.

### Tipos de datos numéricos

Los tipos de datos numéricos pertenecen a los **tipos de datos básicos en R** y se utilizan para representar valores numéricos. Dentro de los tipos de datos numéricos, se distingue entre *numeric* para números reales, *integer* para enteros y *complex* para números complejos con partes imaginarias.

```R
x <- 3.14
y <- 42
z <- 3 + 2i
print(class(x))
print(class(y))
print(class(z))
```

El resultado de este código es el siguiente:

```none
"numeric"
"numeric"
"complex"
```

Llegados a este punto, puede que te preguntes por qué el tipo de dato *numeric* ha salido dos veces, aunque la variable *y* es un número entero. La explicación es sencilla: **los enteros en R son siempre *numeric***al mismo tiempo. Para indicar al intérprete que se trata efectivamente de un entero, debes añadir el sufijo*L* a sus enteros:

```R
y <- 42L
print(class (y))
```

Ahora la función anterior devuelve el resultado esperado:

```none
"integer"
```

### Cadenas

Para representar texto o caracteres, se puede recurrir a un tipo de datos llamado *character*. Los datos de este tipo, que se denominan R strings, pueden identificarse en R mediante **comillas simples o dobles**:

```R
x <- "¡Hola, mundo!"
y <- 'Hello world!'
print(class(x))
print(class(y))
```

Una vez más, la función `class()` se puede utilizar para mostrar el tipo de datos de las variables:

```none
"character"
"character"
```

### Tipos de datos lógicos

Las variables del tipo de datos lógico, conocidas en R como *logical*, son evaluadas por el intérprete como `TRUE` o `FALSE`. De esta forma, se pueden formalizar **condiciones o expresiones lógicas**. Esto es necesario con frecuencia para controlar el flujo del programa.

```R
x <- TRUE
y <- FALSE
print(class(x))
print(class(y))
```

Si te fijas en el tipo de datos de ambas variables, verás que se les ha asignado el tipo de datos de R *logical*:

```none
"logical"
"logical"
```

### Datos en bruto

En R, hay un tipo de datos separado para ver las **variables como una secuencia de bytes**. Este tipo de datos R se llama *raw*. Para convertir tus datos en datos raw, puedes utilizar la función `charToRaw()`. Para el caso contrario, existe la función `rawToChar()`.

El siguiente código muestra cómo se convierte una cadena en una secuencia de bytes que tiene el tipo de datos *raw*:

```R
x <- "¡Hola, mundo!"
y <- charToRaw(x)
print(y)
print(class(y))
```

El código anterior muestra primero la secuencia de bytes en números hexadecimales en la pantalla. Posteriormente, la llamada a `class()` asegura que el tipo de datos de la variable *y* se muestre:

```none
48 61 6c 6c 6f 20 57 65 6c 74 21
"raw"
```

Nota En R también puedes convertir el tipo de los datos. Este cambio en R suele ser muy sencillo: si tienes una cadena que consta de un número (por ejemplo, “42”), puedes asegurarte de que la cadena se convierta en el tipo de datos *numeric* simplemente añadiendo 0.

## Estructuras de datos en R

Además de los tipos de datos básicos en R, existen una serie de estructuras de datos que ayudan a los programadores a estructurar mejor los datos. Estas **estructuras de datos son más complejas que los tipos de datos simples** y, como por ejemplo los Data Frames en R, a menudo son multidimensionales, a diferencia de los tipos de datos.

Consejo ¿Te apetece programar en R? Publica tu próxima web con nuestro [hosting de espacio ilimitado](https://www.ionos.mx/alojamiento/espacio-web "Espacio web de IONOS") de IONOS.


This is a markdown version of: [https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/tipos-de-datos-de-r/](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/tipos-de-datos-de-r/) for AI/LLM consumption.