Разбор JSON с R

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

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

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

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

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

Пакет 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) 

Вот пропущенный пример

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

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

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

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

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

Попробуйте выполнить код, используя 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) 
  • Как отключить научную нотацию?
  • Как сказать, чтобы проигнорировать ошибку и обработать следующую вещь в списке?
  • Является ли R применимым к семейству больше, чем синтаксический сахар?
  • Соединение по отсутствующим значениям с помощью geom_line
  • Принудительная assembly мусора для запуска в R с помощью команды gc ()
  • Извлечь значения столбца матрицы по имени столбца матрицы
  • Как преобразовать список, состоящий из вектора разной длины в полезный кадр данных в R?
  • Использование ggplot () в рамках другой функции в R
  • Roxygen2 - как правильно документировать методы S3
  • Как можно наложить эллипс данных на диаграмму рассеяния ggplot2?
  • Цвет заливки и границы в geom_point (scale_colour_manual) в ggplot
  • Давайте будем гением компьютера.