Cara menggunakan fungsi replikasi() di r (dengan contoh)


Anda dapat menggunakan fungsi replika() untuk berulang kali mengevaluasi ekspresi di R beberapa kali.

Fungsi ini menggunakan sintaks dasar berikut:

mereplikasi (n, expr)

Emas:

  • n : Berapa kali untuk mengevaluasi suatu ekspresi berulang kali.
  • expr : Ekspresi untuk mengevaluasi.

Contoh berikut menunjukkan cara menggunakan fungsi ini dalam praktiknya.

Contoh 1: Replikasi suatu nilai beberapa kali

Kode berikut menunjukkan cara menggunakan fungsi replica() untuk mengevaluasi nilai tunggal secara berulang beberapa kali:

 #replicate the value 3 exactly 10 times
replicate(n= 10,3 )

[1] 3 3 3 3 3 3 3 3 3 3

#replicate the letter 'A' exactly 7 times
replicate(n= 7 , ' A ')

[1] “A” “A” “A” “A” “A” “A” “A”

#replicate FALSE exactly 5 times
replicate(n= 5 , FALSE )

[1] FALSE FALSE FALSE FALSE FALSE

Contoh 2: Replikasi suatu fungsi beberapa kali

Sekarang misalkan kita ingin mengevaluasi suatu fungsi berulang kali.

Misalnya, kita menggunakan fungsi rnorm() untuk menghasilkan tiga nilai untuk variabel acak yang mengikuti distribusi normal dengan mean 0 dan standar deviasi 1:

 #make this example reproducible
set. seeds (1)

#generate 3 values that follow normal distribution
rnorm(3, mean= 0 , sd= 1 ) 

[1] -0.6264538 0.1836433 -0.8356286

Dengan menggunakan fungsi replica() , kita dapat mengevaluasi fungsi rnorm() ini berulang kali.

Misalnya, kita dapat mengevaluasi fungsi ini sebanyak 5 kali:

 #make this example reproducible
set. seeds (1)

#generate 3 values that follow normal distribution (replicate this 4 times)
replicate(n= 4 , rnorm(3, mean= 0 , sd= 1 ))

           [,1] [,2] [,3] [,4]
[1,] 1.5952808 0.4874291 -0.3053884 -0.6212406
[2,] 0.3295078 0.7383247 1.5117812 -2.2146999
[3,] -0.8204684 0.5757814 0.3898432 1.1249309

Hasilnya adalah matriks 3 baris dan 4 kolom.

Atau mungkin kita ingin mengevaluasi fungsi ini sebanyak 6 kali:

 #make this example reproducible
set. seeds (1)

#generate 3 values that follow normal distribution (replicate this 6 times)
replicate(n= 6 , rnorm(3, mean= 0 , sd= 1 ))

           [,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1.5952808 0.4874291 -0.3053884 -0.6212406 -0.04493361 0.8212212
[2,] 0.3295078 0.7383247 1.5117812 -2.2146999 -0.01619026 0.5939013
[3,] -0.8204684 0.5757814 0.3898432 1.1249309 0.94383621 0.9189774

Hasilnya adalah matriks 6 baris dan 3 kolom.

Gunakan replika() untuk menyimulasikan data

Fungsi replica() sangat berguna untuk menjalankan simulasi.

Misalnya kita ingin menghasilkan 5 sampel berukuran n = 10 yang masing-masing mengikuti distribusi normal.

Kita dapat menggunakan fungsi replica() untuk menghasilkan 5 sampel berbeda dan kemudian kita dapat menggunakan fungsi colMeans() untuk mencari nilai rata-rata setiap sampel:

 #make this example reproducible
set. seeds (1)

#create 5 samples each of size n=10
data <- replicate(n=5, rnorm(10, mean= 0 , sd= 1 ))

#view samples
data

            [,1] [,2] [,3] [,4] [,5]
 [1,] -0.6264538 1.51178117 0.91897737 1.35867955 -0.1645236
 [2,] 0.1836433 0.38984324 0.78213630 -0.10278773 -0.2533617
 [3,] -0.8356286 -0.62124058 0.07456498 0.38767161 0.6969634
 [4,] 1.5952808 -2.21469989 -1.98935170 -0.05380504 0.5566632
 [5,] 0.3295078 1.12493092 0.61982575 -1.37705956 -0.6887557
 [6,] -0.8204684 -0.04493361 -0.05612874 -0.41499456 -0.7074952
 [7,] 0.4874291 -0.01619026 -0.15579551 -0.39428995 0.3645820
 [8,] 0.7383247 0.94383621 -1.47075238 -0.05931340 0.7685329
 [9,] 0.5757814 0.82122120 -0.47815006 1.10002537 -0.1123462
[10,] -0.3053884 0.59390132 0.41794156 0.76317575 0.8811077

#calculate mean of each sample
colMeans(data)

[1] 0.1322028 0.2488450 -0.1336732 0.1207302 0.1341367

Dari hasilnya kita dapat melihat:

  • Rata-rata sampel pertama adalah 0,1322 .
  • Rata-rata sampel kedua adalah 0,2488 .
  • Rata-rata sampel ketiga adalah -0,1337 .

Dan seterusnya.

Sumber daya tambahan

Cara memilih kolom tertentu di R
Cara menghapus kolom dari bingkai data di R
Cara menghapus baris dari bingkai data berdasarkan kondisi di R

Tambahkan komentar

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