rep() em R: decodificando a função de replicação
Publicados: 2020-06-15Antes de falarmos sobre rep em R , devemos saber o que é iteração. O termo iteração significa repetição. Como na maioria das outras linguagens de programação, o loop ou iteração tradicional é um aspecto central do R.
Embora os loops regulares sejam uma abordagem eficiente para o gerenciamento de dados, eles são caros pelo único motivo de que a iteração consome memória e tempo. Uma boa alternativa é a utilização de métodos vetorizados que possam atingir os mesmos objetivos da iteração; a função rep() é membro de uma dessas funções de loop vetorial.
Índice
O que é a função rep()?
Em termos simples, rep em R , ou a função rep() replica valores numéricos, ou texto, ou os valores de um vetor por um número específico de vezes. A função rep() é um membro da família de funções apply() do pacote base R. A família apply() contém funções usadas para manipular dados de arrays, matrizes, quadros de dados e listas repetidamente.
As funções apply() evitam o uso de construções de loop para atuar em arrays, matrizes ou listas de entrada e aplicam uma função nomeada com argumentos opcionais. A função chamada pode ser uma função de agregação, função de transformação ou funções vetorizadas, como matrizes, vetores, listas e matrizes. Confira nossos cursos de ciência de dados para saber mais sobre funções.
Leia mais: Data Frames em Python: Tutorial detalhado de Python
Cálculos vetorizados versus iterações
Em vez de operar em elementos individuais de uma sequência, os métodos vetorizados trabalham em todos os componentes vetoriais simultaneamente. Assim, cálculos vetorizados sempre trazem resultados mais rápidos.
Para ilustrar a velocidade dos cálculos vetorizados, usaremos um exemplo que determina o tempo decorrido de um loop for() para a geração de um vetor grande. No exemplo, cada elemento é calculado sequencialmente como a soma cumulativa incremental de 1 a N (onde N = 10.000.000). Uma comparação é feita entre a iteração do loop for() e a função vetorizada por meio de testes de velocidade.
Fonte
Ao comparar os resultados dos testes de velocidade, fica claro que o tempo decorrido para o cálculo vetorizado (teste de velocidade 2) é significativamente mais rápido que o loop for(). No tempo necessário para uma passagem do loop iterativo, o cálculo vetorizado pode ser repetido 278 vezes.
Função Repetir versus Replicar
A função Repeat ou loop em R é usada quando queremos executar o mesmo bloco de código repetidamente até que uma condição específica seja atendida. É muito semelhante aos loops for e while que executam repetidamente um bloco de comando até o intervalo. A sintaxe básica para criar um loop de repetição é:
repetir {
if(condição) {
pausa
}
}
O exemplo a seguir esclarecerá o uso da função Repeat:
No exemplo acima, o loop de repetição soma o valor até atingir 6. Quando o loop atingir 6, o loop é interrompido imprimindo “repeat loop ends”.
Por outro lado, a função replicar ou rep em R, é usada para replicar valores. A sintaxe básica do R para usar a função rep() é:
- rep(valor, número_de_vezes)
- rep(sequência,cada,número_de_vezes)
Aqui estão alguns exemplos para entender a função rep():
Exemplo: Usando a função rep() para replicar valores por um número específico de vezes
No exemplo acima, o valor 2 replica dez vezes.
Exemplo: Usando a função rep() com um atributo de comprimento

No exemplo acima, 1 a 4 são impressos em sequência até que o número de elementos atinja 20.
Exemplo: Usando a função rep() para replicar uma lista
No exemplo acima, a lista de classificação de 1 a 5 foi replicada três vezes.
Fonte
Usando a função rep() para expandir um vetor
A função rep() é uma maneira flexível de repetir um vetor. Aqui estão mais alguns exemplos:
Caso precisemos expandir um vetor estatístico de unidades experimentais/observacionais em um vetor de um quadro de dados com observações repetidas das unidades, cada argumento é muito útil. Exemplo:
Outro recurso de rep() é que um vetor pode se expandir para um painel não balanceado substituindo o argumento de comprimento por um vetor que especifica o número de vezes que cada elemento do vetor se repetirá. Exemplo:
Versões mais simples e rápidas da função rep incluem rep_len() e rep.int(). Essas versões mais recentes vêm sem alguns dos atributos de rep(), mas são úteis nos casos em que a velocidade é primordial e aspectos extras do vetor repetido são indesejados.
Fonte
Leia: 6 ideias interessantes de projetos R para iniciantes
Conclusão
Neste artigo, discutimos as funções Repetir e Replicar com exemplos adequados. Enquanto as iterações tradicionais são úteis para a execução repetida de blocos de código, o rep em R é ideal para replicar os valores de um vetor ou lista. Eficiente e economizadora de tempo, a função rep() simplificou a replicação vetorial!
Se você está curioso para aprender sobre R, ciência de dados, confira o Programa PG Executivo em Ciência de Dados do IIIT-B & upGrad, criado para profissionais que trabalham e oferece mais de 10 estudos de caso e projetos, workshops práticos práticos, orientação com especialistas do setor , 1-on-1 com mentores do setor, mais de 400 horas de aprendizado e assistência de trabalho com as principais empresas.
Como posso criar um vetor com valores repetidos em R?
A função rep() em R pode ser usada para repetir uma série de inteiros. Em R, existem duas técnicas para criar um vetor com valores repetidos; o primeiro método repete cada elemento no vetor, enquanto o segundo método repete os elementos por um determinado número de vezes. Os vetores são criados usando a função rep em cada uma dessas abordagens. Por exemplo, rep(1:5, times=5) fornece um vetor com a sequência 1 a 5 repetida 5 vezes.
Qual função é mais rápida - Replicate ou For Loop?
Na linguagem de programação R, a função de loop For é mais rápida que a função de replicação. Um loop for é uma técnica para fazer um loop em uma lista de valores em várias linguagens de programação executando código para cada valor na lista. rep() é uma função de loop vetorizada cujo único propósito é executar sem desperdiçar memória. Quando você precisa alterar uma parte de um quadro de dados existente, um For Loop geralmente é a melhor opção.
Como posso acelerar os códigos R?
Alguns métodos para acelerar os códigos R estão listados abaixo: -
1. Antes de colocar suas estruturas de dados e variáveis de saída em um loop para cálculos, certifique-se de que elas tenham o tamanho e o tipo de dados corretos. Dentro do loop, tente não expandir progressivamente a quantidade de dados.
2. Quando possível, use uma matriz em vez de um quadro de dados, pois os quadros de dados podem criar problemas em muitas situações. Como resultado, use apenas quadros de dados quando for absolutamente essencial.
3. Quando possível, use operações vetoriais e matriciais.
4. Em R, não altere o tipo ou tamanho de um objeto. Alterar o tipo e o tamanho de um objeto R faz com que ele realoque espaço de memória, o que é inadequado por padrão.