[json] R로 JSON 구문 분석

저는 R을 처음 접했지만 더 많이 사용할수록 실제로 SAS 또는 SPSS보다 얼마나 강력한 지 더 많이 알 수 있습니다. 제가보기에 주요 이점 중 하나는 웹에서 데이터를 가져오고 분석하는 기능입니다. 나는 이것이 가능하다고 생각하지만 (아마도 간단 할 수도 있지만) 웹에서 공개적으로 사용할 수있는 JSON 데이터를 구문 분석하려고합니다. 저는 프로그래머가 아니기 때문에 여러분이 제공 할 수있는 어떤 도움과 지시도 대단히 감사하겠습니다. 기본 작업 예제를 알려 주더라도 아마도 그것을 통해 작업 할 수 있습니다.



답변

Omegahat의 RJSONIO 는 JSON 형식으로 데이터를 읽고 쓰는 기능을 제공하는 또 다른 패키지입니다.

rjson 은 S4 / S3 방법을 사용하지 않으므로 쉽게 확장 할 수 없지만 여전히 유용합니다. 불행히도 벡터화 된 작업을 사용하지 않으므로 사소하지 않은 데이터에는 너무 느립니다. 마찬가지로 JSON 데이터를 R로 읽는 경우 다소 느리므로 문제가 될 경우 큰 데이터로 확장되지 않습니다.

업데이트 (새 패키지 2013-12-03) :

jsonlite :이 패키지는 패키지의 포크입니다 RJSONIO. 파서에서 빌드 RJSONIO되지만 R 개체와 JSON 문자열간에 다른 매핑을 구현합니다. 이 패키지의 C 코드는 대부분 RJSONIO패키지에서 가져 왔으며 R 코드는 처음부터 다시 작성되었습니다. fromJSONtoJSON에 대한 드롭 인 교체 외에도 패키지에는 객체를 직렬화하는 기능이 있습니다. 또한 패키지에는 시스템 및 애플리케이션의 동적 데이터와 함께 사용하기 위해 모든 에지 케이스가 일관되게 인코딩되고 디코딩되는지 확인하기위한 많은 단위 테스트가 포함되어 있습니다.


답변

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')


답변

RJSONIO, rjson 및 jsonlite의 fromJSON () 함수는 복잡한 중첩 json 객체에 대해 간단한 2D data.frame을 반환하지 않습니다.

이를 극복하기 위해 tidyjson 을 사용할 수 있습니다 . json을 받아 항상 data.frame을 반환합니다. 현재 CRAN에서는 사용할 수 없습니다. https://github.com/sailthru/tidyjson 에서 다운로드 할 수 있습니다.

업데이트 : tidyjson은 이제 cran에서 사용할 수 있으며 다음을 사용하여 직접 설치할 수 있습니다.install.packages("tidyjson")


답변

기록을 위해 rjson과 RJSONIO는 파일 유형을 변경하지만 실제로 구문 분석하지는 않습니다. 예를 들어, 추악한 MongoDB 데이터를 JSON 형식으로 수신하고 rjson 또는 RJSONIO로 변환 한 다음 목록에없는 수많은 수동 수정을 사용하여 실제로 사용 가능한 매트릭스로 구문 분석합니다.


답변

콘솔에서 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)


답변