回答
# Sample from the vector 'a' 1 element.
sample(a, 1)
小心樣品!如果'a'的長度爲1,則是數字(在is.numeric的意義上)並且'a'> = 1,則通過樣本的採樣從'1:a'發生。請注意,當'a'長度變化時,這種便利功能可能會導致不希望的行爲。 – pomber 2014-12-26 03:58:03
閱讀this文章關於R.
http://blog.revolutionanalytics.com/2009/02/how-to-choose-a-random-number-in-r.html
產生隨機數,您可以在這種情況下
sample(a, 1)
第二個屬性是表明你只想得到使用sample
一個隨機數。 若要生成一些範圍runif
之間的數字功能是有用的。
以上的答案是技術上是正確的:
sample(a,1)
但是,如果你想重複這個過程多次,假設你想模仿扔骰子,那麼你就需要添加:
a<-c(1,2,3,4,5,6)
sample(a, 12, replace=TRUE)
希望它有幫助。
使用樣品時要小心!
sample(a, 1)
對你的例子中的矢量很好用,但是當矢量長度爲1時可能會導致不希望的行爲,它將使用矢量1:a
進行採樣。
所以,如果你試圖從變長度的矢量中選擇一個隨機項目,檢查長度爲1的情況!
sampleWithoutSurprises <- function(x) {
if (length(x) <= 1) {
return(x)
} else {
return(sample(x,1))
}
}
他們應該修復這個錯誤。 – skan 2017-12-08 19:54:47
另一種方法是選擇使用runif矢量的項。即
a <- c(1,2,0,7,5)
a[runif(1,1,6)]
假設你想要一個函數,每次運行時都會選擇一個函數(例如在模擬中有用)。所以
a <- c(1,2,0,7,5)
sample_fun_a <- function() sample(a, 1)
runif_fun_a <- function() a[runif(1,1,6)]
microbenchmark::microbenchmark(sample_fun_a(),
runif_fun_a(),
times = 100000L)
單位:納秒
sample_fun_a() - 4665
runif_fun_a() - 1400
runif似乎是在這個例子中更快。
當你的矢量長度爲1時,這種方法不會產生錯誤,而且很簡單。
a[sample(1:length(a),1)]
- 1. Ruby從選擇列表中選擇隨機元素與optgroup
- 2. 選擇隨機JSON元素
- 3. 在條件屬性列表中選擇隨機元素
- 4. 在Python中選擇一個隨機列表元素
- 5. Android的多選列表中選擇上滾動隨機元素
- 6. 選擇從列表中選擇多個隨機元素在Java中
- 7. 如何從列表中隨機選擇元素?
- 8. 隨機從列表中選擇x個元素
- 9. 如何從numpy列表中隨機選擇n個元素?
- 10. C#從列表中選擇隨機元素
- 11. 以概率從列表中選擇隨機元素
- 12. 如何從列表中選擇隨機元素?
- 13. 從Selenium Webdriver的列表中選擇一個隨機元素Java
- 14. 選擇集合中的隨機元素
- 15. 從數組列表中隨機選擇5個元素而不重複元素
- 16. 在隨機位置的列表添加字符元素R中
- 17. 隨機選擇從列表
- 18. Python列表隨機選擇
- 19. 如何從列表中選擇隨機元素排除某些列表?
- 20. 在R中選擇隨機數據點
- 21. 在Matlab中選擇列表中隨機非零元素的索引
- 22. 選擇隨機XML元素 - 不工作
- 23. 數組操作 - 隨機選擇元素
- 24. 選擇一個隨機li元素 - jQuery
- 25. 選擇5個隨機元素
- 26. 從數組的特定元素中選擇隨機元素
- 27. 列表中的隨機元素 - Python
- 28. 隨機分配列表中的元素
- 29. 在另一個列表中插入一個隨機選擇的元素
- 30. 從下拉列表中隨機選擇?
附註:您好像剛剛接觸R,應該只是閱讀一些介紹性材料。 http://stackoverflow.com/questions/420296/what-are-some-good-books-web-resources-and-projects-for-learning-r – Dason 2012-02-22 07:54:51