2014-11-21 40 views
2

我正在嘗試使用R來模擬交易數據庫中的交易金額,具體來說,範圍爲$500<=x<$1000。隨着時間的推移,這個範圍內的值有以下頻率(我只顯示前17)。給出如下的頻率列表,是否有任何簡單的方法來模擬隨機數據集?非常感謝!爲每個可能的值模擬具有固定概率的數據集

Amount Frequency 
500 52% 
600 8% 
750 3% 
700 3% 
800 2% 
900 2% 
550 2% 
850 1% 
650 1% 
525 1% 
510 1% 
675 1% 
625 1% 
757 1% 
680 1% 
950 1% 
+0

你只頻率之和爲81% – 2014-11-21 17:19:42

+2

'樣品(金額,N,更換= TRUE,概率=頻率/ 100)' – Roland 2014-11-21 17:21:42

+0

謝謝你,理查德。你是對的,但這只是前17個值。完整的列表超過300,所以我不想在這裏粘貼。任何任意的分配概率都可以。 – 2014-11-21 17:22:48

回答

2

使用sample

# I modified your example for the sum of frequencies to be 1 
df <- data.frame(
    amount = c(500,600,750,700,800,900,550,850,650,525,510,675,625,757,680,950), 
    frequency = c(52,18,6,6,5,2,2,1,1,1,1,1,1,1,1,1)/100 
) 
sample(df$amount, size=5, replace=T, prob=df$frequency) 
## [1] 500 525 500 500 800 
+0

完美。我很感激,謝謝。 – 2014-11-21 17:29:36