2009-07-23 21 views
94

आप एक निर्दिष्ट संख्या के सेकंड या मिलीसेकंड के लिए आर स्क्रिप्ट को कैसे रोकते हैं? कई भाषाओं में, sleep फ़ंक्शन है, लेकिन ?sleep डेटा सेट का संदर्भ देता है। और ?pause और ?wait मौजूद नहीं है।निष्पादन रोकें, सोएं, आर में एक्स सेकंड के लिए प्रतीक्षा करें?

उद्देश्य उद्देश्य स्वयं-समय वाले एनिमेशन के लिए है। वांछित समाधान उपयोगकर्ता इनपुट पूछे बिना काम करता है।

+3

@Ricardo, हम यहोशू और अन्य लोगों के साथ इस पर एक पूरा चर्चा की थी और हम अंत में यह सहमति हुई कि दोनों "ठहराव" और "नींद" शीर्षक में होना चाहिए। अंतिम शीर्षक एक समझौता का परिणाम था। और आप बस किसी भी तर्क के बिना कदम उठाते हैं और आपका तर्क बेहतर क्यों है * पिछले संशोधन के लिए रोलबैक? शीर्षक में "नींद" जोड़ना सवाल को ढूंढना बहुत आसान बनाता है, क्योंकि "नींद" कई भाषाओं में है और इसकी संभावना अधिक है कि उपयोगकर्ता इसकी खोज करेंगे। वर्तमान शीर्षक में बहुत सारे शब्द बालास्ट हैं और महत्वपूर्ण कीवर्ड गुम है। * आपके रोलबैक का उद्देश्य क्या था? * – TMS

+0

Google "आर नींद" इसे नहीं मिला, इसे ठीक करने का प्रयास किया। – TMS

उत्तर

112

help(Sys.sleep) देखें।

उदाहरण के लिए, ?Sys.sleep

testit <- function(x) 
{ 
    p1 <- proc.time() 
    Sys.sleep(x) 
    proc.time() - p1 # The cpu usage should be negligible 
} 
testit(3.7) 

पैदावार

> testit(3.7) 
    user system elapsed 
    0.000 0.000 3.704 
+1

यहां उस पृष्ठ से उदाहरण कोड है। 3.7 सेकंड के लिए रोकने के लिए testit <- समारोह (एक्स) testit { p1 <- - proc.time() Sys.sleep (एक्स) proc.time() p1 # cpu उपयोग नगण्य होना चाहिए} (3.7) –

+19

वैसे, help.search ("नींद") आपको इस तरह निर्देशित करता। –

+0

आप केवल 'Sys.sleep (10) 'क्यों नहीं कर सकते? –

0

मैं तुम्हारे लिए एक उदाहरण बना से, मुझे आशा है कि यह उपयोगी

# 1st let make a graph with limits xlim =0:10 e ylim=0:10. 
plot(0:10,0:10, type="n") 

# let use the 'for' to put texts on graph: 
for(i in 1:10) 
    text(i,i, paste("**", i)) 

## let retard steps 1 sec 

plot(0:10,0:10, type="n") 
for(i in 1:9){ 
    text(i,i, paste("step", i)) 
    Sys.sleep(1) 
} 

# please wait some seconds....... 
# now faster 
plot(0:10,0:10, type="n") 
for(k in 1:9){ 
    text(k,k, paste("step", k)) 
    Sys.sleep(.1) ## retard steps 0,1 sec 
} 
+0

कृपया, दोस्तों मुझे आपकी सहायता चाहिए: मैं फ़ंक्शन के साजिश बिंदु को निष्पादित करने के लिए Sys.sleep का उपयोग करने का प्रयास कर रहा हूं और परिणाम है तेजी से साजिश और साजिश के बाद ही Sys.sleep काउंटर शुरू होता है जहां मैं गलत जा रहा हूँ? –

+0

ऑप्स .... एक função é एस्टा: –

+0

n = 1 Cn = 6.45 टी = 5 x <-seq (0, 5) एक्स के लिए (0 में मैं: 5) { wxt <- फ़ंक्शन (एक्स) {राउंड (सीएन * पाप (एन * पीआई * एक्स/5) * एक्सपी (- (पीआई^2 * एन^2/25) * टी), अंक = 2) } Sys.sleep (1) साजिश (एक्स, wxt (x), col = "blue") } # मुझे बिंदु –

1

Sys.sleep है() नहीं होगा अगर सीपीयू उपयोग बहुत अधिक है तो काम करें; जैसा कि अन्य महत्वपूर्ण उच्च प्राथमिकता प्रक्रियाओं में चल रहा है (समानांतर में)।

यह कोड मेरे लिए काम किया। यहां मैं 2.5 सेकंड अंतराल पर 1 से 1000 प्रिंट कर रहा हूं।

for (i in 1:1000) 
{ 
    print(i) 
    date_time<-Sys.time() 
    while((as.numeric(Sys.time()) - as.numeric(date_time))<2.5){} #dummy while loop 
} 
संबंधित मुद्दे