के साथ डेटाबेस के लिए सिफारिशें मैं समय श्रृंखला डेटा का उपयोग कर सिमुलेशन चलाने के लिए आर का उपयोग कर रहा हूं। मैं डेटा स्टोर करने के लिए सरणी का उपयोग कर रहा हूं लेकिन प्रक्रिया को दस्तावेज करने के लिए मुझे मध्यवर्ती चरणों में डेटा संग्रहीत करने के लिए कम स्मृति गहन समाधान की आवश्यकता है। मैं प्रोग्रामर नहीं हूं इसलिए यदि संभव हो तो मैं कई प्लेटफार्मों पर सेटअप करने के लिए अपेक्षाकृत आसान कुछ ढूंढ रहा हूं (विंडोज़, मैक, लिनक्स)। मुझे किसी अन्य भाषा को सीखने के बाद भी डेटाबेस से सीधे कॉल करने में सक्षम होना चाहिए। आदर्श रूप से, मैं डेटाबेस को अक्सर एक सरणी के समान तरीके से पढ़ने और लिखने में सक्षम होना चाहता हूं, हालांकि मुझे नहीं पता कि यह यथार्थवादी है या नहीं। मैं आसानी से उपयोग की आसानी के लिए गति बलिदान करूंगा लेकिन मैं ओपन सोर्स समाधान सीखने के लिए काम करने को तैयार हूं। किसी भी सुझाव की सराहना की जाएगी।आर
आर
उत्तर
मैं भी आर
से सीधे कॉल डेटाबेस
मैं RMySQL इंटरफेस के साथ MySQL की स्थापना का सुझाव देने में सक्षम होना चाहिए।
एक बार डीबी कनेक्शन खुला है, तो आप डेटाबेस क्वेरी और, उदाहरण के आर में डेटा प्राप्त कर सकते हैं:
# Run an SQL statement by creating first a resultSet object
rs <- dbSendQuery(con, statement = paste(
"SELECT w.laser_id, w.wavelength, p.cut_off",
"FROM WL w, PURGE P",
"WHERE w.laser_id = p.laser_id",
"SORT BY w.laser_id")
# we now fetch records from the resultSet into a data.frame
data <- fetch(rs, n = -1) # extract all rows
RMySQL: MySQL डेटाबेस के लिए आर इंटरफ़ेस
डाटाबेस इंटरफ़ेस और MySQL ड्राइवर आर के लिए यह संस्करण डेटाबेस इंटरफ़ेस परिभाषा पैकेज डीबीआई 0.2-2 में लागू किया गया है।
MySQL डेटाबेस:
सभी प्लेटफार्मों आप प्रश्न में उद्धृत, और अधिक, डाउनलोड here लिए उपलब्ध है।
त्वरित टिप्पणी:
- आर इस पर अच्छा है, डेटा साथ प्रोग्रामिंग के लिए एक भाषा के रूप में, वहाँ इंटरफेस के बहुत सारे हैं
- वहाँ, एक पूरे manual डेटा आयात/निर्यात के लिए समर्पित है और इसमें section on relational databases है, इसलिए वहां से शुरू करें।
- आर व्यापक रूप से उपयोग किया गया DBI पैकेज है जो SQLite, MySQL, PostgreSQL, Oracle, के बीच कई बैकएंडों के लिए एक एकीकृत इंटरफ़ेस प्रदान करता है ... इसका उपयोग करें, शायद RSQLite के साथ कुछ जल्दी चलने के लिए। आप अभी भी बैकएंड्स को बाद में स्विच कर सकते हैं।
- RODBC भी है लेकिन मुझे ओडीबीसी के साथ काम करने के लिए कठिन लगता है।
- आर में पॉल गिल्बर्ट द्वारा TSdbi पैकेज में एक विशेष संस्करण भी है जो टाइम्सरी डेटाबेस में डीबीआई-समान रूप से अमूर्तता लाता है। यह कई बैकएंड का भी समर्थन करता है।
- data.table पैकेज इसके लिए लिखा गया था और अनुक्रमण और एकत्रीकरण पर बहुत तेज है।
संसाधनों के लिए धन्यवाद। अब तक, SQLite मेरे कौशल स्तर के लिए सबसे उपयुक्त दिखता है। – ProbablePattern
हम्म, ऐसा लगता है कि 200 9 में डीबीआई की मृत्यु हो गई थी। कुछ भी नया? –
@ स्टेवबेनेट: नोप, [डीबीआई] (http://cran.r-project.org/web/packages/DBI/index.html) जीवित और वर्तमान है, लेकिन _no बगफिक्स 200 9 से बना है जो अलग है। और डीबीआई सिर्फ एक इंटरफेस है जैसा मैंने लिखा था। –
क्या आपको वास्तव में अपने उद्देश्य के लिए डेटाबेस समाधान की आवश्यकता है? आप कहते हैं कि आप "मध्यवर्ती चरणों में डेटा संग्रहीत करने के लिए समाधान" चाहते हैं - आवश्यक समय बिंदु पर डेटा सरणी को डिस्क पर सहेजने के बारे में कैसे?
संपादित करें: जानकारी को पुनर्प्राप्त करना संभव बनाने के लिए, आप मेटा-सूचना एम्बेड कर सकते हैं, उदा। फ़ाइल नाम में परीक्षण सूचकांक और/या टाइमस्टैम्प। फिर बाद में आप सही फ़ाइल नाम का उपयोग कर फ़ाइल को ढूंढ और लोड कर सकते हैं।
मैं आर के लिए अपेक्षाकृत नया हूं लेकिन ऐसा लगता है कि इससे कई सौ फाइलें उत्पन्न होंगी और जब मैं करूँगा तो ऑडिट करना मुश्किल हो जाएगा। सिमुलेशन के प्रत्येक भाग में कुछ तीन आयामी सरणी बनाने की आवश्यकता होती है और मैं केवल एक बार में लगभग 5,000 सिमुलेशन चला सकता हूं। मेरा वर्तमान लक्ष्य 50,000 रन करना है। यदि डिस्क पर त्रि-आयामी सरणी को संग्रहीत करने और बाद में व्यवस्थित तरीके से अपने परिणामों को पढ़ने का बेहतर तरीका है, तो मैं निश्चित रूप से मार्गदर्शन की सराहना करता हूं। – ProbablePattern
आप ff पैकेज पर भी एक नज़र डाल सकते हैं।
एक उपयोगकर्ता के लिए, RSQLite सेटअप करना और तेज़ करना आसान है। –
कोड उदाहरण Bakkal के लिए धन्यवाद। यह एक उपयोगकर्ता के लिए इस्तेमाल किया जाएगा। क्या इस एप्लिकेशन के लिए SQLite के बजाय MySQL का उपयोग करने का कोई फायदा है? – ProbablePattern
आप वर्तमान कार्य के लिए सबसे सरल डीबी का उपयोग कर सकते हैं, और उसके बाद यदि आप एक उपयोगी सुविधा खो रहे हैं तो बाद में एक और पूर्ण पर जाएं :) – bakkal