R'de replicate() fonksiyonu nasıl kullanılır (örneklerle)


R’deki bir ifadeyi belirli sayıda tekrar tekrar değerlendirmek için replika() işlevini kullanabilirsiniz.

Bu işlev aşağıdaki temel sözdizimini kullanır:

kopya (n, ifade)

Altın:

  • n : Bir ifadenin tekrar tekrar değerlendirilme sayısı.
  • expr : Değerlendirilecek ifade.

Aşağıdaki örnekler bu fonksiyonun pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: Bir değeri birden çok kez çoğaltın

Aşağıdaki kod, tek bir değeri birden çok kez tekrar tekrar değerlendirmek için replika() işlevinin nasıl kullanılacağını gösterir:

 #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

Örnek 2: Bir işlevi birden çok kez çoğaltın

Şimdi bir fonksiyonu tekrar tekrar değerlendirmek istediğimizi varsayalım.

Örneğin, ortalaması 0 ve standart sapması 1 olan normal bir dağılım izleyen bir rastgele değişken için üç değer üretmek amacıyla rnorm() fonksiyonunu kullandığımızı varsayalım:

 #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

replika() işlevini kullanarak, bu rnorm() işlevini birkaç kez tekrar tekrar değerlendirebiliriz.

Örneğin bu fonksiyonu 5 kez değerlendirebiliriz:

 #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

Sonuç 3 satır ve 4 sütundan oluşan bir matristir.

Ya da belki bu fonksiyonu 6 kez değerlendirmek isteriz:

 #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

Sonuç 6 satır ve 3 sütundan oluşan bir matristir.

Verileri simüle etmek için replika() işlevini kullanın

replika() işlevi özellikle simülasyonları çalıştırmak için kullanışlıdır.

Örneğin, her biri normal dağılıma uyan n = 10 boyutunda 5 örnek oluşturmak istediğimizi varsayalım.

5 farklı örnek üretmek için replika() işlevini kullanabiliriz ve daha sonra her örneğin ortalama değerini bulmak için colMeans() işlevini kullanabiliriz:

 #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

Sonuçtan şunu görebiliriz:

  • İlk örneğin ortalaması 0,1322’dir .
  • İkinci örneğin ortalaması 0,2488’dir .
  • Üçüncü örneğin ortalaması -0,1337’dir .

Ve benzeri.

Ek kaynaklar

R’de belirli sütunlar nasıl seçilir
R’deki veri çerçevesinden sütunlar nasıl kaldırılır
R’deki duruma bağlı olarak veri çerçevesinden satırlar nasıl kaldırılır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir