- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to generate random samples from different statistical distributions using parameters as a list in R?
To generate random samples from statistical distributions, we use functions like rnorm, rbinom, rexp, rpois for the corresponding distribution based on their names. Using these functions, we can pass their parameters as an argument inside the function. But if we have the parameters saved as a list then generation of random sample is not straight forward, for this we need to use do.call function.
Examples
parameters1<-list(mean=1,sd=0.5) do.call(rnorm,c(list(n=50),parameters1))
Output
[1] 0.7544844 -0.1545844 1.5028693 0.6453996 0.6559957 1.5127857 [7] 0.8576135 0.3896411 1.0906517 0.9305543 1.0028821 1.1926402 [13] 0.8146700 1.3221883 0.8897567 1.1658910 1.5484195 1.2175907 [19] 0.8370342 1.5744038 1.4967519 1.2741985 1.1193659 0.6860470 [25] 1.6803262 0.6998702 2.0936665 1.7663053 0.8821498 0.4867895 [31] 0.6447967 1.1284419 0.8766541 0.8262287 0.5241907 0.9774861 [37] 0.6075478 0.1660290 0.8098867 1.4594983 0.7123265 1.3039822 [43] 0.1910586 0.9722190 1.2597036 1.1505767 1.0528381 0.6796470 [49] 0.5751478 0.4879356
Example
parameters2 <-list(size=20,p=0.5) do.call(rbinom,c(list(n=50),parameters2))
Output
[1] 10 7 10 8 10 9 15 9 8 11 8 14 10 8 11 15 11 10 9 12 8 8 13 9 9 [26] 12 8 5 9 10 10 9 12 10 10 14 12 8 9 14 10 12 9 12 10 13 8 9 7 8
Example
parameters3 <-list(lambda=5) do.call(rpois,c(list(n=50),parameters3))
Output
[1] 10 4 6 7 2 3 4 2 2 11 10 3 8 5 4 5 6 2 4 6 4 7 3 5 4 [26] 3 9 4 5 1 5 6 5 4 8 6 4 4 3 7 9 5 4 12 3 5 2 5 2 3
Example
parameters4 <-list(min=2,max=10) do.call(runif,c(list(n=50),parameters4))
Output
[1] 4.263943 6.670979 7.853661 3.324167 8.931742 7.668593 8.083196 3.176673 [9] 4.864456 7.386660 6.190581 4.798414 3.924246 2.465534 3.892958 9.120623 [17] 8.494619 7.980131 3.239294 2.997937 9.797806 5.489040 5.712133 3.322385 [25] 6.679492 4.166224 3.840775 7.529663 4.262819 8.483185 2.751333 8.576241 [33] 5.419426 8.047098 7.299084 5.556219 7.017169 2.003723 3.737948 7.638978 [41] 3.721332 8.511470 4.462111 7.501941 9.461449 2.926237 3.021646 7.425791 [49] 5.431589 8.675208
Example
parameters5 <-list(rate=1) do.call(rexp,c(list(n=50),parameters5))
Output
[1] 0.048859236 2.470484229 0.034337427 0.573854705 1.107571484 1.158912960 [7] 0.841547703 2.359008139 1.154964259 1.810404878 0.072107441 0.007897424 [13] 0.236585886 2.399940448 0.274251057 1.760241609 0.736572850 0.630162990 [19] 0.897717278 1.151831293 0.941598348 2.968427598 0.037609847 0.358026831 [25] 0.017693759 0.904697679 0.309862433 0.632956278 3.036563054 0.478063371 [31] 1.088025155 0.658501647 0.071082783 0.791328635 0.601896424 2.545756658 [37] 0.664215548 0.800567470 0.506220199 0.056468316 0.604476434 1.233841599 [43] 1.003536777 2.025803985 0.138765325 0.367169829 0.331470285 0.059784917 [49] 0.019685799 3.500006681
Advertisements
To Continue Learning Please Login
Login with Google