Pytanie Parsuj JSON z R


Jestem całkiem nowy dla R, ale im bardziej go używam, tym bardziej widzę, jak potężny jest on naprawdę nad SAS lub SPSS. Jedną z głównych zalet, jak je widzę, jest możliwość pobierania i analizowania danych z sieci. Wyobrażam sobie, że jest to możliwe (a może nawet proste), ale chcę przeanalizować dane JSON, które są publicznie dostępne w Internecie. Nie jestem programistą w żadnym stopniu, więc wszelka pomoc i instrukcje, które możesz zapewnić, będą bardzo mile widziane. Nawet jeśli wskażesz mi podstawowy przykład działania, prawdopodobnie będę mógł przez to przejść.


76
2018-01-14 03:03


pochodzenie




Odpowiedzi:


RJSONIO od Omegahat to kolejny pakiet, który zapewnia urządzenia do odczytu i zapisu danych w formacie JSON.

rjson nie używa metod S4 / S3 i dlatego nie jest łatwo rozszerzalny, ale nadal przydatny. Niestety nie używa on operacji wektoryzacji i jest zbyt wolny dla nietrywialnych danych. Podobnie, do odczytu danych JSON do R, jest nieco powolny, a więc nie skaluje się do dużych danych, jeśli jest to problem.

Aktualizacja (nowy pakiet 2013-12-03):

jsonlite: Ten pakiet jest rozwidleniem RJSONIO pakiet. Opiera się na parserze z RJSONIO ale implementuje inne odwzorowanie obiektów R i łańcuchów JSON. Kod C w tym pakiecie pochodzi głównie z RJSONIO Pakiet, kod R został przepisany od zera. Oprócz wymiany zamiennej dla fromJSON i toJSON, pakiet ma funkcje do serializowania obiektów. Co więcej, pakiet zawiera wiele testów jednostkowych, aby upewnić się, że wszystkie skrzynie brzegowe są zakodowane i dekodowane konsekwentnie do użytku z dynamicznymi danymi w systemach i aplikacjach.


78
2018-01-14 08:05



znalazłem to porównanie rjson, RJSONIO i jsonlite pomocne - Eric
Powyższy link porównania jest martwy. Jest to poprawny link? (różnica to https) - woodvi


The jsonlite pakiet jest łatwy w użyciu i próbuje konwertować json na ramki danych.

Przykład:

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



To było niesamowicie łatwe w użyciu do tego, czego potrzebowałem. Dziękuję bardzo - Unknown Coder
dokument <- fromJSON (file = url); #, ale czas oczekiwania na żądanie - EngrStudent
Kocham to. Wydaje się znacznie lepszy niż bałagan stworzony przez rjson. - randominstanceOfLivingThing
O ile oryginalny format jsonów nie jest już spłaszczony, jsonlite jest mniej więcej tak samo użyteczny jak widelec do zupy. - gented


Oto brakujący przykład

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

19
2017-10-28 10:57



to działało dla mnie, ale nie chcesz przekazywać ciągu znaków dla nazwy zmiennej pliku, jak pokazano. - mrjrdnthms


Funkcja fromJSON () w RJSONIO, rjson i jsonlite nie zwraca prostej 2D danych.frame dla złożonych zagnieżdżonych obiektów json.

Aby tego uniknąć, możesz użyć tidyjson. Przyjmuje json i zawsze zwraca data.frame. Obecnie nie jest dostępny w CRAN, możesz go pobrać tutaj: https://github.com/sailthru/tidyjson

Aktualizacja:  tidyjson jest teraz dostępny w cran, możesz zainstalować go bezpośrednio za pomocą install.packages("tidyjson")


3
2017-12-03 10:43





Dla zapisu, rjson i RJSONIO zmieniają typ pliku, ale tak naprawdę nie parsują per se. Na przykład, otrzymuję brzydkie dane MongoDB w formacie JSON, konwertuję je na rjson lub RJSONIO, a następnie używam unlist i ton korekcji ręcznej, aby faktycznie przetworzyć ją w użyteczną macierz.


2
2018-02-26 17:36





Wypróbuj poniższy kod za pomocą RJSONIO w konsoli

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