मेरे पास डेटा डेटा है (चलिए इसे माइडाटा कहते हैं) निम्न डेटा फ्रेम के साथ।आर "बाय" फ़ंक्शन के साथ ऑर्डरबुक के साथ कैसे काम करें?
datetime|side(0=Bid,1=Ask)| distance(1:best price, 2: 2nd best, etc.)| price
2008/01/28,09:11:28.000,0,1,1.6066
2008/01/28,09:11:28.000,0,2,1.6065
2008/01/28,09:11:28.000,0,3,1.6064
2008/01/28,09:11:28.000,0,4,1.6063
2008/01/28,09:11:28.000,0,5,1.6062
2008/01/28,09:11:28.000,1,1,1.6067
2008/01/28,09:11:28.000,1,2,1.6068
2008/01/28,09:11:28.000,1,3,1.6069
2008/01/28,09:11:28.000,1,4,1.6070
2008/01/28,09:11:28.000,1,5,1.6071
मैं इस मामले में minAsk-maxBid की गणना करना चाहता हूं, इस मामले में = 1.6067-1.6066। मैं इसे अपने पूरे डेटा के लिए करना चाहता हूं। , एक्स [[1L]] मज़ा करने में त्रुटि (...: मैं का उपयोग कर सोच रहा था "द्वारा" लेकिन फिर भी इस सरल कोड का उपयोग:
by(mydata,mydata$datetime, min(mydata$price))
प्रत्येक ब्लॉक मैं निम्नलिखित त्रुटि मिलती है में सिर्फ न्यूनतम मूल्य को खोजने के लिए): फ़ंक्शन "FUN" नहीं मिला
कोई विचार यह कैसे कार्यान्वित किया जाए? क्या मुझे शायद एक अलग फ़ंक्शन ddply
का उपयोग करना चाहिए?
यदि आपने "दूरी" क्या तुम सच में न्यूनतम/अधिकतम जरूरत नहीं है, आप केवल 'दूरी == 1'' शामिल करने के लिए सबसेट कर सकते हैं। वास्तव में, यदि आपका डेटा साफ़ है, और प्रसार कभी पार नहीं हुआ है, तो आप केवल कीमतों के अंतर के 'abs' ले सकते हैं जहां प्रत्येक समय दूरी == 1 है। – GSee
यदि आप अपना डेटा पुन: उत्पन्न करते हैं तो आपको सबसे अच्छे उत्तर मिलेंगे। इस मामले में, यदि आपने अभी अपने प्रश्न में 'dput (mydata) 'का आउटपुट प्रदान किया है, तो आपको बेहतर उत्तर मिलेंगे। ध्यान दें कि आपके द्वारा दिखाए गए दिनांक में दिनांक और समय के लिए अलग-अलग कॉलम हैं, लेकिन आपको वास्तव में एक डेटाटाइम कॉलम (शायद POSIXct) का उपयोग करना चाहिए। – GSee
@ जीएसआई- मेरे पास कॉलम में मेरा डेटा था। मैं दूसरे जवाब में समाधान के साथ जाऊंगा क्योंकि एक विशाल डेटा में उप सेटिंग कुशल नहीं है। अधिक जानकारी पोस्ट करने के बारे में अंक के लिए धन्यवाद, मैं यहां नया हूं और मैं उस समय से ऐसा करूँगा। – mitra