मेरे पास missing_possid नामक एक चर है जिसमें 212 पूर्णांक मान हैं। यह वेरिएबल बास्केटबॉल खेल में प्रत्येक अधिकार का कब्जा आईडी है। मैं gganimate जेनरेट किए गए एनिमेशन बनाने और make_poss_gif फ़ंक्शन का उपयोग करके उसे एक gif में सहेजने का प्रयास कर रहा हूं। मैं इस फ़ंक्शन को लूप के लिए चलाने की कोशिश कर रहा हूं, जैसा कि आप नीचे देख सकते हैं:

# For loop
for (possid in missing_possid) {

  make_poss_gif(possid)

}

प्रत्येक पुनरावृत्ति को लोड होने में 1-2 मिनट लगते हैं, इसलिए मैं इस कार्य को हर दिन निष्पादित करने के लिए क्रोंटैब का उपयोग करना चाहता हूं। मैं जो चाहता हूं वह पहले दिन पहले 10 मान चलाने के लिए क्रॉस्टैब है, दूसरे दिन अगले 10 मान आदि ...

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

शुक्रिया!

0
Howard Baek 10 अक्टूबर 2019, 03:29

1 उत्तर

सबसे बढ़िया उत्तर

मेरा सुझाव है कि आपको अपनी gif फ़ाइलों के लिए एक आउटपुट निर्देशिका निर्दिष्ट करनी चाहिए। हर बार जब आप अपनी आर फाइल शुरू करते हैं तो आपको अपनी आउटपुट डायरेक्टरी के अंदर फाइलों की संख्या की जांच करनी चाहिए। सुनिश्चित करें कि केवल आपकी gif फ़ाइलें ही उस निर्देशिका का हिस्सा हैं।

इसलिए आप इस तरह अनुकूलित कर सकते हैं ...

## check number of files already done
n_files <- length(list.files("Your_output_dir"))
## stop if all files are done
if(length(1:n_files)==length(missing_possid)) {
  print("All files done")
  q()
}
## set which part of missing_possid should be taken
loop_run <- c((n_files+1):((n_files+1)+9)) 
## adapt loop_run if there are less than 10 files left over 
if((length(1:n_files)+10)>length(missing_possid)){
  loop_run <- loop_run[1:c(length(missing_possid)-(length(1:n_files)))]
}
# For loop
for (possid in loop_run) {

  make_poss_gif(missing_possid[possid])

}
0
sebastiann 11 अक्टूबर 2019, 23:09