Frage Parsen Sie JSON mit R


Ich bin relativ neu in R, aber je mehr ich es benutze, desto mehr sehe ich, wie mächtig es wirklich über SAS oder SPSS ist. Einer der wichtigsten Vorteile, wie ich sie sehe, ist die Fähigkeit, Daten aus dem Internet zu bekommen und zu analysieren. Ich stelle mir vor, dass dies möglich ist (und vielleicht sogar einfach), aber ich möchte JSON-Daten parsen, die im Internet öffentlich verfügbar sind. Ich bin kein Programmierer, also jede Hilfe und Anweisung, die Sie zur Verfügung stellen können, wird sehr geschätzt. Selbst wenn Sie mich auf ein grundlegendes Arbeitsbeispiel hinweisen, kann ich es wahrscheinlich durcharbeiten.


76
2018-01-14 03:03


Ursprung


Antworten:


RJSONIO von OmegaHat ist ein weiteres Paket, das Möglichkeiten zum Lesen und Schreiben von Daten im JSON-Format bietet.

Rjson verwendet keine S4 / S3-Methoden und ist daher nicht ohne weiteres erweiterbar, aber immer noch nützlich. Leider verwendet es keine vektorisierten Operationen und ist daher für nicht-triviale Daten zu langsam. Ähnlich ist es beim Lesen von JSON-Daten in R etwas langsam und skaliert daher nicht zu großen Daten, falls dies ein Problem sein sollte.

Aktualisieren (neues Paket 2013-12-03):

jsonlite: Dieses Paket ist eine Gabel der RJSONIO Paket. Es baut auf dem Parser auf RJSONIO implementiert jedoch eine andere Zuordnung zwischen R-Objekten und JSON-Strings. Der C-Code in diesem Paket stammt hauptsächlich von der RJSONIO Paket, der R-Code wurde von Grund auf neu geschrieben. Zusätzlich zu Drop-in Ersatz für fromJSON und toJSONDas Paket verfügt über Funktionen zum Serialisieren von Objekten. Darüber hinaus enthält das Paket eine Vielzahl von Komponententests, um sicherzustellen, dass alle Edge-Cases einheitlich für die Verwendung mit dynamischen Daten in Systemen und Anwendungen codiert und decodiert werden.


78
2018-01-14 08:05



Das jsonlite Paket ist einfach zu bedienen und versucht, JSON in Datenrahmen zu konvertieren.

Beispiel:

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)

43
2017-11-23 14:32



Hier ist das fehlende Beispiel

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

19
2017-10-28 10:57



Die Funktion fromJSON () in RJSONIO, rjson und jsonlite liefert keine einfachen 2D-Datenfelder für komplexe verschachtelte JSON-Objekte.

Um dies zu überwinden, können Sie verwenden Tidyjson. Es nimmt einen JSON auf und gibt immer einen Datenrahmen zurück. Es ist derzeit nicht in CRAN verfügbar, Sie können es hier bekommen: https://github.com/sailthru/tidyjson

Aktualisieren:  Tidyjson ist jetzt in Crane verfügbar, Sie können es direkt mit installieren install.packages("tidyjson")


3
2017-12-03 10:43



Für die Aufnahme ändern rjson und RJSONIO den Dateityp, aber sie analysieren nicht wirklich per se. Zum Beispiel erhalte ich hässliche MongoDB-Daten im JSON-Format, konvertiere sie mit rjson oder RJSONIO, benutze dann unlist und tonnenweise manuelle Korrektur, um sie tatsächlich in eine brauchbare Matrix zu zerlegen.


2
2018-02-26 17:36



Versuchen Sie den folgenden Code mit RJSONIO in der Konsole

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)

1
2017-08-01 08:28