how do you convert data frame to json with multiple columns in R -


i need convert a data frame json format, data frame looks this:

dput(head(yyy,30)) structure(list(name = c("servera", "servera", "servera", "servera",  "servera", "servera", "servera", "servera", "servera", "servera",  "servera", "servera", "servera", "servera", "servera", "servera",  "servera", "servera", "servera", "servera", "servera", "servera",  "servera", "servera", "servera", "servera", "servera", "servera",  "servera", "servera"), date = structure(c(1374120000, 1374120060,  1374120120, 1374120180, 1374120360, 1374120420, 1374120540, 1374120600,  1374120840, 1374120960, 1374121020, 1374121080, 1374121200, 1374121440,  1374121500, 1374121620, 1374121680, 1374122040, 1374122160, 1374122280,  1374122400, 1374122580, 1374122640, 1374122700, 1374122940, 1374123000,  1374123120, 1374123180, 1374123240, 1374123360), class = c("posixct",  "posixt"), tzone = "america/new_york"), resp = c(3644, 1067.5,  2738, 5224, 561, 723, 522, 408.5, 446, 683.75, 521, 385, 2666.5,  1268, 701, 143, 645, 474, 670.5, 549, 383, 1381, 483, 516, 467.5,  10726, 931.5, 773, 778, 323), vol = c(1l, 2l, 1l, 1l, 1l, 1l,  1l, 2l, 2l, 4l, 1l, 1l, 2l, 1l, 1l, 1l, 1l, 1l, 2l, 1l, 1l, 1l,  1l, 1l, 2l, 1l, 2l, 2l, 1l, 1l)), .names = c("name", "date",  "resp", "vol"), row.names = c(1l, 3l, 7l, 8l, 13l, 17l, 21l,  25l, 33l, 39l, 42l, 44l, 48l, 59l, 63l, 68l, 71l, 83l, 88l, 91l,  98l, 105l, 109l, 113l, 122l, 123l, 129l, 132l, 135l, 140l), class = "data.frame") 

my json needs this:

first part include date , resp , second part need inclue date , vol on json format.

[{"name":"servera","yaxis":1, "data":[[<date>,<resp>],[<date>,<resp>]]},{"name":"servera","yaxis":2, "data":[[<date>,<vol>],[<date>,<vol>]]}] 

the json out put needs this:

[{"name":"servera","yaxis":1, "data":[[1374105840000,27.395],[1374107640000,26.646]]},{"name":"servera","yaxis":2, "data":[[1374105840000,25.983],[1374107640000,22.724]]}] 

if data frame include resp, convert this:

servers <- split(yyy, yyy$name) dumfun <- function(x){   sdata <- servers[x][[1]]   if(nrow(sdata) >0){     # create appropriate list     dumlist <- unname(apply(sdata[,2:3], 1, function(y) unname(as.list(y))))     return(tojson(list(name = x, data = dumlist)))    } }   jsdata <- lapply(names(servers), dumfun) jsind <- sapply(jsdata, is.null) p<-paste0('[', paste(jsdata[!jsind], collapse = ','), ']') 

is there easy way in r

i able in 2 steps follows:

dumfun <- function(x){           sdata <- servers[x][[1]]           if(nrow(sdata) >0){             # create appropriate list             dumlist <- unname(apply(sdata[,2:3], 1, function(y) unname(as.list(y))))             return(tojson(list(name = x, yaxis=1, data = dumlist)))            }         }          dumfun1 <- function(x){           sdata <- servers[x][[1]]            if(nrow(sdata) >0){             # create appropriate list             dumlist <- unname(apply(sdata[,c(2,4)], 1, function(y) unname(as.list(y))))             return(tojson(list(name = x, yaxis=2, data = dumlist)))            }         }          jsdata <- lapply(names(servers), dumfun)         jsind <- sapply(jsdata, is.null)          jsdata1 <- lapply(names(servers), dumfun1)         jsind <- sapply(jsdata, is.null)          t<-paste(jsdata, jsdata1, sep=',')          p<-paste0('[', paste(t[!jsind], collapse = ','), ']') 

Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -