दिलचस्प पोस्ट
Google मानचित्र जावास्क्रिप्ट जीओकोडर से मैं एक अक्षांश और अक्षांश कैसे वापस करूँ? बिल्डर पैटर्न कैसे सुधारें? एसएसपी सर्वर पर एसएसपी सर्वर में कनेक्शन स्ट्रिंग को सेट करना जावा एक नया ObjectInputStream ब्लॉक बनाना सी + विन एपीआई में प्रोग्रामिंग: विंडोज 7 नियंत्रण के लिए कैसे देखो? Python 2.7.3 के साथ 64 बिट विंडोज 7 पर नुकीले स्थापित C ++ में INI फ़ाइल को पार्स करने का सबसे आसान तरीका क्या है? Jfrom को jscrollpane जोड़ने के लिए कैसे? लूप और लेक्सिकल वातावरण में क्लोज़र जावास्क्रिप्ट मेमोरी रिसाव को ट्रैक करने के लिए उपकरण सामग्री प्रकार 'अनुप्रयोग / x-www-form-urlencoded; charset = UTF-8' @ अनुरोध के लिए समर्थित नहीं MultiValueMap एंड्रॉइड – SPAN_EXCLUSIVE_EXCLUSIVE स्पैन की शून्य लंबाई नहीं हो सकती जब एक बटन को आईओएस क्लिक किया जाता है तो मैं फोन सेटिंग कैसे खोल सकता हूँ ओपनजीएल शेडर के साथ गाऊसी फिल्टर Google App Engine में फ़ाइलें अपलोड करें

कुशलता से दो तिथियों के बीच समय और तिथियों का यादृच्छिक नमूना उत्पन्न करता है

मैंने दो निर्दिष्ट दिनों के बीच एक तिथि / समय यादृच्छिक रूप से चुनने के लिए एक (काफी सरल) फ़ंक्शन लिखा है

# set start and end dates to sample between day.start <- "2012/01/01" day.end <- "2012/12/31" # define a random date/time selection function rand.day.time <- function(day.start,day.end,size) { dayseq <- seq.Date(as.Date(day.start),as.Date(day.end),by="day") dayselect <- sample(dayseq,size,replace=TRUE) hourselect <- sample(1:24,size,replace=TRUE) minselect <- sample(0:59,size,replace=TRUE) as.POSIXlt(paste(dayselect, hourselect,":",minselect,sep="") ) } 

जिसके परिणामस्वरूप:

 > rand.day.time(day.start,day.end,size=3) [1] "2012-02-07 21:42:00" "2012-09-02 07:27:00" "2012-06-15 01:13:00" 

लेकिन ऐसा लगता है कि नमूना आकार की रैंप अप के रूप में काफी धीमा हो रही है

 # some benchmarking > system.time(rand.day.time(day.start,day.end,size=100000)) user system elapsed 4.68 0.03 4.70 > system.time(rand.day.time(day.start,day.end,size=200000)) user system elapsed 9.42 0.06 9.49 

क्या किसी को यह सुझाव देने में सक्षम है कि इसे और अधिक कुशल तरीके से कैसे करना है?

Solutions Collecting From Web of "कुशलता से दो तिथियों के बीच समय और तिथियों का यादृच्छिक नमूना उत्पन्न करता है"

आह, एक अन्य तारीख / समय समस्या हम फ्लोट्स में काम करने के लिए कम कर सकते हैं 🙂

इस फ़ंक्शन को आज़माएं

 R> latemail <- function(N, st="2012/01/01", et="2012/12/31") { + st <- as.POSIXct(as.Date(st)) + et <- as.POSIXct(as.Date(et)) + dt <- as.numeric(difftime(et,st,unit="sec")) + ev <- sort(runif(N, 0, dt)) + rt <- st + ev + } R> 

हम सेकंड में difftime गणना करते हैं, और फिर "केवल" परिणाम पर छांटने के लिए, इसके ऊपर वर्दी difftime । इसे प्रारंभ करने के लिए जोड़ें और आप कर रहे हैं:

 R> set.seed(42); print(latemail(5)) ## round to date, or hour, or ... [1] "2012-04-14 05:34:56.369022 CDT" "2012-08-22 00:41:26.683809 CDT" [3] "2012-10-29 21:43:16.335659 CDT" "2012-11-29 15:42:03.387701 CST" [5] "2012-12-07 18:46:50.233761 CST" R> system.time(latemail(100000)) user system elapsed 0.024 0.000 0.021 R> system.time(latemail(200000)) user system elapsed 0.044 0.000 0.045 R> system.time(latemail(10000000)) ## a few more than in your example :) user system elapsed 3.240 0.172 3.428 R> 

ऐसा कुछ भी काम करेगा यादृच्छिक डेटा फ्रेम के लिए क्षमा करें, मैंने इसे फेंक दिया जिससे आप एक भूखंड देख सकें।

 data=as.data.frame(list(ID=1:10, variable=rnorm(10,50,10))) #This function will generate a uniform sample of dates from #within a designated start and end date: rand.date=function(start.day,end.day,data){ size=dim(data)[1] days=seq.Date(as.Date(start.day),as.Date(end.day),by="day") pick.day=runif(size,1,length(days)) date=days[pick.day] } #This will create a new column within your data frame called date: data$date=rand.date("2014-01-01","2014-02-28",data) #and this will order your data frame by date: data=data[order(data$date),] #Finally, you can see how the data looks plot(data$date,data$variable,type="b")