मुझे लगता है कि मुझे इसे एक पूर्ण उत्तर देने की आवश्यकता है क्योंकि मुझे ट्रैक करने के लिए कठिन टिप्पणियां मिलती हैं और मैंने पहले ही इस पर एक टिप्पणी खो दी है ... nullglob का एक उदाहरण है जो परिवार के कार्यों को अधिक लागू करता है अन्य उदाहरणों से बेहतर है। जब कोई कार्य करता है कि यह बहुत धीमा है तो वह जगह है जहां सभी गति का उपभोग होता है और आपको लूपिंग पर भिन्नताओं में अंतर नहीं मिलेगा। लेकिन जब आप कार्य को तुच्छ बनाते हैं तो आप देख सकते हैं कि लूपिंग चीजों को कितना प्रभावित करती है।
मैं यह भी जोड़ना चाहता हूं कि अन्य उदाहरणों में लागू परिवार के कुछ सदस्यों में दिलचस्प प्रदर्शन गुण हैं। सबसे पहले मैं अपनी मशीन पर नलग्लोब के सापेक्ष परिणामों की प्रतिकृतियां दिखाऊंगा।
n <- 1e6
system.time(for(i in 1:n) sinI[i] <- sin(i))
user system elapsed
5.721 0.028 5.712
lapply runs much faster for the same result
system.time(sinI <- lapply(1:n,sin))
user system elapsed
1.353 0.012 1.361
वह भी बहुत धीमी गति से पाया। यहां कुछ ऐसे हैं जिन्हें परीक्षण नहीं किया गया था।
सादा पुराने डेटा के एक मैट्रिक्स संस्करण पर लागू ...
mat <- matrix(1:n,ncol =1),1,sin)
system.time(sinI <- apply(mat,1,sin))
user system elapsed
8.478 0.116 8.531
तो, लागू() आदेश ही पाश के लिए की तुलना में काफी धीमी है। (पाश के लिए पर्याप्त रूप से धीमा नहीं है, तो मैं पाप (चटाई [मैं, 1])।
एक और एक है कि अन्य पदों में परीक्षण किया जाना प्रतीत नहीं tapply है का उपयोग करें।
system.time(sinI <- tapply(1:n, 1:n, sin))
user system elapsed
12.908 0.266 13.589
बेशक
, कोई भी इस तरह से कभी भी इस तरह की गति का उपयोग नहीं करेगा और इसकी उपयोगिता ज्यादातर मामलों में ऐसी किसी भी गति की समस्या से कहीं अधिक है।
यह डीएफ [, "कॉलम 1"] से अलग कैसे है? यह भी देखें? मार्जिन = 1. – Greg
के साथ आवेदन करें उदाहरण मैं वास्तव में नहीं करना चाहता था। मैं डेटा फ्रेम में कुछ मूल्यों को जावास्क्रिप्ट फ़ाइल में डेटा के रूप में लिखना चाहता था। "लागू" में "मार्जिन" के बारे में जानकारी के लिए +1। –
मुझे विशेष परिस्थितियों में कॉलम में मूल्यों के चारों ओर स्थानांतरित करने के लिए पंक्तियों पर लूप की आवश्यकता थी। मुझे याद दिलाया गया था कि आर में ऐसा करने का बेहतर तरीका है: http://stackoverflow.com/questions/7746567/how-to-swap-values-between-2-columns – thadk