Aprendiendo R | Parte 2 | Variables y Funciones
Variables
x <- (1:10)x = (1:10)(1:10) -> xassign("x", 1:10)
Todas las formas anteriores asignan un arreglo del 1 al 10 a la variable x.
Estos son los operadores de asignación =, ->, <- .
Otra función común para crear un vector o una lista es la función c(…).
c(1,10:13)El resultado sería un arreglo1 10 11 12 13. Esto significa la fusión de objetos/variables separados por comas.c(1:5, 10.5, "next")El resultado sería un arreglo"1" "2" "3" "4" "5" "10.5" "next".y = c(1,2,3)&x = c(y, 1, y)Este es un ejemplo de usar variables para crear nuevas variables. Aquí el valor deysería1 2 3mientras que el dexsería1 2 3 1 1 2 3.
Para más información sobre el uso de la función c(…) consulta-
Funciones Integradas
c(…)— Como se explicó arriba.ls()oobjects()— Proporciona una lista de objetos existentes que se han creado.rm("x")— Elimina un objeto. El parámetro es el nombre del objeto.sum("x")— Proporciona la suma del vectorx. Por ejemplo, sixes1 2 3 1 1 2 3entoncessum("x")sería13.sqrt("x")— Proporciona la raíz cuadrada del vectorx. Por ejemplo, sixes1 4 9entoncessqrt("x")sería otro vector con valores1 2 3.seq(…)— Esta función se usa para generar una secuencia de números. Toma diferentes parámetros comofrom(Valor inicial de la secuencia),to(Valor final de la secuencia),by(Número por el que se incrementa la secuencia),length.out(Longitud de la secuencia) yalong.with(Esta es una lista de vector con longitud n y se usa solo para obtener la longitud de esta lista pasada. Extraño 😷) Ejemplo:-seq(from=1, to=4, by=0.5)— Proporciona una secuencia del1al4con incremento de0.5. Más sobreseq(…)aquí.paste(…)Esta función se usa para crear cadenas usando una concatenación de vectores usando 2 parámetros llamadossep&collapse.sepproporciona un separador entre los vectores concatenados mientras quecollapseproporciona un separador que concatena los valores en el vector concatenado. (¿Inception? 🤒) Aprendamos con algunos ejemplos.paste("xyz", 1:3)—"xyz 1" "xyz 2" "xyz 3"(Esto es sinsep&collapse)paste("xyz", c(1,2,"variable",3), sep=",")—"xyz,1" "xyz,2" "xyz,variable" "xyz,3"(Esto es solo consep)paste(c(1:5), c(5:10), sep = ": ", collapse = "; ")—"1: 5; 2: 6; 3: 7; 4: 8; 5: 9; 1: 10"(Esto es consepycollapse; Observa que aquí se forma una sola cadena 😄.) Más sobrepaste(…)aquí.rep(x, …)— Como sugiere el nombre, esta función se usa para repetir el vector existente. Los parámetros que esta función puede tomar sontimes(Número de veces que el vector debe repetirse),length.out(Longitud deseada del vector de salida) &each(Número de veces que cada elemento del vector debe repetirse)rep(c(1,2,3), 3) or rep(c(1:3), times=3)—1 2 3 1 2 3 1 2 3rep(c(1:3), each=3)—1 1 1 2 2 2 3 3 3Más sobrerep(x, …)aquí.
Funciones Definidas por el Usuario
El siguiente ejemplo muestra una forma simple de escribir una función de una sola línea que devuelve el cuadrado de una variable. El nombre de la función aquí es fn.
fn <- function(a) {a*a}
fn(10)
Ejemplo de un bloque de código en una función.
fn -> function(a, b) {
c = a * b
c = c + b
print(x)
}
fn(10, 20)
Funciones con bucles,if-else.
primeNumber = function(n) {
if(n>=2) {
s = seq(2,n) p = c() #Inicializando el vector que almacena números primos
for(i in seq(2,n)) {
if(any(s == i) {
p = c(p, i)
s = c(s[(s%%i) != 0], i)
}
}
return(p)
} else {
stop("Entrada mayor que 2")
}
}
El ejemplo anterior devuelve un vector con todos los números primos hasta n pasado a la función. La función stop aquí detiene la ejecución y lanza un error.
El inicial p = c() se usa para inicializar el vector que almacena el número primo. Y s = seq (2,n) se usa para inicializar el vector hasta el cual se itera.
El bucle verifica si el valor está presente en el vector s definido anteriormente usando la función any. Y si coincide, entonces agrega ese valor al vector de números primos y actualiza el vector a verificar, es decir s, con todos los números que no son divisibles por el i actual.
Al final del bucle, el vector p contiene todos los números primos.
Referencias
Gracias por leer. En mi próximo artículo, estaré explicando funciones de gráficos. Además, algunos conocimientos sobre paquetes y conjuntos de datos.
Además, si no has leído la parte 1. Puedes leerla aquí.
Deja tus preguntas a continuación. Las sugerencias son bienvenidas. 🙌



