R Cheat Sheet: ściąga z języka R
Ostatnia aktualizacja
Hello World i przypisanie
Idiomatycznym operatorem przypisania w R jest <- (operator = też działa).
| Operacja | Składnia |
|---|---|
| Wypisanie wartości | print("Hello, World!") |
| Automatyczne wypisanie (konsola) | "Hello, World!" |
| Połączenie i wypisanie | cat("Hi", name, "\n") |
| Przypisanie (idiomatyczne) | x <- 5 |
| Przypisanie (też poprawne) | x = 5 |
| Przypisanie w prawo | 5 -> x |
| Komentarz | # this is a comment |
| Uruchomienie skryptu | Rscript app.R |
Typy danych i wektory
Wektor to podstawowa struktura danych w R; nawet pojedyncza wartość jest wektorem o długości 1.
| Operacja | Składnia |
|---|---|
| Wektor liczbowy | v <- c(1, 2, 3) |
| Wektor znakowy | s <- c("a", "b") |
| Wektor logiczny | b <- c(TRUE, FALSE) |
| Ciąg liczb całkowitych | 1:10 |
| Ciąg z krokiem | seq(0, 1, by = 0.1) |
| Powtarzanie wartości | rep(0, times = 5) |
| Typy podstawowe | numeric, character, logical, integer, complex |
| Sprawdzenie / wymuszenie typu | class(x), as.numeric("42") |
Operacje na wektorach
Operacje są zwektoryzowane i działają element po elemencie; indeksowanie zaczyna się od 1.
| Operacja | Składnia |
|---|---|
| Dostęp do elementu (od 1) | v[1] |
| Wycinek zakresu | v[2:4] |
| Filtrowanie logiczne | v[v > 2] |
| Pominięcie elementu | v[-1] |
| Działania element po elemencie | v * 2, v1 + v2 |
| Długość | length(v) |
| Popularne funkcje agregujące | sum(v), mean(v), max(v) |
| Sortowanie / odwrócenie | sort(v), rev(v) |
| Wektor nazwany | c(a = 1, b = 2) |
Ramki danych (data frames)
Ramka danych to tabela kolumn, z których każda jest wektorem tej samej długości.
| Operacja | Składnia |
|---|---|
| Utworzenie ramki danych | df <- data.frame(name = c("Ada"), age = c(30)) |
| Pierwsze / ostatnie wiersze | head(df), tail(df) |
| Wymiary | nrow(df), ncol(df), dim(df) |
| Nazwy kolumn | names(df), colnames(df) |
| Wybór kolumny | df$age lub df[["age"]] |
| Wybór wierszy / kolumn | df[1, ], df[, "age"] |
| Filtrowanie wierszy | df[df$age > 18, ] |
| Dodanie kolumny | df$adult <- df$age >= 18 |
| Statystyki podsumowujące | summary(df) |
| Przegląd struktury | str(df) |
Czynniki i listy
Czynniki przechowują dane kategoryczne; listy zawierają elementy różnych typów.
| Operacja | Składnia |
|---|---|
| Utworzenie czynnika | f <- factor(c("low", "high")) |
| Poziomy czynnika | levels(f) |
| Czynnik uporządkowany | factor(x, ordered = TRUE) |
| Liczność według poziomu | table(f) |
| Utworzenie listy | l <- list(name = "Ada", scores = c(1, 2)) |
| Dostęp po nazwie | l$name lub l[["name"]] |
| Dostęp po pozycji | l[[1]] |
| Podlista (zachowuje listę) | l[1] |
| Długość / nazwy | length(l), names(l) |
Instrukcje sterujące
Warunki zapisuje się w nawiasach okrągłych, a bloki w klamrowych.
| Operacja | Składnia |
|---|---|
| If / else if / else | if (x > 0) { ... } else if (x < 0) { ... } else { ... } |
| Zwektoryzowane if-else | ifelse(v > 0, "pos", "neg") |
| Pętla for | for (i in 1:10) { ... } |
| Pętla for po wektorze | for (x in v) { ... } |
| Pętla while | while (x < 100) { ... } |
| Repeat z break | repeat { if (done) break } |
| Switch | switch(key, a = 1, b = 2) |
| Operatory logiczne | &&, ||, ! (skalarne); &, | (wektorowe) |
Funkcje
Funkcje są obiektami pierwszej klasy; zwracana jest ostatnia obliczona wartość.
| Operacja | Składnia |
|---|---|
| Definicja funkcji | add <- function(a, b) { a + b } |
| Jawne zwrócenie wartości | return(a + b) |
| Argument domyślny | greet <- function(name = "World") { ... } |
| Zmienna liczba argumentów | f <- function(...) { sum(...) } |
| Wywołanie z nazwanymi argumentami | box(w = 2, h = 3) |
| Funkcja anonimowa | function(x) x * 2 |
| Funkcja anonimowa (skrót) | \(x) x * 2 |
| Przekazanie do funkcji wyższego rzędu | sapply(1:3, function(x) x^2) |
Rodzina apply
Stosowanie funkcji do danych bez pisania jawnych pętli.
| Funkcja | Co robi |
|---|---|
apply(m, 1, sum) | Stosuje funkcję do wierszy (1) lub kolumn (2) macierzy |
sapply(v, f) | Stosuje funkcję do wektora, upraszcza wynik do wektora/macierzy |
lapply(v, f) | Stosuje funkcję do wektora, zawsze zwraca listę |
vapply(v, f, numeric(1)) | Jak sapply, ale ze sprawdzanym typem wyniku |
mapply(f, a, b) | Stosuje funkcję równolegle do kilku wektorów |
tapply(x, group, mean) | Stosuje funkcję w każdej grupie |
Map(f, a, b) | Apply po wielu argumentach, zwraca listę |
Reduce(+, v) | Redukuje wektor funkcją dwuargumentową |
Popularne funkcje do obróbki danych i statystyki
Często używane funkcje bazowe do podsumowywania i przekształcania danych.
| Funkcja | Co robi |
|---|---|
mean(v) / median(v) | Średnia / mediana |
sd(v) / var(v) | Odchylenie standardowe / wariancja |
min(v) / max(v) / range(v) | Najmniejsza / największa / obie |
quantile(v) | Kwantyle (np. kwartyle) |
table(x) | Liczebność wartości |
unique(v) / duplicated(v) | Unikalne wartości / flagi duplikatów |
is.na(v) / na.omit(df) | Wyszukanie / usunięcie braków danych |
aggregate(y ~ g, df, mean) | Podsumowanie y według grupy g |
order(v) | Kolejność indeksów do sortowania |
cor(x, y) | Korelacja dwóch wektorów |
Najczęściej używana składnia języka R na jednej stronie. Ten R cheat sheet to szybka ściąga z rdzenia języka: przypisanie i typy danych, wektory i operacje na nich, ramki danych, czynniki i listy, instrukcje sterujące, funkcje oraz rodzina apply używana w analizie danych rstats.
Wszystko tutaj to bazowy R, który działa na standardowej instalacji, bez dodatkowych pakietów. Skopiuj to, czego potrzebujesz, albo uruchom każdy fragment w edytorze online R, bez żadnej konfiguracji.
R cheat sheet: FAQ
Czy ten R cheat sheet jest darmowy?
Czy wektory w R naprawdę są indeksowane od 1?
v[1] zwraca pierwszy element, a v[length(v)] ostatni. Ujemne indeksy mają specjalne znaczenie: v[-1] usuwa pierwszy element, zamiast liczyć od końca. Ta konwencja obowiązuje tak samo w wektorach, listach i ramkach danych.Czym jest ramka danych w R?
df[rows, columns], kolumnę wybierasz przez df$name, a strukturę sprawdzasz przez str(df) lub summary(df).