這是我的問題。如何在矢量元素中隨機分配數字?在R
假設我有一個矢量:
vec <- c("a","b","c","d","e","f")
,我想我的矢量的元素中隨機地分配6個值,在有時一個元素獲得的東西,有時會(1和6之間)的方式什麼都沒有,但總是值的總和必須總結爲6。因此,在一個實例例如價值將得到分佈是這樣的:
3,0,1,0,2,0
在另一個這樣的:
1,0,1,1,2,1
等等。
有沒有簡單的方法來做到這一點在R?
非常感謝你提前。
Tina。
這是我的問題。如何在矢量元素中隨機分配數字?在R
假設我有一個矢量:
vec <- c("a","b","c","d","e","f")
,我想我的矢量的元素中隨機地分配6個值,在有時一個元素獲得的東西,有時會(1和6之間)的方式什麼都沒有,但總是值的總和必須總結爲6。因此,在一個實例例如價值將得到分佈是這樣的:
3,0,1,0,2,0
在另一個這樣的:
1,0,1,1,2,1
等等。
有沒有簡單的方法來做到這一點在R?
非常感謝你提前。
Tina。
編輯:
這是更好,因爲它幾乎肯定會產生與相對頻率不同分區,你希望:
as.vector(rmultinom(1, size=length(vec), prob=rep(1, length(vec))))
# [1] 4 0 1 0 1 0
的組合對象你在此之後被稱爲"partition"。 分區包中包含許多用於生成不同風格分區的漂亮函數。稍微調整一下parts()
函數的輸出結果,我們就可以得到你正在尋找的東西。
library(partitions)
## Create a function
randPartition <- function(vec) {
pp <- parts(length(vec))
sample(pp[,sample(ncol(pp), 1)])
}
## Try it out a few times
randPartition(vec)
# [1] 1 1 1 1 1 1
randPartition(vec)
# [1] 2 0 0 2 0 2
randPartition(vec)
# [1] 0 0 0 0 0 6
您是否在尋找具有替代品的樣品? –