Я новичок в R, но чем больше я использую его, тем больше я вижу, насколько он силен над SAS или SPSS. Одним из основных преимуществ, как я вижу, является возможность получать и анализировать данные из Интернета. Я предполагаю, что это возможно (и, возможно, даже прямолинейно), но я ищу для анализа данных JSON, которые общедоступны в Интернете. Я не программист на любом участке, поэтому любая помощь и инструкция, которые вы можете предоставить, будут очень благодарны. Даже если вы укажете мне базовый рабочий пример, я, вероятно, смогу его обработать.
Разбор JSON с R
Ответ 1
RJSONIO от Omegahat - еще один пакет, который предоставляет возможности для чтения и записи данных в формате JSON.
rjson не использует методы S4/S3 и поэтому не является легко расширяемым, но все же полезным. К сожалению, он не использует векторизованные операции и поэтому слишком медленен для нетривиальных данных. Аналогично, для чтения данных JSON в R, он несколько медленный и поэтому не масштабируется для больших данных, если это проблема.
Обновить (новый пакет 2013-12-03):
jsonlite: этот пакет является вилкой пакета RJSONIO
. Он основывается на синтаксическом анализаторе от RJSONIO
, но реализует другое сопоставление между объектами R и строками JSON. Код C в этом пакете в основном состоит из пакета RJSONIO
, код R был переписан с нуля. В дополнение к замещающим заменам для fromJSON
и toJSON
, пакет имеет функции для сериализации объектов. Кроме того, пакет содержит множество модульных тестов, чтобы гарантировать, что все краевые случаи кодируются и декодируются последовательно для использования с динамическими данными в системах и приложениях.
Ответ 2
Пакет 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)
Ответ 3
Вот недостающий пример
library(rjson)
url <- 'http://someurl/data.json'
document <- fromJSON(file=url, method='C')
Ответ 4
Функция из JSON() в RJSONIO, rjson и jsonlite не возвращает простой 2D файл данных для сложных вложенных json-объектов.
Чтобы преодолеть это, вы можете использовать tidyjson. Он принимает json и всегда возвращает data.frame. В настоящее время он недоступен в CRAN, вы можете получить его здесь: https://github.com/sailthru/tidyjson
Обновление: tidyjson теперь доступен в cran, вы можете установить его напрямую, используя install.packages("tidyjson")
Ответ 5
Для записи rjson и RJSONIO изменяют тип файла, но они действительно не разбираются сами по себе. Например, я получаю уродливые данные MongoDB в формате JSON, конвертирую их с помощью rjson или RJSONIO, а затем использую unlist и тонны ручной коррекции для фактического анализа его в пригодную для использования матрицу.
Ответ 6
Попробуйте выполнить код ниже, используя 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)