rep() in R: decodifica della funzione di replica
Pubblicato: 2020-06-15Prima di parlare di rep in R , dobbiamo sapere cos'è l'iterazione. Il termine iterazione significa ripetizione. Come nella maggior parte degli altri linguaggi di programmazione, il ciclo tradizionale o l'iterazione è un aspetto fondamentale di R.
Sebbene i cicli regolari siano un approccio efficiente alla gestione dei dati, sono costosi per il solo motivo che l'iterazione richiede memoria e tempo. Una buona alternativa è l'uso di metodi vettorizzati che possono raggiungere gli stessi obiettivi dell'iterazione; la funzione rep() è un membro di una di queste funzioni di loop vettoriali.
Sommario
Qual è la funzione rep()?
In parole povere, rep in R o la funzione rep() replica valori numerici, o testo, oi valori di un vettore per un numero specifico di volte. La funzione rep() è un membro della famiglia di funzioni apply() del pacchetto base R. La famiglia apply() contiene funzioni utilizzate per manipolare i dati da array, matrici, frame di dati ed elenchi in modo ripetitivo.
Le funzioni apply() evitano l'uso di costrutti di ciclo per agire su array, matrici o elenchi di input e applicano una funzione denominata con argomenti opzionali. La funzione chiamata potrebbe essere una funzione di aggregazione, di trasformazione o funzioni vettoriali come matrici, vettori, elenchi e matrici. Dai un'occhiata ai nostri corsi di scienza dei dati per saperne di più sulle funzioni.
Ulteriori informazioni: Frame di dati in Python: tutorial approfondito su Python
Calcoli vettorizzati contro iterazioni
Invece di operare sui singoli elementi di una sequenza, i metodi vettorizzati funzionano contemporaneamente su tutte le componenti del vettore. Pertanto, i calcoli vettorizzati ottengono sempre risultati più rapidi.
Per illustrare la velocità dei calcoli vettorizzati, utilizzeremo un esempio che determina il tempo trascorso da un ciclo for() per la generazione di un vettore grande. Nell'esempio, ogni elemento viene calcolato in sequenza come somma cumulativa incrementale da 1 a N (dove N = 10.000.000). Viene tracciato un confronto tra l'iterazione del ciclo for() e la funzione vettorizzata tramite i test di velocità.
Fonte
Confrontando i risultati dei test di velocità, è chiaro che il tempo trascorso per il calcolo vettorizzato (test di velocità 2) è significativamente più veloce del ciclo for(). Nel tempo impiegato per un passaggio del ciclo iterativo, il calcolo vettorizzato può essere ripetuto 278 volte.
Ripeti contro funzione di replica
La funzione Ripeti o ciclo in R viene utilizzata quando si desidera eseguire ripetutamente lo stesso blocco di codice fino a quando non viene soddisfatta una condizione specifica. È molto simile ai cicli for e while che eseguono ripetutamente un blocco di comandi fino all'interruzione. La sintassi di base per creare un ciclo di ripetizione è:
ripetere {
se(condizione) {
rottura
}
}
L'esempio seguente chiarirà l'uso della funzione Ripeti:
Nell'esempio sopra, il ciclo di ripetizione somma il valore fino a raggiungere 6. Una volta che il ciclo ha raggiunto 6, il ciclo si interrompe stampando "fine ciclo di ripetizione".
D'altra parte, la funzione replica o rep in R viene utilizzata per replicare i valori. La sintassi R di base per l'utilizzo della funzione rep() è:
- rep(valore,numero_di_volte)
- rep(sequenza,ciascuno,numero_di_volte)
Ecco alcuni esempi per comprendere la funzione rep():
Esempio: utilizzo della funzione rep() per replicare i valori per un numero specifico di volte
Nell'esempio precedente, il valore 2 viene replicato dieci volte.

Esempio: utilizzo della funzione rep() con un attributo di lunghezza
Nell'esempio sopra, da 1 a 4 vengono stampati in sequenza finché il numero di elementi non raggiunge 20.
Esempio: utilizzo della funzione rep() per replicare un elenco
Nell'esempio precedente, l'elenco di valutazione da 1 a 5 è stato replicato tre volte.
Fonte
Utilizzo della funzione rep() per espandere un vettore
La funzione rep() è un modo flessibile per ripetere un vettore. Ecco altri esempi:
Nel caso in cui abbiamo bisogno di espandere un vettore statistico di unità sperimentali/osservazionali in un vettore di un frame di dati con osservazioni ripetute delle unità, ogni argomento è molto utile. Esempio:
Un'altra caratteristica di rep() è che un vettore può espandersi in un pannello sbilanciato sostituendo l'argomento lunghezza con un vettore che specifica il numero di volte in cui ciascun elemento nel vettore verrà ripetuto. Esempio:
Versioni più semplici e veloci della funzione rep includono rep_len() e rep.int(). Queste versioni più recenti sono prive di alcuni degli attributi di rep() ma si dimostrano utili nei casi in cui la velocità è primaria e gli aspetti extra del vettore ripetuto non sono desiderati.
Fonte
Leggi: 6 interessanti idee per progetti R per principianti
Conclusione
In questo articolo, abbiamo discusso le funzioni Ripeti e Replica con esempi appropriati. Mentre le iterazioni tradizionali sono utili per l'esecuzione ripetuta di blocchi di codice, il rappresentante in R è ideale per replicare i valori di un vettore o di un elenco. Efficiente e veloce, la funzione rep() ha semplificato la replica vettoriale!
Se sei curioso di conoscere R, scienza dei dati, dai un'occhiata al programma Executive PG in Data Science di IIIT-B e upGrad, creato per i professionisti che lavorano e offre oltre 10 casi di studio e progetti, workshop pratici pratici, tutoraggio con esperti del settore , 1 contro 1 con mentori del settore, oltre 400 ore di apprendimento e assistenza al lavoro con le migliori aziende.
Come posso creare un vettore con valori ripetuti in R?
La funzione rep() in R può essere utilizzata per ripetere una serie di numeri interi. In R, ci sono due tecniche per creare un vettore con valori ripetuti; il primo metodo ripete ogni elemento nel vettore, mentre il secondo metodo ripete gli elementi per un determinato numero di volte. I vettori vengono creati utilizzando la funzione rep in ciascuno di questi approcci. Ad esempio, rep(1:5, times=5) fornisce un vettore con la sequenza da 1 a 5 ripetuta 5 volte.
Quale funzione è più veloce: Replica o For Loop?
Nel linguaggio di programmazione R, la funzione di ciclo For è più veloce della funzione di replica. Un ciclo for è una tecnica per scorrere un elenco di valori in vari linguaggi di programmazione eseguendo il codice per ogni valore nell'elenco. rep() è una funzione di loop vettoriale il cui unico scopo è di funzionare senza sprecare memoria. Quando è necessario modificare una parte di un frame di dati esistente, un ciclo For è solitamente l'opzione migliore.
Come posso velocizzare i codici R?
Alcuni metodi per accelerare i codici R sono elencati di seguito:-
1. Prima di inserire le strutture dati e le variabili di output in un ciclo per i calcoli, assicurati che siano della lunghezza e del tipo di dati corretti. All'interno del ciclo, cerca di non espandere progressivamente la quantità di dati.
2. Quando possibile, utilizzare una matrice invece di un frame di dati, poiché i frame di dati possono creare problemi in molte situazioni. Di conseguenza, utilizzare i frame di dati solo quando è assolutamente essenziale.
3. Quando possibile, utilizzare operazioni vettoriali e matriciali.
4. In R, non modificare il tipo o la dimensione di un oggetto. La modifica del tipo e della dimensione di un oggetto R provoca la riallocazione dello spazio di memoria, che per impostazione predefinita è inadeguato.