Разобрать JSON с R - PullRequest
       41

Разобрать JSON с R

82 голосов
/ 14 января 2010

Я довольно новичок в R, но чем больше его использую, тем больше я вижу, насколько он действительно мощнее SAS или SPSS. На мой взгляд, одним из основных преимуществ является возможность получать и анализировать данные из Интернета. Я полагаю, что это возможно (и, возможно, даже просто), но я хочу проанализировать данные JSON, которые общедоступны в Интернете. Я не программист, поэтому любая помощь и инструкция, которые вы можете предоставить, будут высоко оценены. Даже если вы укажете мне основной рабочий пример, я, вероятно, смогу с ним справиться.

Ответы [ 6 ]

84 голосов
/ 14 января 2010

RJSONIO от Omegahat - это еще один пакет, который предоставляет средства для чтения и записи данных в формате JSON.

rjson не использует методы S4 / S3 и поэтому не является легко расширяемым, но все же полезным. К сожалению, он не использует векторизованные операции и поэтому слишком медленный для нетривиальных данных. Точно так же для чтения данных JSON в R это несколько медленно и поэтому не масштабируется до больших данных, если это будет проблемой.

Обновление (новый пакет 2013-12-03):

jsonlite : Этот пакет является вилкой пакета RJSONIO. Он основан на синтаксическом анализаторе RJSONIO, но реализует другое отображение между объектами R и строками JSON. Код C в этом пакете в основном из пакета RJSONIO, код R был переписан с нуля. Помимо вставных замен для fromJSON и toJSON, пакет имеет функции для сериализации объектов. Кроме того, пакет содержит множество модульных тестов, чтобы убедиться, что все граничные случаи кодируются и декодируются последовательно для использования с динамическими данными в системах и приложениях.

51 голосов
/ 23 ноября 2014

Пакет 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)
19 голосов
/ 28 октября 2012

Вот недостающий пример

library(rjson)
url <- 'http://someurl/data.json'
document <- fromJSON(file=url, method='C')
3 голосов
/ 03 декабря 2015

Функция fromJSON () в RJSONIO, rjson и jsonlite не возвращает простой 2D data.frame для сложных вложенных объектов json.

Чтобы преодолеть это, вы можете использовать tidyjson . Он принимает json и всегда возвращает data.frame. В настоящее время он недоступен в CRAN, вы можете получить его здесь: https://github.com/sailthru/tidyjson

Обновление: tidyjson теперь доступен в кране, вы можете установить его напрямую, используя install.packages("tidyjson")

2 голосов
/ 26 февраля 2013

Для записи, rjson и RJSONIO действительно изменяют тип файла, но они на самом деле не разбираются как таковые. Например, я получаю некрасивые данные MongoDB в формате JSON, преобразую их с помощью rjson или RJSONIO, а затем использую unlist и массу ручной коррекции, чтобы фактически разобрать их в пригодную для использования матрицу.

1 голос
/ 01 августа 2017

Попробуйте код ниже, используя 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...