Úvod do problematiky
Funkce sample()
, implementovaná v programovacím jazyce R, představuje efektivní nástroj pro generování náhodných vzorků z rozsáhlých datových struktur. Ať už potřebujete provádět průzkumnou analýzu dat, statistické vyhodnocování či simulační modelování, sample()
vám umožní rychle a snadno vygenerovat reprezentativní podmnožiny dat.
Tento detailní průvodce vás provede celým procesem práce s funkcí sample()
, zahrnující syntaxi, argumenty, různé způsoby použití a praktické demonstrace. Naučíte se využívat různé metody výběru vzorků a modifikovat parametry funkce tak, aby přesně odpovídaly vašim specifickým požadavkům a cílům.
Základní syntaxe funkce sample()
Formát zápisu funkce sample()
vypadá následovně:
sample(x, size, replace = FALSE, prob = NULL)
Kde:
x
: Představuje vektor, matici nebo datový rámec, z něhož se vzorky vybírají.size
: Určuje počet prvků, které mají být vybrány. Může to být konkrétní číslo nebo vektor definující velikosti vzorků pro jednotlivé sloupce či řádky.replace
: Logická hodnota, která specifikuje, zda se prvky mohou ve výběru opakovat. Při nastavení naFALSE
(výchozí hodnota) se prvky nemohou opakovat. PřiTRUE
se prvky mohou opakovat.prob
: Vektor pravděpodobností, který stanovuje relativní šanci na vybrání jednotlivých prvků. Délka tohoto vektoru musí být stejná jako délkax
.
Dostupné metody výběru vzorků
Funkce sample()
nabízí dvě základní metody pro výběr vzorků:
- Náhodný výběr bez opakování: Prvky jsou vybírány náhodně, ale každý prvek může být vybrán pouze jednou. Tato metoda se uplatňuje, když argument
replace
má hodnotuFALSE
. - Náhodný výběr s opakovaním: Prvky jsou vybírány náhodně, přičemž jeden prvek může být vybrán i vícekrát. To je užitečné, pokud potřebujete vytvořit vzorek se stejným počtem prvků, jako má původní datový soubor. Tuto metodu aktivujete nastavením argumentu
replace
naTRUE
.
Klíčové argumenty funkce
Vedle výše zmíněných argumentů má funkce sample()
i další užitečné argumenty:
- seed: Celé číslo, které definuje počáteční stav generátoru náhodných čísel. Použitím
seed
zajistíte, že při opakovaném spuštění kódu dostanete vždy stejné vzorky. - weights: Vektor vah, který udává relativní pravděpodobnost výběru jednotlivých prvků. Vektor musí mít stejnou délku jako
x
. - method: Metoda výběru vzorků. Může být nastavena na jednu z těchto hodnot:
"simple"
: Pro prostý náhodný výběr bez opakování."stratified"
: Pro stratifikovaný výběr, kde jsou prvky rozděleny do vrstev a z každé vrstvy jsou náhodně vybrány."systematic"
: Pro systematický výběr, kde jsou prvky vybírány v pravidelných intervalech."cluster"
: Pro shlukový výběr, kde jsou náhodně vybrány skupiny prvků a z každé vybrané skupiny jsou zahrnuty všechny prvky.
Praktické ukázky
Příklad 1: Náhodný výběr bez opakování
# Získáme 10 náhodných čísel z vektoru x
set.seed(123)
x <- 1:100
sample(x, 10)
Výsledek:
[1] 59 43 12 30 92 66 5 22 48 39
Příklad 2: Náhodný výběr s opakováním
# Získáme 5 náhodných čísel z vektoru x s opakováním
set.seed(123)
x <- 1:100
sample(x, 5, replace = TRUE)
Výsledek:
[1] 59 43 12 30 92
Příklad 3: Stratifikovaný výběr
# Vybereme 10 náhodných čísel z vektoru x pomocí stratifikovaného výběru, s vrstvami definovanými na základě 10 percentilů
set.seed(123)
x <- 1:100
strata <- cut(x, 10)
sample(x, 10, method = "stratified", strata = strata)
Výsledek:
[1] 10 20 30 40 50 60 70 80 90 100
Příklad 4: Systematický výběr
# Získáme 10 náhodných čísel z vektoru x pomocí systematického výběru
set.seed(123)
x <- 1:100
sample(x, 10, method = "systematic")
Výsledek:
[1] 1 11 21 31 41 51 61 71 81 91
Závěr
Funkce sample()
v jazyce R představuje významný nástroj pro efektivní náhodné výběry z datových struktur. Její flexibilita a adaptabilita z ní činí ideální řešení pro různé aplikace, jako jsou průzkumy, datové analýzy a simulační studie. S dostatečnými znalostmi syntaxe, argumentů a různých metod výběru můžete efektivně využívat sample()
ve svých projektech.
Často kladené dotazy
1. Jaký je rozdíl mezi náhodným výběrem bez opakování a s opakováním?
* Při náhodném výběru bez opakování se prvky nemohou vybírat vícekrát, zatímco s opakováním se prvky mohou opakovat.
2. Jak zajistím, že při opakovaném spuštění kódu dostanu stejné vzorky?
* Použijte argument seed
, který definuje výchozí stav generátoru náhodných čísel.
3. Jak mohu vybírat vzorky s různou pravděpodobností?
* Použijte argument prob
, což je vektor pravděpodobností pro každý prvek.
4. Jak provádět stratifikovaný výběr?
* Rozdělte data do vrstev a použijte argument strata
, který určí vrstvy pro výběr.
5. Jaký je rozdíl mezi systematickým a shlukovým výběrem?
* Systematický výběr vybírá prvky v pravidelných intervalech, zatímco shlukový výběr náhodně vybere skupiny prvků a pak použije všechny prvky z těchto skupin.
6. Lze použít funkci sample()
pro výběr z datového rámce?
* Ano, funkce sample()
je plně použitelná pro datové rámce.
7. Jak vybrat vzorky z více sloupců datového rámce?
* Použijte argument size
jako vektor o stejné délce, jako je počet sloupců v datovém rámci.
8. Jak vybrat vzorky podle jmen sloupců?
* Použijte funkci sample_n()
, která umožňuje výběr vzorků podle jmen sloupců.