rep() w R: Dekodowanie funkcji replikacji

Opublikowany: 2020-06-15

Zanim zaczniemy mówić o rep w R , musimy wiedzieć, czym jest iteracja. Termin iteracja oznacza powtórzenie. Podobnie jak w większości innych języków programowania, tradycyjne pętle lub iteracje są podstawowym aspektem języka R.

Chociaż regularne pętle są wydajnym podejściem do zarządzania danymi, są one kosztowne tylko z tego powodu, że iteracja zajmuje pamięć i jest czasochłonna. Dobrą alternatywą jest zastosowanie metod zwektoryzowanych, które mogą osiągnąć te same cele, co iteracja; funkcja rep() jest elementem jednej z takich funkcji zapętlających z wektoryzacją.

Spis treści

Co to jest funkcja rep()?

Mówiąc prościej, rep w R lub funkcja rep() replikuje wartości liczbowe, tekst lub wartości wektora określoną liczbę razy. Funkcja rep() należy do rodziny funkcji apply() pakietu podstawowego języka R. Rodzina apply() zawiera funkcje używane do manipulowania danymi z tablic, macierzy, ramek danych i list w sposób powtarzalny.

Funkcje apply() unikają używania konstrukcji pętli do działania na tablicach, macierzach lub listach wejściowych i stosują nazwaną funkcję z opcjonalnymi argumentami. Wywoływana funkcja może być funkcją agregującą, funkcją przekształcającą lub funkcjami wektorowymi, takimi jak tablice, wektory, listy i macierze. Sprawdź nasze kursy nauki o danych, aby dowiedzieć się więcej o funkcjach.

Przeczytaj więcej: Ramki danych w Pythonie: szczegółowy samouczek Pythona

Obliczenia zwektoryzowane a iteracje

Zamiast operować na poszczególnych elementach sekwencji, metody wektorowe działają jednocześnie na wszystkich elementach wektora. Dlatego obliczenia wektorowe zawsze przynoszą szybsze wyniki.

Aby zilustrować szybkość obliczeń wektoryzowanych, użyjemy przykładu określającego czas, jaki upłynął od pętli for() do wygenerowania dużego wektora. W tym przykładzie każdy element jest obliczany sekwencyjnie jako przyrostowa suma skumulowana od 1 do N (gdzie N = 10 000 000). Porównanie jest dokonywane między iteracją pętli for() a funkcją wektoryzowaną za pomocą testów szybkości.

Źródło

Porównując wyniki testów szybkości, widać wyraźnie, że czas, jaki upłynął dla obliczeń wektoryzowanych (test szybkości 2), jest znacznie krótszy niż w przypadku pętli for(). W czasie jednego przejścia pętli iteracyjnej obliczenie zwektoryzowane można powtórzyć 278 razy.

Funkcja powtarzania a funkcja replikacji

Funkcja lub pętla Repeat w R jest używana, gdy chcemy wielokrotnie wykonywać ten sam blok kodu, aż do spełnienia określonego warunku. Jest bardzo podobny do pętli for i while, które wielokrotnie wykonują blok poleceń aż do przerwy. Podstawowa składnia tworzenia pętli powtarzania to:

powtarzać {

jeśli(warunek) {

zepsuć

}

}

Poniższy przykład wyjaśni użycie funkcji Powtórz:

W powyższym przykładzie pętla powtarzania sumuje wartość, aż osiągnie 6. Gdy pętla osiągnie 6, pętla zostaje przerwana, wyświetlając „końce powtarzania pętli”.

Z drugiej strony funkcja replikacji lub rep w R służy do replikowania wartości. Podstawowa składnia języka R do korzystania z funkcji rep() to:

  1. rep(wartość,ilość_czasów)
  2. rep(sekwencja, każdy, liczba_czasów)

Oto kilka przykładów, które pomogą zrozumieć funkcję rep():

Przykład: Używanie funkcji rep() do replikowania wartości określoną liczbę razy

W powyższym przykładzie wartość 2 jest powtarzana dziesięć razy.

Przykład: Użycie funkcji rep() z atrybutem długości

W powyższym przykładzie kolejno drukowane są od 1 do 4, aż liczba elementów osiągnie 20.

Przykład: Użycie funkcji rep() do replikacji listy

W powyższym przykładzie lista ocen od 1 do 5 powtórzyła się trzykrotnie.

Źródło

Używanie funkcji rep() do rozwinięcia wektora

Funkcja rep() to elastyczny sposób powtarzania wektora. Oto kilka przykładów:

W przypadku, gdy musimy rozszerzyć wektor statystyczny jednostek eksperymentalnych/obserwacyjnych na wektor ramki danych z powtarzającymi się obserwacjami jednostek, każdy argument jest bardzo przydatny. Przykład:

Inną cechą rep() jest to, że wektor może rozwinąć się do niezrównoważonego panelu poprzez zastąpienie argumentu length wektorem, który określa liczbę powtórzeń każdego elementu w wektorze. Przykład:

Prostsze i szybsze wersje funkcji rep obejmują rep_len() i rep.int(). Te nowsze wersje są pozbawione niektórych atrybutów rep(), ale okazują się przydatne w przypadkach, gdy prędkość jest najważniejsza, a dodatkowe aspekty powtarzającego się wektora są niepożądane.

Źródło

Przeczytaj: 6 ciekawych pomysłów na projekty R dla początkujących

Wniosek

W tym artykule omówiliśmy funkcje Powtórz i Replikuj z odpowiednimi przykładami. Podczas gdy tradycyjne iteracje są przydatne do wielokrotnego wykonywania bloków kodu, powtórzenie w R jest idealne do replikowania wartości wektora lub listy. Wydajna i oszczędzająca czas funkcja rep() uprościła replikację wektorów!

Jeśli chcesz dowiedzieć się więcej o R, nauce o danych, sprawdź program Executive PG w dziedzinie Data Science IIIT-B i upGrad, który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży , 1 na 1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Jak mogę utworzyć wektor z powtarzającymi się wartościami w R?

Funkcja rep() w R może być użyta do powtórzenia szeregu liczb całkowitych. W R istnieją dwie techniki tworzenia wektora z powtarzającymi się wartościami; pierwsza metoda powtarza każdy element w wektorze, podczas gdy druga metoda powtarza elementy określoną liczbę razy. Wektory są tworzone przy użyciu funkcji rep w każdym z tych podejść. Na przykład rep(1:5, razy=5) daje wektor z sekwencją od 1 do 5 powtórzoną 5 razy.

Która funkcja jest szybsza — Replikuj czy Do pętli?

W języku programowania R funkcja pętli For jest szybsza niż funkcja replikacji. Pętla for to technika zapętlenia listy wartości w różnych językach programowania przez uruchomienie kodu dla każdej wartości na liście. rep() to zwektoryzowana funkcja pętli, której jedynym celem jest działanie bez marnowania pamięci. Kiedy musisz zmienić część istniejącej ramki danych, zwykle najlepszą opcją jest pętla For.

Jak mogę przyspieszyć kody R?

Poniżej wymieniono niektóre metody przyspieszania kodów R:-

1. Przed umieszczeniem struktur danych i zmiennych wyjściowych w pętli do obliczeń, upewnij się, że mają odpowiednią długość i typ danych. Wewnątrz pętli staraj się nie zwiększać stopniowo ilości danych.
2. Jeśli to możliwe, używaj macierzy zamiast ramki danych, ponieważ ramki danych mogą powodować problemy w wielu sytuacjach. W rezultacie używaj ramek danych tylko wtedy, gdy jest to absolutnie niezbędne.
3. Jeśli to możliwe, używaj operacji wektorowych i macierzowych.
4. W R nie zmieniaj typu ani rozmiaru obiektu. Zmiana typu i rozmiaru obiektu R powoduje, że ponownie przydziela on miejsce w pamięci, co domyślnie jest nieodpowiednie.