Objetos

Todo el código R manipula objetos. Un objeto puede ser visto como una entidad que posee atributos y efectúa acciones. Ejemplos de objetos en R incluyen las funciones, symbols e incluso las expresiones. A continuación se muestran algunos ejemplos de objetos:

Symbols

Formalmente, los nombres de las variables en R se designan como symbol. Cuando realizamos una asignación de un objeto al nombre de una variable, estamos en realidad asignando el objeto a un symbol. Por ejemplo, la instrucción:

x <- 1

asigna el symbol “x” al objeto “1” en el entorno actual.

Nombres de los Objetos

Los nombres de los objetos pueden contener letras, números, puntos y guiones bajos, pero no pueden empezar con un número o un punto seguido de un número. Además, no podemos hacer uso de las palabras reservadas del lenguaje como if y for. La instrucción ?make.names describe en detalle lo que está y no permitido.

En resumen, los nombres de nuestros objetos:

  • Pueden contener:

    • letras

    • números

    • guión bajo (-)

    • punto (.)

  • Deben empezar con una letra.

  • No podemos utilizar las palabras reservadas del lenguaje.

Para la comunidad hispanohablante, cabe mencionar que para que nuestro código sea lo más portable posible no debemos utilizar acentos y la letra “ñ”, es decir, debemos limitarnos a los caracteres de la “a” a la “z” ( y de la”A” a la “Z”).

Ejemplos:

  • perro

  • perro1

  • los_nombres_pueden_contener_guiones

  • los.nombres.pueden.contener.puntos

  • perro_1.0

Datos Básicos en R

R proporciona cuatro tipos básicos de datos, también conocidos como vectores atómicos.

  • logical

  • numeric

  • integer

  • character

Logical

El tipo logical es la forma que tiene R para los datos binarios. Usados en test lógicos son conocidos como valores boleanos y toman los valores TRUE y FALSE. TRUE y FALSE pueden ser abreviados con las T y F en mayúsculas respectivamente. Sin embargo, recomendamos utilizar la versión completa de TRUE y FALSE.

3 < 4
## [1] TRUE
class(TRUE)
## [1] "logical"
class(T)
## [1] "logical"
a <- 4
b <- 2
a == b  # ¿es igual a b?
## [1] FALSE
a != b  # ¿es a distindo de b?
## [1] TRUE
(a < 3) & (b < 5)  # ¿es a menor que 5 y b menor que 3?
## [1] FALSE
(a < 1) | (b < 3)  # ¿es a menor que 3 o b menor que 1?
## [1] TRUE

A continuación se muestran los operadores de comparación y lógicos en R:

Numeric

Para representar los números reales R proporciona el tipo numeric. Podemos realizar toda clase de operaciones con ellos como por ejemplo sumas, restas, multiplicaciones, divisiones y utilizarlos en el amplio catálogo de funciones matemáticas con las que cuenta R:

mi_altura_en_cm <- 170
mi_altura_en_cm
## [1] 170
mi_peso <- 74.5
mi_peso
## [1] 74.5
round(mi_peso)
## [1] 74
IMC <- mi_peso/mi_altura_en_cm^2
IMC
## [1] 0.002577855

Integer

Un tipo especial de numeric es el integer. Este es el modo de representar los números enteros en R. Para especificar que un número es entero, debemos añadir la letra L en mayúscula como sufijo.

mi_edad <- 28L
mi_edad
## [1] 28

En el ejemplo anterior, no podemos apreciar la diferencia entre el número real y el número entero.Sin embargo, con la función class() podemos comprobar esta diferencia:

class(28)
## [1] "numeric"
class(28L)
## [1] "integer"

En lugar de preguntar por la clase de una variable mediante la función class(), podemos utilizar las funciones is.*() para comprobar si un objeto es realmente de un cierto tipo.

is.numeric(28)
## [1] TRUE
is.numeric(28L)
## [1] TRUE

Para comprobar si una variable es integer, usaremos la función is.integer():

is.integer(28)
## [1] FALSE
is.integer(28L)
## [1] TRUE

Character

Cualquier dato alfanumérico (o cadenas, strings en inglés; todo aquello que no sea un número es una cadena) será interpretado por R como character. Por ejemplo:

"Bootcamp|Programación" #debes escribirlo entre ""
## [1] "Bootcamp|Programación"

Función

Una función es un objeto

X1 <- function(a,b,c) {
    (-b+sqrt(b^2-4*a*c))/(2*a)
}
X1(3, 2,-1)
## [1] 0.3333333
X2 <- function(a,b,c) {
    (-b-sqrt(b^2-4*a*c))/(2*a)
}
X2(3, 2,-1)
## [1] -1

Bibliografia: Ruben Sanchez Sancho. (2017). Ciencia de Datos con R. 01/mayo/2022, de LeanPub Sitio web: https://rsanchezs.gitbooks.io/ciencia-de-datos-con-r/content/