Разбор JSON с R



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

773   6  

6 ответов:

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

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

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

jsonlite: этот пакет является вилкой . Он строится на парсере от RJSONIO но реализует другое сопоставление между R объектами и строками JSON. Код C в этом пакете в основном из RJSONIO пакет, код R был переписан с нуля. В дополнение к выпадающим заменам для 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')

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

чтобы преодолеть это, вы можете использовать tidyjson. Он принимает в json и всегда возвращает данные.рамка. В настоящее время он недоступен в 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)

Comments

    Ничего не найдено.