B Funciones de R
B.1 Funciones para generar series de datos
En 2.3 Generando secuencias regulares se detallan 3 funciones para generar secuencias regulares: Operador “:” , Función sep() y Función rep().
B.1.1 Operador “:”
Dos números enteros separados por “:” genera una serie de de números sucesivos que empieza en el primero y termina en el segundo.
## [1] 1 2 3 4 5 6 7 8 9 10
## [1] 10 9 8 7 6 5 4 3 2 1
Si el número antes de “:” es un número decimal, se genera una serie en el que el primer número es el anterior a “:” los siguientes se obtienen incrementando en 1 el anterior hasta alcanzar el número posterior a “:”
## [1] 2.7 3.7 4.7 5.7 6.7 7.7 8.7 9.7 10.7 11.7
## [1] 12.3 11.3 10.3 9.3 8.3 7.3 6.3 5.3 4.3 3.3
B.1.2 Función seq()
La función seq genera secuencias regulares.
Tiene 5 parámetros:
- from: especifica el valor inicial de la secuencia
- to: especifica el valor límite del último valor de la secuencia
- by: especifica el paso = diferencia entre dos valores sucesivos de la secuencia. El valor por defecto es 1.
- length: especifica el tamaño de la secuencia. El intervalo from - to, lo divide en un número de intervalos = length.
- along: El valor de entrada para esta parámetro es un vector. La longitud de este vector establece el tamaño de la la secuencia.
B.1.2.1 Ejemplos
- from, to: seq(from = 1, to = 7) –> 1, 2, 3, 4, 5, 6, 7 Secuencia básica desde 1 hasta 7.
- from, to inverso: seq(from = 10, to = 2.5) –> 10, 9, 8, 7, 6, 5, 4, 3. Secuencia inversa con incremento por defecto = -1. El valor to = 2.5, establece el valor extremo del último elemento de la secuencia. En este caso termina en 3, el siquiente valor de la secuencia sería 2, pero es inferior al valor to = 2.5
- by: seq(from = 5, to = 15, by = 3) –> 5, 8, 11, 14. El parámetro by = 3, establece un paso = 3. El último valor de la serie es 14. El siguiente sería 17 > to=15.
- length: seq(from = 1, to = 10, length = 4) 1, 4, 7, 10.
- los valores from y to se toman como primero y último valor de las secuencia.
- para completar la serie, se añaden entre ambos, length -2 valores a intervalos iguales
- El intervalo total se divide en length -1 intervalos y se toman los length valores que delimitan los intervalos.
- along: seq(from = 1, to = 10, along = c(5, 8, 7, 4)) –> 1, 4, 7, 10
- Se obtiene un resultado similar al parámetro length
- El número de elementos de la secuencia corresponde al número de elementos del vector asignado al parámetro alongth.
B.1.3 Función rep()
La función rep() replica los valores en x. Es una función genérica, y el método predeterminado (interno).
Tiene 4 parámetros:
- x: El elemento que se quiere repetir. Puede ser un valor único o varios. El valor puede ser numérico, caracter, logico, …
- times: Número entero. Repite times veces el bloque de valores señalados en x:
- times: rep(x=c(1, 2, 3), times = 4) repite el bloque (1, 2, 3), 4 veces 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3.
- each: rep (x=c(1, 2, 3), each = 4) repite cada uno de los elementos del bloque 4 veces 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3.
- length.out: establece el número de elementos de salida. Se puede combinar con times y con each
- Con el parámetro times rep(x=c(1, 2, 3), times = 8, length.out = 14). Como en times, repite el bloque times veces, pero limita la longitud a length.out. 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2.
- Con el parámetro each rep(x=c(1, 2, 3), each = 4, length.out = 14). Como en each, repite cada uno de los elementos del bloque each veces.
- Si la longitud resultante es mayor que length.out: rep(x=c(1, 2, 3), each = 4, length.out = 10), se corta a esta longitud. 1, 1, 1, 1, 2, 2, 2, 2, 3, 3
- Si es menor: rep(x=c(1, 2, 3), each = 4, length.out = 14, se reinicia el proceso hasta completar length.out 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1.
- solo el parámetro length.out rep(x=c(1, 2, 3), length.out = 14), se comporta como con el parámetro times 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2.
B.2 Funciones para comparación de los contenidos de dos vectores
En Sets: union, intersect and setdiff se detallan algunas funciones para trabajar con contenidos de vectores, entre otras: union, intersect, setdiff, operador %in%.
En R Documentation se puede encontrar documentación sobre estas funciones.
Se definen dos vectores
setA<-c("a", "b", "c", "d", "e")
setB<-c("d", "e", "f", "g")
B.2.1 Función union
La función union
proporciona un vector que contiene los elementos que están en uno u otro vector o en ambos.
- `union(setA, setB) –> a, b, c, d, e, f, g
B.2.2 Función intersect
La función intersect
proporciona un vector que contiene los elementos comunes a los dos vectores.
- `intersect(setA, setB) –> d, e
B.2.3 Función setdiff
La función setdiff
proporciona un vector que contiene los elementos que están en el primer vector pero no en el segundo
- `setdiff(setA, setB) –> a, b, c
- Elementos que están en setA, pero no en setB
- `setdiff(setB, setA) –> f, g
- Elementos que están en setB, pero no en setA
B.2.4 Operador %in%
El operador %in%
comprueba si cada uno de los elementos del vector a la izquierda del operador, está contenido en el vector a la derecha del operador.
El resultado es un vector con el mismo número de elmentos que el vector a la izquierda del operador, cuyos valores son TRUE
o FALSE
en función de si el elemento correspondiente del primer vector está o no presente en el segundo.
setA %in% setB
–> FALSE, FALSE, FALSE, TRUE, TRUE- Los dos últimos elemenos de setA están contenidos en setB
setB %in% setA
–> TRUE, TRUE, FALSE, FALSE- Los dos primeros elemenos de setB están contenidos en setA
B.3 Funciones aplicables a data frames
B.3.1 Función merge()
La función merge() fusiona las columnas de dos data frames en base a una columna de identificador presente en los dos data frames a fusionar.
Los parámetros utilizados en nuestro caso son:
- x, y: los dos data frames a fusionar
- by.x: columna del data frame x que contiene el identificador
- by.y: columna del data frame y que contiene el identificador