################################################################################ ### TALLER SOBRE FUNDAMENTOS DE R ### ### PRESENTACIÓN 3.1: OBJETOS ### ### ### ### Center for Conservation and Sustainable Development ### ### Missouri Botanical Garden ### ### Stitio en la red: rbasicsworkshop.weebly.com ### ################################################################################ ### A. QUÉ ES UN OBJETO Y CÓMO CREARLO ######################################### # Un objeto en R es un pedazo de memoria que contiene información. # Frecuentemente tal información consiste en datos, pero también puede haber # información en la estructura misma de los objetos (e.g., en la forma en la # que los datos están dispuestos en un objeto). Los objetos pueden tener # i) varios tipos de datos y ii) ser de varias clases. # La manera más sencilla de crear un objeto es utilizando el operador de # asignación: *<-* x <- 10 # Este código crea un objeto llamado *x* que contiene el valor 10 x # Este código imprime los contenidos de *x* en la consola y <- 5.3 # Este código crea otro objeto llamado *y* que contiene el valor 5.3 y # Frequentemente, los objetos se usan para guardar el resultado de una función: seq(from = 4, to = 10, by = 2) x <- seq(from=4, to=10, by=2) # Este código re-escribe el objeto *x* asignándole una sequencia x # Otra manera de crear un objeto es con la función *assign* assign(x="x2", value=c(10, 5, 2)) x2 identical(x=x, y=x2) # Este código determina si *x* y *X2* son identicos # Equivalente: identical(x, x2) ### B. TIPOS DE DATOS EN OBJETOS ############################################### # Hay 4 tipos de datos comúnmente utilizados en R: # 1. Numéricos - números # 2. Caracteres - texto # 3. Lógicos - verdadero/falso (TRUE/FALSE) # 4. Valores especiales - NA, NULL, Inf ## 1-3. VALORES NUMÉRICOS, CARACTER Y LÓGICOS ## # a. Suponga que tiene datos sobre la abundancia de 5 especies de árboles en una # parcela medida en dos ocasiones (tiempos t1 y t2). abund.t1 <- c(0, 17, 34, 26, 82) abund.t2 <- c(1, 17, 31, 27, 91) # b. Suponga además que tiene los nombres de esas 5 especies de árboles. spp <- c("I.ynga", "I.edulis", "I.macrophylla", "I.punctata", "I.alba") # c. Suponga también que necesita una variable que indique si la abundancia de cada # especie incrementó entre la primera y segunda medición (entre t1 y t2). increm <- c(TRUE, FALSE, FALSE, TRUE, TRUE) abund.t1 abund.t2 spp increm # La función *mode* indica el tipo de datos contenidos en los diferentes objetos mode(x=abund.t1) mode(x=abund.t2) mode(x=spp) mode(x=increm) # IMPORTANTE: los valores de caracteres se escriben entre comillas. El siguiente # código generara un error: spp.2 <- c(I.ynga, I.edulis, I.macrophylla, I.punctata, I.alba) # IMPORTANTE: los valores lógicos no se escriben entre comillas y se escriben # en mayúsculas. Esto genera un vector de characteres: increm.2 <- c("TRUE", "FALSE", "FALSE", "TRUE", "TRUE") mode(increm.2) identical(increm, increm.2) ## 4. VALORES ESPECIALES ## # 4.1. NA: valor no disponible (por sus siglas en inglés: "not available") x <- NA x length(x) is.na(x) # 4.2. Inf: infinito 100/0 -100/0 100-Inf Inf-100 1/Inf 1^Inf Inf^0 # 4.2. NaN: no es un número (por sus siglas en inglés: "not a number") Inf-Inf 0/0 # 4.2. Null: el objeto nulo en R c() x <- c() x