Podstawy programowania R

Operator podstawienia

Wybrane podstawowe zagadnienia ze strukturalnego programowania w języku C\C++.

  1. Wprowadzenie .
  2. Podstawowe operacje.
  3. Operacje na wektorach.
  4. Operatory arytmetyczne.
  5. Operatory logiczne.
  6. Wybrane funkcje matematyczne.
  7. Wektory - Podstawy.
  8. Typ wyliczeniowy.
  9. Typ listowy.
  10. Typ wektorowy vs. typ listowy.
  11. Typ tablicowy.
  12. Typ macierzowy.
  13. Ramki danych.
  14. Edycja ramki danych.
  15. Konwersja typów danych.
  16. Tworzenie_skryptów.
  17. Instrukcja_warunkowa if
  18. Pętla for w R.
  19. Pętla while w R.

Wprowadzenie

Wprowadzenie

Język R to język programowania i środowisko do analizy danych oraz grafik. Jest popularnym narzędziem w dziedzinie statystyki i analizy danych.

Historia języka R

  • Język R został stworzony w latach 90. XX wieku przez Rossa Ihakę i Roberta Gentlemana na Uniwersytecie w Auckland.
  • Pierwsza wersja języka R została udostępniona publicznie w 1995 roku.
  • R jest rozwijany jako projekt open-source, co pozwala na ciągły rozwój i dostosowywanie do potrzeb użytkowników.
  • Język R zyskał popularność w naukach ścisłych i społecznych, a także w biznesie jako narzędzie do analizy danych i statystyki.
  • Obecnie R jest jednym z najczęściej używanych języków programowania w analizie danych.

Twórcy języka R

  • Język R został stworzony przez Rossa Ihakę i Roberta Gentlemana.
  • Ross Ihaka i Robert Gentleman byli członkami wydziału statystyki na Uniwersytecie w Auckland w latach 90. XX wieku.
  • Pierwsza wersja języka R została udostępniona publicznie w 1995 roku.
  • Ihaka i Gentleman rozwijali język R jako projekt open-source, co pozwalało na ciągły rozwój i dostosowywanie go do potrzeb użytkowników.

Podstawowe operacje

Operator podstawienia

W języku R do przypisywania wartości do zmiennych używa się operatora podstawienia `<-` lub `=`.

  • Operator `<-` jest częściej stosowany i zalecany.
  • Operator `=` również działa, ale rzadziej używany w praktyce.

Przykłady:

x <- 10
y = 20

Przypisanie wartości do zmiennej

Operacja polega na przypisaniu wartości do konkretnej zmiennej za pomocą operatora przypisania `<-` lub `=`. Na przykład:

x <- 10

Przykładowe wyjście:

> x <- 10
> x
[1] 10

Tworzenie wektoró

Operacje takie jak indeksowanie, dodawanie, usuwanie elementów itp. Na przykład:

print(vec[1])
vec <- c(vec, 6)
vec <- vec[-3]

Przykładowe wyjścia:

> print(vec[1])
[1] 1
> vec <- c(vec, 6)
> vec
[1] 1 2 4 5 6
> vec <- vec[-3]
> vec
[1] 1 2 5 6

Operatory arytmetyczne

W języku R dostępne są standardowe operatory arytmetyczne do wykonywania działań matematycznych. Oto kilka z nich:

  • + - dodawanie
  • - - odejmowanie
  • * - mnożenie
  • / - dzielenie
  • ^ - potęgowanie

Przykłady z wyjściami:

3 + 5 -> 8
10 - 4 -> 6
2 * 3 -> 6
15 / 3 -> 5
2^3 -> 8

Operatory logiczne

W języku R dostępne są operatory logiczne do porównywania i łączenia warunków. Oto kilka z nich:

  • == - równość
  • != - różnica
  • > - większe niż
  • < - mniejsze niż
  • >= - większe lub równe
  • <= - mniejsze lub równe
  • & - AND logiczne
  • | - OR logiczne
  • ! - NOT logiczne

Wybrane funkcje matematyczne

W języku R dostępne są liczne funkcje matematyczne do wykonywania różnych operacji na danych numerycznych. Oto kilka z nich:

  • sqrt(x) - pierwiastek kwadratowy z x
  • abs(x) - wartość bezwzględna z x
  • sin(x) - sinus kąta x (w radianach)
  • cos(x) - cosinus kąta x (w radianach)
  • tan(x) - tangens kąta x (w radianach)
  • log(x) - logarytm naturalny z x
  • exp(x) - wartość wykładnicza x

Przykłady z wyjściami:

sqrt(25) -> 5
abs(-10) -> 10
sin(pi/2) -> 1
cos(0) -> 1
tan(pi/4) -> 1
log(10) -> 2.302585
exp(2) -> 7.389056

Wektory

Przypisanie wartości do wektora

Operacja polega na przypisaniu wartości do wektora za pomocą funkcji c() (concatenate). Na przykład:

vec <- c(1, 2, 3, 4, 5)

Przykładowe wyjście:

> vec <- c(1, 2, 3, 4, 5)
> vec
[1] 1 2 3 4 5

Operacje na wektorach

Operacje takie jak indeksowanie, dodawanie, usuwanie elementów itp.

Inne konstrukcje typów wektorowych

Oprócz standardowych wektorów liczbowych i znakowych, w języku R dostępne są również inne konstrukcje typów wektorowych:

  • Wektory logiczne: Zawierają wartości TRUE lub FALSE, często wykorzystywane w warunkach logicznych.
  • Wektory czynnikowe: Reprezentują kategorie, używane często do reprezentowania danych jakościowych.
  • Wektory daty i czasu: Przechowują informacje o datach i czasach, umożliwiają operacje związane z czasem.

Operacje arytmetyczne na wektorach

W języku R można wykonywać operacje arytmetyczne na wektorach, które są wykonywane element po elemencie.

  • Dodawanie: wektor1 + wektor2
  • Odejmowanie: wektor1 - wektor2
  • Mnożenie: wektor1 * wektor2
  • Dzielenie: wektor1 / wektor2
  • Potęgowanie: wektor1 ^ wektor2

Operacje logiczne na wektorach

W języku R można wykonywać operacje logiczne na wektorach, które są wykonywane element po elemencie.

  • Równość: wektor1 == wektor2
  • Nierówność: wektor1 != wektor2
  • Większe niż: wektor1 > wektor2
  • Mniejsze niż: wektor1 < wektor2
  • Większe lub równe: wektor1 >= wektor2
  • Mniejsze lub równe: wektor1 <= wektor2

Funkcje agregujące dla wektorów

W języku R dostępne są funkcje agregujące, które pozwalają na obliczanie statystyk i innych parametrów dla wektorów.

  • sum() - suma wartości wektora
  • mean() - średnia arytmetyczna wartości wektora
  • median() - mediana wartości wektora
  • min() - najmniejsza wartość wektora
  • max() - największa wartość wektora
  • sd() - odchylenie standardowe wartości wektora
  • var() - wariancja wartości wektora

Indeksowanie wektorów

W języku R można korzystać z różnych metod indeksowania, aby odwoływać się do określonych elementów wektora.

  • Indeksowanie od jednego elementu: wektor[index]
  • Indeksowanie od więcej niż jednego elementu: wektor[start:stop]
  • Indeksowanie z krokiem: wektor[start:stop:krok]

Sortowanie wektorów

W języku R można sortować wektory w różnych sposób za pomocą funkcji sort().

  • Sortowanie rosnąco: sort(wektor)
  • Sortowanie malejąco: sort(wektor, decreasing = TRUE)

Typ wyliczeniowy

W języku R typy wyliczeniowe są reprezentowane przez obiekty czynnikowe, które pozwalają na przechowywanie i manipulowanie zbiorem kategorii.

  • Czynniki: Obiekty czynnikowe mogą być tworzone za pomocą funkcji factor() lub konwertowane z wektora za pomocą funkcji as.factor().
  • Kategorie: Czynniki mogą mieć przypisane określone kategorie, które mogą być porządkowe lub nieporządkowe.
  • Porządek: Jeśli kategorie są porządkowe, można określić ich kolejność za pomocą argumentu ordered = TRUE.

Przykład:

czynnik <- factor(c("A", "B", "C")) czynnik_uporzadkowany <- factor(c("niski", "średni", "wysoki"), ordered = TRUE)

Operacje na typach wyliczeniowych>

W języku R typy wyliczeniowe, reprezentowane przez obiekty czynnikowe, mogą być poddane różnym operacjom.

  • Porządkowanie: Możliwe jest porządkowanie kategorii za pomocą argumentu ordered = TRUE podczas tworzenia obiektu czynnikowego.
  • Konwersja: Obiekty czynnikowe mogą być konwertowane na wektory za pomocą funkcji as.character() lub as.numeric()
  • Porównywanie: Możliwe jest porównywanie obiektów czynnikowych za pomocą operatorów porównania (<, >, == itp.).

Przykład

czynnik <- factor(c("niski", "średni", "wysoki"), 
ordered = TRUE) as.numeric(czynnik) czynnik == "średni"

;Wyjście:

  • [1] 1 2 3
  • [1] FALSE TRUE FALSE

Typ listowy

W języku R typ listowy jest jednym z podstawowych typów danych, który pozwala na przechowywanie różnych rodzajów danych w jednej strukturze.

  • Tworzenie listy: Listy można tworzyć za pomocą funkcji list().
  • Dostęp do elementów: Do elementów listy można uzyskać dostęp za pomocą indeksów lub nazw.
  • Manipulacja listą: Można dodawać, usuwać, modyfikować i łączyć listy.

  • lista <- list(nazwa = "John", wiek = 30, punkty = c(10, 20, 30))>
  • lista\$nazwa
  • lista[[2]]

Wyjście:

  • "John"
  • 30

Typ wektorowy vs. typ listowy

>W języku R dostępne są dwa podstawowe typy danych: wektorowy i listowy. Oto różnice między nimi:

  • Typ wektorowy:
    • Składa się z elementów tego samego typu danych.
    • Ma ustaloną długość.
    • Przykłady: wektory liczbowe, znakowe, logiczne.
  • Typ listowy:
    • Może zawierać elementy różnych typów danych.
    • Może mieć zmienną długość.
    • Przykłady: listy złożone z różnych typów danych.

Wybór między typem wektorowym a listowym zależy od struktury danych i rodzaju operacji, które mają być wykonane na danych.

Typ tablicowy

W języku R typ tablicowy jest jednym z podstawowych typów danych, który pozwala na przechowywanie danych w postaci wielowymiarowej tablicy.

  • Tworzenie tablicy: Tablicę można tworzyć za pomocą funkcji array() lub konwertować wektor na tablicę za pomocą funkcji as.array().
  • Wielowymiarowość: Tablica może być jedno-, dwu- lub wielowymiarowa, zależnie od liczby wymiarów.
  • Dostęp do elementów: Do elementów tablicy można uzyskać dostęp za pomocą indeksów wskazujących na położenie w każdym z wymiarów.

Przykład:

tablica <- array(c(1, 2, 3, 4, 5, 6), dim = c(2, 3))
tablica[1, 2]
2

 

Typ tablicowy - odwołania do elementów

W języku R można uzyskać dostęp do poszczególnych elementów tablicy poprzez określenie indeksów dla każdego z wymiarów.

  • Jednowymiarowa tablica: Do elementów jednowymiarowej tablicy można uzyskać dostęp za pomocą jednego indeksu.
  • Wielowymiarowa tablica: Do elementów wielowymiarowej tablicy można uzyskać dostęp za pomocą indeksów dla każdego z wymiarów oddzielnie.

Przykład:

tablica <- array(1:12, dim = c(3, 4))
tablica[2, 3]

 

Wyjście:

7

Typ macierzowy

W języku R macierz jest jednym z podstawowych typów danych, który pozwala na przechowywanie danych w formie dwuwymiarowej tablicy.

  • Tworzenie macierzy: Macierz można tworzyć za pomocą funkcji matrix().
  • Wielkość macierzy: Macierz może mieć dowolny rozmiar określony przez liczbę wierszy i kolumn.
  • Dostęp do elementów: Do elementów macierzy można uzyskać dostęp za pomocą indeksów wierszy i kolumn.

Przykład:

macierz <- matrix(1:9, nrow = 3, ncol = 3)

Wyjście:

1	2	3
4	5	6
7	8	9

Wymiary macierzy

Aby sprawdzić wymiary macierzy w języku R, można użyć funkcji dim() lub operatora dim.

  • Funkcja dim(): Zwraca wymiary macierzy jako wektor.
  • Operator dim: Pozwala na dostęp do wymiarów macierzy jako atrybutu.

Przykład:

  • macierz <- matrix(1:12, nrow = 3, ncol = 4)
  • wymiary <- dim(macierz)
  • liczba_wierszy <- dim(macierz)[1]
  • liczba_kolumn <- dim(macierz)[2]

Wymiary macierzy:

liczba_wierszy × liczba_kolumn

Przykładowa macierz

Przykładowa macierz:

1	2	3	4
5	6	7	8
9	10	11	12

  

Operacje na macierzach (część 1)

W języku R można wykonywać różne operacje na macierzach, takie jak dodawanie, mnożenie, transpozycja itp.

  • Dodawanie macierzy: Dodawanie dwóch macierzy o tych samych wymiarach.
  • Mnożenie macierzy: Mnożenie dwóch macierzy zgodnie z regułami algebry macierzowej.

Przykład dodawania:

1 2
3 4
+
5 6
7 8
=
6 8
10 12

Operacje na macierzach (część 2)

Przykład mnożenia:

 

1 2
3 4
×
5 6
7 8
=
19 22
43 50
  • Transpozycja macierzy: Zamiana wierszy na kolumny i kolumn na wiersze.

Przykład transpozycji:

Transpozycja

1 2
3 4
=
1 3
2 4

Ramki danych

Ramka danych (data frame) jest jedną z podstawowych struktur danych w języku R, która pozwala na przechowywanie danych w postaci tabelarycznej.

  • Struktura: Ramka danych składa się z wierszy i kolumn, gdzie każda kolumna może mieć różne typy danych.
  • Podobieństwo do bazy danych: Ramka danych przypomina tabelę w bazie danych, gdzie każda kolumna reprezentuje zmienną, a każdy wiersz reprezentuje obserwację.
  • Tworzenie: Ramkę danych można tworzyć za pomocą funkcji data.frame() lub wczytywać z pliku.

Przykładowa ramka danych:

ID Name Age
1 John 30
2 Alice 25
3 Bob 35

Operacje na ramce danych

W języku R można wykonywać różne operacje na ramkach danych, takie jak filtrowanie, grupowanie, sortowanie, wybieranie kolumn itp.

  • Filtrowanie danych: Wybieranie wierszy na podstawie określonych warunków.
  • Grupowanie danych: Grupowanie danych na podstawie wartości w określonej kolumnie.
  • Sortowanie danych: Sortowanie wierszy na podstawie wartości w określonej kolumnie.
  • Wybieranie kolumn: Wybieranie określonych kolumn z ramki danych.

Przykłady operacji na ramce danych:

  • Filtrowanie: subset(df, age > 30)
  • Grupowanie: aggregate(df\$income, by = list(df\$gender), FUN = mean)
  • Sortowanie: df_sorted <- df[order(df\$age), ]
  • Wybieranie kolumn: selected_cols <- df['name', 'age']

Edycja ramki danych

Edycja ramki danych

W języku R można edytować ramki danych, tj. dodawać nowe kolumny, usuwać kolumny, aktualizować wartości w kolumnach itp.

  • Dodawanie nowej kolumny: Dodawanie nowej kolumny do istniejącej ramki danych.
  • Usuwanie kolumny: Usuwanie istniejącej kolumny z ramki danych.
  • Aktualizacja wartości: Aktualizacja wartości w określonych komórkach ramki danych.

Przykłady operacji edycji ramki danych:

  • Dodawanie nowej kolumny: df$new_column <- c(1, 2, 3)
  • Usuwanie kolumny: df <- df[,-3]
  • Aktualizacja wartości: df[1, 'age'] <- 40

Dodatkowe operacje na ramce danych

Dodatkowe operacje na ramce danych

W języku R istnieje wiele dodatkowych operacji, które można wykonywać na ramkach danych, w celu manipulacji i analizy danych.

  • Dodawanie nowych kolumn: Dodawanie nowych kolumn do istniejącej ramki danych na podstawie obliczeń lub istniejących kolumn.
  • Usuwanie kolumn: Usuwanie wybranych kolumn z ramki danych.
  • Zmiana nazw kolumn: Zmiana nazw kolumn w ramce danych dla lepszej czytelności lub zgodności z innymi zmiennymi.
  • Przetwarzanie brakujących danych: Obsługa brakujących danych poprzez usuwanie, uzupełnianie wartościami domyślnymi lub interpolację.

Przykłady operacji na ramce danych:

  • Dodawanie nowych kolumn: df$total <- df$quantity * df$price
  • Usuwanie kolumn: df_modified <- subset(df, select = -c('column_name'))
  • Zmiana nazw kolumn: colnames(df) <- c('new_name1', 'new_name2')
  • Przetwarzanie brakujących danych: df_clean <- na.omit(df)

Konwersja typów danych

Konwersja typów danych

W języku R możliwa jest konwersja typów danych między różnymi typami danych, co jest przydatne w przypadku przekształcania danych do odpowiedniego formatu dla dalszej analizy lub wizualizacji.

  • Do liczby całkowitej (integer): as.integer()
  • Do liczby zmiennoprzecinkowej (numeric): as.numeric()
  • Do ciągu znaków (character): as.character()
  • Do czynnika (factor): as.factor()
  • Do logicznego (logical): as.logical()
  • Do daty (Date): as.Date()

Przykład konwersji typów danych:

  • df$age <- as.integer(df$age)
  • df$income <- as.numeric(df$income)
  • df$name <- as.character(df$name)
  • df$gender <- as.factor(df$gender)
  • df$is_active <- as.logical(df$is_active)
  • df$date_of_birth <- as.Date(df$date_of_birth, format = '%Y-%m-%d')

Tworzenie skryptów

Tworzenie skryptów

Skrypty w języku R pozwalają na zapisanie zestawu poleceń, które mogą być wykonywane sekwencyjnie w celu wykonania określonych operacji na danych.

  • Tworzenie skryptów: Skrypty w R mogą być tworzone w dowolnym edytorze tekstu, takim jak Notepad, Visual Studio Code, RStudio, itp.
  • Rozszerzenie pliku: Skrypty w R mają zazwyczaj rozszerzenie pliku .R.
  • Wykonywanie skryptów: Skrypty w R można wykonywać poprzez uruchomienie pliku skryptu w konsoli R lub za pomocą polecenia source().
  • Zarządzanie skryptami: Skrypty można organizować w folderach i wywoływać w odpowiedniej kolejności w zależności od potrzeb.

Przykładowy skrypt R

Przykładowy skrypt R

Przykładowy skrypt R:

  • # Wczytanie danych
  • data <- read.csv('data.csv')
  • # Przetwarzanie danych
  • summary(data)
  • # Wykresy
  • plot(data$x, data$y)

Instrukcje warunkowe w R

Instrukcje warunkowe w języku R pozwalają na wykonywanie określonych operacji w zależności od spełnienia określonych warunków. Istnieją różne formy instrukcji warunkowych, w tym:

  • Instrukcja if-else: Wykonuje pewne operacje, jeśli warunek jest spełniony, a inne operacje, jeśli warunek nie jest spełniony.
  • Instrukcja ifelse(): Funkcja ifelse() pozwala na prostą instrukcję warunkową w formie jednego wyrażenia.
  • Instrukcja switch(): Instrukcja switch() pozwala na wybór jednej z wielu możliwych ścieżek wykonywania na podstawie wartości wyrażenia.

Instrukcje warunkowe w R

Instrukcje warunkowe w języku R pozwalają na wykonywanie określonych operacji w zależności od spełnienia określonych warunków. Istnieją różne formy instrukcji warunkowych, w tym:

  • Instrukcja if-else: Wykonuje pewne operacje, jeśli warunek jest spełniony, a inne operacje, jeśli warunek nie jest spełniony.
  • Instrukcja ifelse(): Funkcja ifelse() pozwala na prostą instrukcję warunkową w formie jednego wyrażenia.
  • Instrukcja switch(): Instrukcja switch() pozwala na wybór jednej z wielu możliwych ścieżek wykonywania na podstawie wartości wyrażenia.

Instrukcja if-else w R

Przykład instrukcji if-else:

if (warunek) {
    wykonaj_operacje_jeśli_prawda()
} else {
    wykonaj_operacje_jeśli_fałsz()
}

Przykład 1: Sprawdzenie parzystości

Kod

liczba <- 7
if (liczba %% 2 == 0) {
    print("Liczba jest parzysta")
} else {
    print("Liczba jest nieparzysta")
}

Wynik

Liczba jest nieparzysta

Przykład 2: Sprawdzenie wielkości liczby

Kod

liczba <- 10
if (liczba > 0) {
    print("Liczba jest dodatnia")
} else if (liczba < 0) {
    print("Liczba jest ujemna")
} else {
    print("Liczba jest równa zero")
}

Wynik

Liczba jest dodatnia

Przykład 3: Sprawdzenie długości wektora

Kod

wektor <- c(1, 2, 3, 4)
if (length(wektor) > 3) {
    print("Wektor jest długi")
} else {
    print("Wektor jest krótki")
}

Wynik

Wektor jest długi

Przykład 4: Sprawdzenie kategorii wiekowej

Kod

wiek <- 25
if (wiek < 18) {
    print("Osoba jest nieletnia")
} else if (wiek >= 18 && wiek < 65) {
    print("Osoba jest dorosła")
} else {
    print("Osoba jest emerytem")
}

Wynik

Osoba jest dorosła

Przykład 5: Sprawdzenie sezonu roku

Kod

miesiac <- "lipiec"
if (miesiac %in% c("grudzień", "styczeń", "luty")) {
    print("Jest zima")
} else if (miesiac %in% c("marzec", "kwiecień", "maj")) {
    print("Jest wiosna")
} else if (miesiac %in% c("czerwiec", "lipiec", "sierpień")) {
    print("Jest lato")
} else {
    print("Jest jesień")
}

Wynik

Jest lato

Przykłady instrukcji warunkowych: ifelse()

Funkcja ifelse()

Funkcja ifelse() pozwala na prostą instrukcję warunkową w formie jednego wyrażenia. Przykładowe użycie:

ifelse(x > 0, "Dodatnia", "Ujemna")

Jeśli wartość zmiennej x jest większa od zera, zwróci "Dodatnia", w przeciwnym razie zwróci "Ujemna".

Instrukcja ifelse w R

Instrukcja ifelse w języku R pozwala na wykonywanie różnych działań w zależności od spełnienia warunku. Oto przykłady z jej zaawansowanym użyciem:

Przykład 1: Zamiana wartości

 

x <- 10
ifelse(x > 5, "większe", "mniejsze")

 

Wynik: "większe"

Przykład 2: Wybór wartości

 

x <- 3
ifelse(x == 1, "jeden", ifelse(x == 2, "dwa", "inne"))

Wynik: "inne"

Przykład 3: Obliczenia warunkowe

x <- 10
ifelse(x > 5, x * 2, x / 2)

 

Wynik: 20

Przykład 4: Wybór z listy

 

x <- 2
ifelse(x == 1, "jeden", ifelse(x == 2, "dwa", "trzy"))

Wynik: "dwa"

Przykład 5: Wybór z listy

 

x <- 0
ifelse(x == 1, "jeden", ifelse(x == 2, "dwa", "trzy"))

 

Wynik: "trzy"

Przykłady instrukcji warunkowych: switch()

Instrukcja switch()

Instrukcja switch() pozwala na wybór jednej z wielu możliwych ścieżek wykonywania na podstawie wartości wyrażenia. Przykładowe użycie:

switch(kod, "a" = print("Wybrano opcję a"),
 "b" = print("Wybrano opcję b"),
 "c" = print("Wybrano opcję c"), 
print("Nieprawidłowy kod"))

 

W powyższym przykładzie, jeśli wartość zmiennej kod to "a", "b" lub "c", zostanie wyświetlony odpowiedni komunikat, w przeciwnym razie zostanie wyświetlony komunikat "Nieprawidłowy kod".

Pętla for w R

Pętla for w języku R pozwala na iterację po elementach określonej sekwencji lub kolekcji. Oto przykład użycia pętli for wraz z przykładowymi danymi wejściowymi i wynikami:

Przykład

 

for (i in 1:5) {
    print(i)
}
  • Dane wejściowe: Liczby od 1 do 5.
  • Dane wyjściowe:
    • 1
    • 2
    • 3
    • 4
    • 5

Rozszerzone użycie pętli for (część 1)

Pętla for w języku R może być używana w różnych kontekstach i z różnymi typami danych. Oto kilka przykładów rozszerzonego użycia pętli for:

Przykład 1: Iteracja po wektorze

Kod

wektor <- c("a", "b", "c")
for (element in wektor) {
    print(element)
}

Przykład 2: Iteracja po ramce danych

Kod

ramka_danych <- data.frame(x = 1:3, y = c("a", "b", "c"))
for (wiersz in 1:nrow(ramka_danych)) {
    print(ramka_danych$x[wiersz])
}

Rozszerzone użycie pętli for (część 2)

Oto kontynuacja przykładów rozszerzonego użycia pętli for:

Przykład 3: Iteracja po listach

Kod

lista <- list(a = 1, b = 2, c = 3)
for (element in lista) {
    print(element)
}

Pętla while w R

Pętla while w języku R wykonuje blok kodu tak długo, jak długo podany warunek jest spełniony. Oto przykłady jej użycia:

Przykład 1: Licznik

Kod

i <- 1
while (i <= 5) {
    print(i)
    i <- i + 1
}

Wynik

1
2
3
4
5

Przykład 2: Sumowanie liczb

Kod

suma <- 0
x <- 1
while (x <= 10) {
    suma <- suma + x
    x <- x + 1
}
print(suma)

Wynik

55

Przykład 3: Losowanie liczby

Kod

wylosowana <- sample(1:100, 1)
licznik <- 0
while (wylosowana != 50) {
    wylosowana <- sample(1:100, 1)
    licznik <- licznik + 1
}
print(paste("Liczba prób:", licznik))