2011-03-28 93 views

回答

3

沒有

我可以在3毫秒10,000個樣本在我的筆記本電腦更換。沒有更換,我可以在5毫秒內得到它們。從500個分佈中多次繪製,需要66 ms。你需要多快?

10

您可以通過消除基地::樣本函數調用得到一個加速的一點點:

> x<- rnorm(10000) 
> system.time(for(i in 1:100000) x[.Internal(sample(10000L, 10L, FALSE, NULL))]) 
    user system elapsed 
    2.873 0.017 2.851 
> system.time(for(i in 1:100000) sample(x,10)) 
    user system elapsed 
    3.420 0.025 3.258 

根據您的問題,可能還有其他更加巧妙的方法來加速您的代碼。想想辦法來取代許多小電話,以一個大的樣本。

+1

+1表示問題可能是很多小調用'sample'。 – Aniko 2011-03-28 14:48:03