2011-09-25 13 views
7

मेरे पास उन तिथियों की एक सूची है जिनसे मैं नमूना देना चाहता हूं। कभी-कभी नमूना स्थान केवल एक ही तारीख होगी उदा। नमूना ("10/11/11", 1)। तारीखों को क्रोन ऑब्जेक्ट्स के रूप में संग्रहीत किया जाता है, इसलिए जब मेरे नमूना स्थान में केवल एक ही तारीख होती है (और तब तभी) नमूना इसे वेक्टर (1: दिनांक) के रूप में मानता है। नमूना के लिए प्रलेखन इस बिंदु को इंगित करता है:नमूना स्थान आकार के साथ नमूना() का उपयोग = 1

If ‘x’ has length 1, is numeric (in the sense of ‘is.numeric’) and 
‘x >= 1’, sampling _via_ ‘sample’ takes place from ‘1:x’. _Note_ 
that this convenience feature may lead to undesired behaviour when 
‘x’ is of varying length in calls such as ‘sample(x)’. See the 
examples. 

लेकिन मुझे इस सुविधा को अक्षम करने का कोई तरीका नहीं दिखाई दिया। क्या वर्कअराउंड या लम्बे समय की वस्तुओं को संख्यात्मक के रूप में इलाज करने से रोकने का कोई तरीका है?

उत्तर

12

sample प्रलेखन इस सिफारिश की गई है:

resample <- function(x, ...) x[sample.int(length(x), ...)] 
+0

हमेशा बुद्धिमान विशेषज्ञों का पालन करें। –

+0

धन्यवाद। मेरे लिए जोड़ा गया। प्रोफाइल। –

+0

बहुत अच्छा। और 'sample.int' का आपका उपयोग वास्तव में एक मनमानी लंबाई> 1 वेक्टर पर 'नमूना' से थोड़ा तेज़ बनाता है –

4

मैं इसे if कथन में लपेटूंगा, या इसे किसी अन्य फ़ंक्शन के अंदर लपेटूंगा। उदाहरण के लिए:

mysample <- 
function(x, size, replace=FALSE, prob=NULL) 
{ 
    if(length(x)==1) 
    return(rep(x, size)) 

    sample(x, size, replace, prob) 
} 
संबंधित मुद्दे