आर के साथ पार्स जोंसन


90

मैं आर के लिए काफी नया हूं, लेकिन जितना अधिक इसका उपयोग किया जाता है, उतना ही मैं देखता हूं कि यह वास्तव में एसएएस या एसपीएसएस पर कितना शक्तिशाली है। बस एक प्रमुख लाभ, जैसा कि मैं उन्हें देखता हूं, वेब से डेटा प्राप्त करने और विश्लेषण करने की क्षमता है। मुझे लगता है कि यह संभव है (और शायद सीधा भी), लेकिन मैं JSON डेटा को पार्स करने के लिए देख रहा हूं जो सार्वजनिक रूप से वेब पर उपलब्ध है। मैं किसी भी खिंचाव से प्रोग्रामर नहीं हूं, इसलिए आप जो भी सहायता और निर्देश प्रदान कर सकते हैं, उसकी बहुत सराहना की जाएगी। यहां तक ​​कि अगर आप मुझे एक बुनियादी काम करने के उदाहरण की ओर इशारा करते हैं, तो मैं शायद इसके माध्यम से काम कर सकता हूं।

जवाबों:


89

ओमेगाघाट से RJSONIO एक और पैकेज है जो JSON प्रारूप में डेटा पढ़ने और लिखने की सुविधा प्रदान करता है।

rjson S4 / S3 विधियों का उपयोग नहीं करता है और इसलिए यह आसानी से एक्स्टेंसिबल नहीं है, लेकिन फिर भी उपयोगी है। दुर्भाग्य से, यह सदिश संचालन का उपयोग नहीं करता है और इसलिए गैर-तुच्छ डेटा के लिए बहुत धीमा है। इसी तरह, JSON डेटा को R में पढ़ने के लिए, यह कुछ धीमा है और इसलिए बड़े डेटा के लिए पैमाने नहीं है, यह एक मुद्दा होना चाहिए।

अपडेट (नया पैकेज 2013-12-03):

jsonlite : यह पैकेज पैकेज का कांटा है RJSONIO। यह पार्सर पर बनाता है, RJSONIOलेकिन आर ऑब्जेक्ट्स और JSON स्ट्रिंग्स के बीच एक अलग मैपिंग को लागू करता है । इस पैकेज में सी कोड ज्यादातर RJSONIOपैकेज से है, आर कोड को स्क्रैच से फिर से लिखा गया है। इसके अलावा के लिए ड्रॉप-इन करने के प्रतिस्थापन fromJSONऔर toJSON, पैकेज serialize वस्तुओं के लिए कार्य करती है। इसके अलावा, पैकेज में बहुत सारे यूनिट टेस्ट होते हैं, जो यह सुनिश्चित करने के लिए होते हैं कि सिस्टम और एप्लिकेशन में डायनेमिक डेटा के साथ उपयोग के लिए सभी एज केस एन्कोड और लगातार डिकोड किए जाते हैं।


3
मुझे यह आरजेसन, आरजेन्सियो, और जोंसलाइट की मददगार लगा
एरिक

2
ऊपर की तुलना लिंक मृत है। क्या यह सही कड़ी है? (अंतर https है)
वुडवी

58

Jsonlite पैकेज डेटा फ्रेम में json कन्वर्ट करने के लिए इस्तेमाल करते हैं और कोशिश करता करने के लिए आसान है।

उदाहरण:

library(jsonlite)

# url with some information about project in Andalussia
url <- 'http://www.juntadeandalucia.es/export/drupaljda/ayudas.json'

# read url and convert to data.frame
document <- fromJSON(txt=url)

1
यह अविश्वसनीय रूप से आसान था कि मुझे क्या चाहिए। बहुत बहुत धन्यवाद
अज्ञात कोडर

दस्तावेज़ <--जॉनसन से (फ़ाइल = यूआरएल); # लेकिन कई बार अनुरोध करें
19

1
इसे प्रेम करें। राजसन द्वारा बनाई गई अव्यवस्था से बहुत बेहतर लगता है।
randominstanceOfLivingThing

1
जब तक मूल जोंस प्रारूप पहले से ही चपटा नहीं होता है, तब तक jsonliteसूप खाने के लिए कांटा जितना उपयोगी होता है।
gented

19

यहाँ मिसिंग मिसाल है

library(rjson)
url <- 'http://someurl/data.json'
document <- fromJSON(file=url, method='C')

2
यह मेरे लिए काम करता है लेकिन आप फ़ाइल चर नाम के लिए एक स्ट्रिंग पास नहीं करना चाहते जैसा कि दिखाया गया है।
mrjrdnthms 20

4

RJSONIO, rjson और jsonlite मेंJJSON () का फ़ंक्शन जटिल नेस्टेड json ऑब्जेक्ट्स के लिए एक साधारण 2D डेटा.फ्रेम नहीं लौटाता है।

इसे दूर करने के लिए आप टिडजन का उपयोग कर सकते हैं । यह एक झटके में लेता है और हमेशा एक data.frame देता है। यह वर्तमान में CRAN में उपलब्ध नहीं है, आप इसे यहाँ प्राप्त कर सकते हैं: https://github.com/sailthru/tidyjson

अद्यतन: tidyjson अब क्रेन में उपलब्ध है, आप इसे सीधे उपयोग करके स्थापित कर सकते हैंinstall.packages("tidyjson")


2

रिकॉर्ड के लिए, rjson और RJSONIO फ़ाइल प्रकार को बदलते हैं, लेकिन वे वास्तव में प्रति से अधिक पार्स नहीं करते हैं। उदाहरण के लिए, मैं JSON प्रारूप में बदसूरत MongoDB डेटा प्राप्त करता हूं, इसे rjson या RJSONIO के साथ परिवर्तित करता हूं, फिर वास्तव में प्रयोग करने योग्य मैट्रिक्स में पार्स करने के लिए अनलिस्ट और मैनुअल सुधार के टन का उपयोग करता हूं।


1

कंसोल में RJSONIO का उपयोग करके नीचे दिए गए कोड का प्रयास करें

library(RJSONIO)
library(RCurl)


json_file = getURL("https://raw.githubusercontent.com/isrini/SI_IS607/master/books.json")

json_file2 = RJSONIO::fromJSON(json_file)

head(json_file2)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.