rep() en R: decodificando la función de replicación

Publicado: 2020-06-15

Antes de hablar de repetición en R , debemos saber qué es la iteración. El término iteración significa repetición. Como en la mayoría de los demás lenguajes de programación, los bucles o iteraciones tradicionales son un aspecto central de R.

Si bien los bucles regulares son un enfoque eficiente para la gestión de datos, son costosos por la única razón de que la iteración consume memoria y tiempo. Una buena alternativa es el uso de métodos vectorizados que pueden lograr los mismos objetivos que la iteración; la función rep() es miembro de una de esas funciones de bucle vectorizadas.

Tabla de contenido

¿Qué es la función rep()?

En términos simples, rep en R , o la función rep() replica valores numéricos, o texto, o los valores de un vector por un número específico de veces. La función rep() es miembro de la familia de funciones apply() del paquete base de R. La familia apply() contiene funciones que se utilizan para manipular datos de arreglos, matrices, marcos de datos y listas de forma repetitiva.

Las funciones apply() evitan el uso de construcciones de bucle para actuar en arreglos, matrices o listas de entrada y aplican una función con nombre con argumentos opcionales. La función llamada podría ser una función de agregación, una función de transformación o funciones vectorizadas como arreglos, vectores, listas y matrices. Consulte nuestros cursos de ciencia de datos para obtener más información sobre las funciones.

Leer más: Marcos de datos en Python: Tutorial detallado de Python

Cálculos vectorizados versus iteraciones

En lugar de operar en elementos individuales de una secuencia, los métodos vectorizados funcionan en todos los componentes del vector simultáneamente. Por lo tanto, los cálculos vectorizados siempre obtienen resultados más rápidos.

Para ilustrar la velocidad de los cálculos vectorizados, usaremos un ejemplo que determina el tiempo transcurrido de un bucle for() para la generación de un vector grande. En el ejemplo, cada elemento se calcula secuencialmente como la suma acumulada incremental de 1 a N (donde N = 10 000 000). Se hace una comparación entre la iteración del bucle for() y la función vectorizada a través de pruebas de velocidad.

Fuente

Al comparar los resultados de las pruebas de velocidad, es claro que el tiempo transcurrido para el cálculo vectorizado (prueba de velocidad 2) es significativamente más rápido que el ciclo for(). En el tiempo que toma una pasada del bucle iterativo, el cálculo vectorizado se puede repetir 278 veces.

Función de repetición frente a replicación

La función o bucle de repetición en R se usa cuando queremos ejecutar el mismo bloque de código repetidamente hasta que se cumpla una condición específica. Es muy similar a los bucles for y while que ejecutan repetidamente un bloque de comando hasta la ruptura. La sintaxis básica para crear un bucle de repetición es:

repetir {

si (condición) {

descanso

}

}

El siguiente ejemplo aclarará el uso de la función Repetir:

En el ejemplo anterior, el bucle de repetición suma el valor hasta que llega a 6. Una vez que el bucle llega a 6, el bucle se interrumpe al imprimir "finaliza el bucle de repetición".

Por otro lado, la función replicar o rep en R, se usa para replicar valores. La sintaxis básica de R para usar la función rep() es:

  1. rep(valor,numero_de_veces)
  2. rep(secuencia,cada uno,numero_de_veces)

Aquí hay algunos ejemplos para entender la función rep():

Ejemplo: Usar la función rep() para replicar valores por un número específico de veces

En el ejemplo anterior, el valor 2 se replica diez veces.

Ejemplo: Usar la función rep() con un atributo de longitud

En el ejemplo anterior, 1 a 4 se imprime en secuencia hasta que el número de elementos llega a 20.

Ejemplo: Usar la función rep() para replicar una lista

En el ejemplo anterior, la lista de calificación de 1 a 5 se ha replicado tres veces.

Fuente

Usando la función rep() para expandir un vector

La función rep() es una forma flexible de repetir un vector. Aquí hay algunos ejemplos más:

En caso de que necesitemos expandir un vector estadístico de unidades experimentales/observacionales en un vector de un marco de datos con observaciones repetidas de las unidades, cada argumento es muy útil. Ejemplo:

Otra característica de rep() es que un vector puede expandirse a un panel desequilibrado al reemplazar el argumento de longitud con un vector que especifica la cantidad de veces que se repetirá cada elemento en el vector. Ejemplo:

Las versiones más simples y rápidas de la función rep incluyen rep_len() y rep.int(). Estas versiones más nuevas vienen sin algunos de los atributos de rep() pero resultan útiles en los casos en que la velocidad es primordial y no se desean aspectos adicionales del vector repetido.

Fuente

Leer: 6 ideas interesantes de proyectos R para principiantes

Conclusión

En este artículo, discutimos las funciones de repetición y replicación con ejemplos adecuados. Mientras que las iteraciones tradicionales son útiles para la ejecución repetida de bloques de código, el representante en R es ideal para replicar los valores de un vector o una lista. ¡Eficiente y ahorradora de tiempo, la función rep() ha simplificado la replicación de vectores!

Si tiene curiosidad por aprender sobre R, ciencia de datos, consulte el Programa PG Ejecutivo en Ciencia de Datos de IIIT-B y upGrad, que se creó para profesionales que trabajan y ofrece más de 10 estudios de casos y proyectos, talleres prácticos prácticos, tutoría con expertos de la industria. , 1 a 1 con mentores de la industria, más de 400 horas de aprendizaje y asistencia laboral con las mejores empresas.

¿Cómo puedo crear un vector con valores repetidos en R?

La función rep() en R puede usarse para repetir una serie de números enteros. En R, existen dos técnicas para crear un vector con valores repetidos; el primer método repite cada elemento del vector, mientras que el segundo método repite los elementos un número determinado de veces. Los vectores se crean utilizando la función rep en cada uno de estos enfoques. Por ejemplo, rep(1:5, times=5) da un vector con la secuencia 1 a 5 repetida 5 veces.

¿Qué función es más rápida, Replicar o For Loop?

En el lenguaje de programación R, la función de bucle For es más rápida que la función de replicación. Un bucle for es una técnica para recorrer una lista de valores en varios lenguajes de programación mediante la ejecución de código para cada valor de la lista. rep() es una función de bucle vectorizada cuyo único propósito es ejecutarse sin desperdiciar memoria. Cuando necesita cambiar una parte de un marco de datos existente, un For Loop suele ser la mejor opción.

¿Cómo puedo acelerar los códigos R?

A continuación se enumeran algunos métodos para acelerar los códigos R:

1. Antes de poner sus estructuras de datos y variables de salida en un bucle para los cálculos, asegúrese de que tengan la longitud y el tipo de datos correctos. Dentro del ciclo, trate de no expandir progresivamente la cantidad de datos.
2. Cuando sea posible, use una matriz en lugar de un marco de datos, ya que los marcos de datos pueden crear problemas en muchas situaciones. Como resultado, solo use marcos de datos cuando sea absolutamente esencial.
3. Cuando sea posible, utilice operaciones vectoriales y matriciales.
4. En R, no cambie el tipo o el tamaño de un objeto. Cambiar el tipo y el tamaño de un objeto R hace que reasigne espacio de memoria, lo cual es inadecuado de manera predeterminada.