Cara menghasilkan sampel menggunakan fungsi sample di r


Fungsi sample() di R memungkinkan Anda mengambil sampel acak elemen dari kumpulan data atau vektor, dengan atau tanpa penggantian.

Sintaks dasar dari fungsi sample() adalah:

sampel (x, ukuran, ganti = FALSE , masalah = NULL )

x : kumpulan data atau vektor untuk memilih sampel
ukuran : ukuran sampel
replace : apakah pengambilan sampel harus dilakukan dengan penggantian? (ini SALAH secara default)
prob : vektor bobot probabilitas untuk mendapatkan elemen vektor sampel

Dokumentasi lengkap untuk sample() dapat ditemukan di sini .

Contoh berikut menunjukkan contoh praktis penggunaan sample().

Hasilkan sampel dari vektor

Misalkan kita mempunyai sebuah vektor a yang memuat 10 elemen:

 #define vector a with 10 elements in it
a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

Untuk menghasilkan sampel acak dari 5 elemen vektor a tanpa pengembalian, kita dapat menggunakan sintaks berikut:

 #generate random sample of 5 elements from vector a
sample(a, 5)

#[1] 3 1 4 7 5

Penting untuk dicatat bahwa setiap kali kita membuat sampel acak, kemungkinan besar kita akan mendapatkan kumpulan item yang berbeda setiap saat.

 #generate another random sample of 5 elements from vector a
sample(a, 5)

#[1] 1 8 7 4 2

Jika kita ingin dapat mereplikasi hasil kita dan bekerja dengan sampel yang sama setiap saat, kita dapat menggunakan set.seed() .

 #set.seed(some random number) to ensure that we get the same sample each time
set.seed(122)

#define vector a with 10 elements in it
a <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

#generate random sample of 5 elements from vector a
sample(a, 5)

#[1] 10 9 2 1 4

#generate another random sample of 5 elements from vector a
sample(a, 5)

#[1] 10 9 2 1 4

Kita juga dapat menggunakan argumen replace = TRUE untuk mengambil sampel dengan penggantian. Artinya setiap elemen vektor dapat dipilih untuk muncul dalam sampel lebih dari satu kali.

 #generate random sample of 5 elements from vector a using sampling with replacement
sample(a, 5, replace = TRUE)

#10 10 2 1 6

Hasilkan sampel dari kumpulan data

Penggunaan umum lainnya dari fungsi sample() adalah untuk menghasilkan sampel baris acak dari kumpulan data. Untuk contoh berikut, kita akan membuat sampel acak sebanyak 10 baris dari kumpulan data R bawaan iris , yang memiliki total 150 baris.

 #view first 6 rows of iris dataset
head(iris)

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa

#set seed to ensure that this example is replicable
set.seed(100)

#choose a random vector of 10 elements from all 150 rows in iris dataset
sample_rows <- sample(1:nrow(iris), 10)
sample_rows

#[1] 47 39 82 9 69 71 117 53 78 25

#choose the 10 rows of the iris dataset that match the row numbers above
sample <- iris[sample_rows, ]
sample

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#47 5.1 3.8 1.6 0.2 setosa
#39 4.4 3.0 1.3 0.2 setosa
#82 5.5 2.4 3.7 1.0 versicolor
#9 4.4 2.9 1.4 0.2 setosa
#69 6.2 2.2 4.5 1.5 versicolor
#71 5.9 3.2 4.8 1.8 versicolor
#117 6.5 3.0 5.5 1.8 virginica
#53 6.9 3.1 4.9 1.5 versicolor
#78 6.7 3.0 5.0 1.7 versicolor
#25 4.8 3.4 1.9 0.2 setosa

Perhatikan bahwa jika Anda menyalin dan menempelkan kode di atas ke konsol R Anda sendiri, Anda akan mendapatkan sampel yang sama persis karena kami menggunakan set.seed(100) untuk memastikan kami mendapatkan sampel yang sama setiap saat.

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *