1 Variables y tipos de datos Contents 1 Tipos de datos 1 1.1 Numéricos............................................... 1 1.2 Teto................................................. 1 1.3 Lógicos................................................ 2 2 Variables 2 2.1 Vectores................................................ 2 2.2 Data frame.............................................. 3 2.3 Listas................................................. 4 3 Valores especiales 6 3.1 NaN.................................................. 6 3.2 Inf................................................... 6 3.3 NA................................................... 6 4 Constantes 7 1 Tipos de datos 1.1 Numéricos Son valores formados por números reales <- c(5.1, 4,5.3, 10) ## Vector formado por valores numéricos ## [1] 5.1 4.0 5.3 10.0 1.2 Teto Son valores formados por caracteres de teto, van siempre entre comillas <- c("verde","rojo","1") ## Vector formado por teto. ## El número 1 al ir entre comillas también es teto. ## [1] "Verde" "Rojo" "1" 1
1.3 Lógicos Son del tipo TRUE, FALSE. También se pueden representar como T, F ## Las comparaciones siempre devuelven TRUE o FALSE 3 > 6 ## Comprueba si 3 es mayor que 6 ## [1] FALSE 4 < 7 ## Comprueba si 4 es menor que 7 ## [1] TRUE 2 + 1 == 3 ## Comprueba si 2 + 1 es igual a 3 ## [1] TRUE 3!= 3 ## Comprueba si 3 es distinto de 3 ## [1] FALSE ## TRUE actua como si fuese 1 y FALSE como 0 T + T ## [1] 2 F + F ## [1] 0 2 Variables Son objetos donde podemos almacenar datos 2.1 Vectores Están formados por uno o más datos consecutivos del lmismo tipo <- 1:10 ## Vector numérico ## [1] 1 2 3 4 5 6 7 8 9 10 2
<- LETTERS[1:5] ## Vector de teto con las 5 primeras letras en mayúsculas ## [1] "A" "B" "C" "D" "E" Acceder a los elementos del vector <- trunc(runif(10,20,30)) ## Vector con 10 números enteros al azar entre 10 y 20 ## Vector completo ## [1] 26 27 24 29 21 25 29 25 25 27 [3] ## Tercer elemento del vector ## [1] 24 [1:5] ## Elementos 1 a 5 ## [1] 26 27 24 29 21 [5:length()] ## Elementos desde el 5º hasta el final ## [1] 21 25 29 25 25 27 [ > 25] ## Elementos que son mayores de 25 ## [1] 26 27 29 29 27 2.2 Data frame El tipo data frame (marco de datos o tabla de datos) es un tipo de variable formado por columnas, que son las variables y pueden ser de distinto tipo, y filas que típicamente son los casos. La mayoría de datos procedentes de estudios reales se organizan en data frames ya que pueden almacenar varias variabes, cada una con sus valores. nombre <- c("juan","maria","sam","ana") ## Teto edad <- c(22,56,10,43) ## Numérico trabajo <- c(f,t,f,f) ## Lógico gasto <- c(100,456,34,0) ## Numérico datos <- data.frame(nom=nombre,edad=edad,tra=trabajo,gas=gasto) ## Creamos el data frame datos ## 1 Juan 22 FALSE 100 ## 2 Maria 56 TRUE 456 ## 4 Ana 43 FALSE 0 Acceder a los elementos de un data frame 3
## Variable edad datos$edad ## [1] 22 56 10 43 ## Lo mismo de otro modo datos[2] ## Edad ## 1 22 ## 2 56 ## 3 10 ## 4 43 ## Y de nuevo lo mismo (fila 2) datos[,2] ## [1] 22 56 10 43 ## Datos de la fila 3 datos[3,] ## Acceder a la edad de Sam (fila 3, columna 2) datos[3,2] ## [1] 10 Cuando se usan índices entre corchetes, dejar el primero en blanco significa mostrar todas las filas de la columna indicada. Análogamente, dejar el segundo en blanco significa mostrar todas las columnas de la fila especificada. 2.3 Listas Las listas son el tipo más versátil ya que pueden contener cualquier tipo de dato junto con vectores, data frames y otros tipos no especificados en este documento. Su uso no es sencillo pero pueden ser especialmente útiles para devolver resultados complejos de las funciones. ## Definimos nuevas variables nombre <- c("juan","maria","sam","ana") ## Teto edad <- c(22,56,10,43) ## Numérico trabajo <- c(f,t,f,f) ## Lógico gasto <- c(100,456,34,0) ## Numérico datos <- data.frame(nom=nombre,edad=edad,tra=trabajo,gas=gasto) ## Creamos un data frame <- c(1,2,3) teto <- "Objetivos alcanzados" lista <- list(datos1=,datos2=teto, datos3=datos) ## Creammos la lista lista 4
## $datos1 ## [1] 1 2 3 ## ## $datos2 ## ## $datos3 ## 1 Juan 22 FALSE 100 ## 2 Maria 56 TRUE 456 ## 4 Ana 43 FALSE 0 Para acceder a los elementos que componen la lista se puede hacer del siguiente modo ## Acceder al teto lista$datos2 ## Otra forma lista[2] ## $datos2 ## Es lo mismo que lista[[2]] ## Acceder al data frame lista[3] ## $datos3 ## 1 Juan 22 FALSE 100 ## 2 Maria 56 TRUE 456 ## 4 Ana 43 FALSE 0 ## Acceder a la collumna de nombres del data frame ## Ahora es necesario el doble corchete lista[[3]][1] ## Nom ## 1 Juan ## 2 Maria ## 3 Sam ## 4 Ana 5
## Otra forma de hacer lo mismo lista[[3]]$nom ## [1] Juan Maria Sam Ana ## Levels: Ana Juan Maria Sam ## Acceder a la 4ª fila y 2ª columna del data frame lista[[3]][4,2] ## [1] 43 3 Valores especiales 3.1 NaN Not a Number. No es un número. Se produce cuando el resultado de una operación no se puede realizar. sqrt(-1) ## Warning in sqrt(-1): Se han producido NaNs ## [1] NaN 3.2 Inf Infinito, se produce, por ejemplo, al dividir entre 0 5/0 ## [1] Inf 3.3 NA Not available. No disponible. Cuando se desconoce un dato en su lugar se pone NA, son valores perdidos que coloca el usuario para no dejar en blanco un dato. <- c(4, 5, 3, NA, 4) ## [1] 4 5 3 NA 4 6
sum() ## Suma los elementos del vector. Devuelve NA ## [1] NA sum(,na.rm=t) ## Suma los elementos y ecluye los valores NA ## [1] 16 4 Constantes pi: 3.1415927 LETTERS: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z letters: a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w,, y, z Ejemplo de uso LETTERS[5:10]: E, F, G, H, I, J 7