R language supports importing data from JSON file/URL but couchdb views have a nested output that is not that R friendly if you only want to get the "values" part of a view.
Here is a sample view output
{"total_rows":514,"offset":500,"rows":[{ "id":"1125b15ed28bc81d390668742d81024f","key":"2014-02-08","value":{"date":"2014-02-08","No1":78,"No2":39,"No3":5,"No4":73,"No5":26,"No6":70,"No7":16,"No8":18}}, {"id":"1125b15ed28bc81d390668742d8110ee","key":"2014-02-15","value":{"date":"2014-02-15","No1":16,"No2":44,"No3":25,"No4":5,"No5":34,"No6":29,"No7":48,"No8":35}}, {"id":"1125b15ed28bc81d390668742d811d0c","key":"2014-02-22","value":{"date":"2014-02-22","No1":62,"No2":4,"No3":85,"No4":81,"No5":29,"No6":58,"No7":88,"No8":13}}, {"id":"1125b15ed28bc81d390668742d812470","key":"2014-03-01","value":{"date":"2014-03-01","No1":69,"No2":59,"No3":74,"No4":14,"No5":39,"No6":56,"No7":4,"No8":86}}, {"id":"1125b15ed28bc81d390668742d812d0e","key":"2014-03-08","value":{"date":"2014-03-08","No1":45,"No2":10,"No3":5,"No4":44,"No5":68,"No6":13,"No7":80,"No8":23}} ]}
This gets imported in R as large list with nested elements.
If you only need to get the elements of "value" this piece of code might come handy
#include libraries library("RJSONIO") library("RCurl") #disable treating strings as factors options(stringsAsFactors = FALSE) #get data from URL jsondata=fromJSON(getURL("http://couchdb.url/path-to-view"), nullValue=NA) #create a data frame value_data <- data.frame() #bind rows for (jsonrow in jsondata$rows){ value_data <- rbind(value_data, jsonrow$value) } # enable strings as factors options(stringsAsFactors = TRUE) #remove unneeded variables rm(jsonrow, jsondata)
Add new comment