आर में एक्स सेकंड के लिए निष्पादन, नींद, प्रतीक्षा कैसे करें?


129

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

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


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

Google "आर स्लीप" इसे नहीं मिला, इसे ठीक करने की कोशिश की।
टीएमएस

जवाबों:


145

देख लो 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 सेकंड के परीक्षण के लिए रुकने के लिए <- function (x) {p1 <- proc.time () Sys.sleep (x) proc.time () - p1 # cpu का उपयोग नगण्य होना चाहिए} testit (3.7)
Dan Goldstein

21
वैसे, help.search ("स्लीप") ने आपको उस तरह से निर्देशित किया होगा।
डिर्क एडल्डबुलेटेल

तुम सिर्फ क्यों नहीं कर सकते Sys.sleep(10)?
लीओ लेपोल्ड हर्ट्ज़ o

मुझे लगता है कि आप मेरे उदाहरण और चित्रण को गलत समझते हैं जो मापता भी है और इसलिए बिल्कुल यही प्रदर्शित करता है,
डिर्क एडडेलबेटेल

13

यदि CPU उपयोग बहुत अधिक है, तो 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
}

Sys.sleep () फ़ंक्शन मेरे उपयोग के मामले में काम नहीं करता था, और यह एकमात्र तरीका था जिससे मैं आवश्यक देरी का उत्पादन करने में सक्षम था।
Pake
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.