Czy istnieje sposób na import danych z pliku JSON do R? Dokładniej, plik jest tablicą obiektów JSON z polami łańcuchowymi, obiektami i tablicami. Pakiet RJSON nie jest bardzo jasne, jak sobie z tym poradzić http://cran.r-project.org/web/packages/rjson/rjson.pdf.Importowanie danych z pliku JSON do R
Odpowiedz
Najpierw zainstaluj pakiet rjson
:
install.packages("rjson")
wówczas:
library("rjson")
json_file <- "http://api.worldbank.org/country?per_page=10®ion=OED&lendingtype=LNX&format=json"
json_data <- fromJSON(paste(readLines(json_file), collapse=""))
UPDATE: od wersji 0.2.1
json_data <- fromJSON(file=json_file)
Alternatywą pakiet jest RJSONIO. Aby przekonwertować listę zagnieżdżoną, lapply może pomóc:
l <- fromJSON('[{"winner":"68694999", "votes":[
{"ts":"Thu Mar 25 03:13:01 UTC 2010", "user":{"name":"Lamur","user_id":"68694999"}},
{"ts":"Thu Mar 25 03:13:08 UTC 2010", "user":{"name":"Lamur","user_id":"68694999"}}],
"lastVote":{"timestamp":1269486788526,"user":
{"name":"Lamur","user_id":"68694999"}},"startPrice":0}]'
)
m <- lapply(
l[[1]]$votes,
function(x) c(x$user['name'], x$user['user_id'], x['ts'])
)
m <- do.call(rbind, m)
podaje informacje na temat głosów w twoim przykładzie.
'x $ user $ name, x $ user $ user_id' powinno być teraz' x $ user ['name'], x $ user ['user_id'] '. Również 'm <- do.call (rbind, m)' może być lepszym sposobem na konwersję listy do macierzy. – jbaums
dzięki za wskazanie tego, naprawiłem. –
jest coś takiego jak funkcja convertToDataFrame dla JSON (tak jak w przypadku pakietu XML)? – userJT
Jeżeli adres jest HTTPS, jak stosowane do Amazon S3, a następnie użyć getURL
json <- fromJSON(getURL('https://s3.amazonaws.com/bucket/my.json'))
PSA: getURL jest w pakiecie RCurl. –
Również "Błąd w funkcji (typ, msg, asError = TRUE): Protokół" s3 "nie jest obsługiwany lub wyłączany w libcurl' – d8aninja
jsonlite
importuje JSON w ramce danych. Może opcjonalnie spłaszczyć zagnieżdżone obiekty. Macierze zagnieżdżone będą ramkami danych.
> library(jsonlite)
> winners <- fromJSON("winners.json", flatten=TRUE)
> colnames(winners)
[1] "winner" "votes" "startPrice" "lastVote.timestamp" "lastVote.user.name" "lastVote.user.user_id"
> winners[,c("winner","startPrice","lastVote.user.name")]
winner startPrice lastVote.user.name
1 68694999 0 Lamur
> winners[,c("votes")]
[[1]]
ts user.name user.user_id
1 Thu Mar 25 03:13:01 UTC 2010 Lamur 68694999
2 Thu Mar 25 03:13:08 UTC 2010 Lamur 68694999
Podoba mi się ta odpowiedź i biblioteka bardziej niż akceptowana. –
Najpierw zainstaluj RJSONIO i RCurl pakiet:
install.packages("RJSONIO")
install.packages("(RCurl")
Spróbuj poniżej 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. Importowanie plików z rozszerzeniem .sqlite do R
- 2. Importowanie pliku JSON w Meteorzie
- 3. importowanie z pliku json do MongoDB użyciu mongoimport
- 4. TensorFlow - Importowanie danych z pliku TFEvent TensorBoard?
- 5. importowanie niechlujnych danych przy użyciu R
- 6. Importowanie JSON do projektu Netbeans
- 7. Importowanie opadów śniegu do niestandardowego pakietu R
- 8. Importowanie tekstu z lokalnego pliku json w React native
- 9. Zapisywanie danych do pliku json z pliku PHP
- 10. Importowanie funkcji z klasy do innego pliku?
- 11. Importowanie pliku ics do Outlook.AppointmentItem
- 12. Importowanie pliku CSV do Java
- 13. Importowanie dużą csv do bazy danych mysql
- 14. Importowanie JSON-a do projektu Eclipse
- 15. Importowanie wielu plików .csv do katalogu R
- 16. Importowanie chronionego hasłem arkusza xlsx do R
- 17. Importowanie pliku z nieznanym kodowaniem z Python do MongoDB
- 18. importowanie i przetwarzanie danych z pliku CSV w Delphi
- 19. Czytaj w danych z pliku JSON
- 20. Importowanie określonych tabel z pliku zrzutu Oracle?
- 21. Nodejs napisać json do pliku
- 22. przekonwertować plik JSON do pliku CSV przy użyciu R
- 23. Python z dostępem do zagnieżdżonych danych JSON
- 24. Analiza zagnieżdżona JSON do ramki danych w R
- 25. vba: Importowanie pliku tekstowego do arkusza Excela
- 26. importowanie typów danych w C++ do haskell z ffi
- 27. Załaduj json z pliku do obiektu
- 28. Importowanie pliku XLSX do tablicy PHP
- 29. Importowanie zestawu danych SPSS do Python
- 30. R: Ogólne spłaszczanie JSON do data.frame
Duplikat: http://stackoverflow.com/questions/2061897/parse-json-with-r. Jeśli masz konkretny przykład danych, to mogłoby to pomóc. W przeciwnym razie rjson może zrobić to, czego potrzebujesz, wraz z manipulacją danymi (np. Za pomocą funkcji apply lub plyr). – Shane
Również podobne do tego pytania: http://stackoverflow.com/questions/2260147/transposing-json-list-of-dictionaries- for-analysis-in-r. – Shane
Witaj Shane, próbowałeś używać RJSON. Interesuje mnie głównie niezbędna manipulacja danymi. Oto przykład pliku JSON, nad którym pracuję. przykład.json: [{"Zwycięzca": "68694999", "głosy": [{"ts": "Czw Mar 25 03:13:01 UTC 2010", "użytkownik": {"imię": "Lamur", "user_id": "68694999"}}, {"ts": "Czw Mar 25 03:13:08 UTC 2010", "user": {"name": "Lamur", "user_id": " 68694999 "}}]," lastVote ": {" timestamp ": 1269486788526," user ": {" name ":" Lamur "," user_id ":" 68694999 "}}," startPrice ": 0}, ... ] – user313967