rjson - how do you create a custom json output from an R function with dataframe and column names as arguments -


i need create , r function take data frame , column names arguments (there should @ least 2 column names in argument list , maybe more). given data frame, need create json formatted output based given column names. example,

this df:

structure(list(datetime = structure(1:8, .label = c("8/24/2014 15:20",  "8/24/2014 15:55", "8/24/2014 16:04", "8/24/2014 16:18", "8/24/2014 16:27",  "8/24/2014 16:42", "8/24/2014 16:56", "8/24/2014 17:10"), class = "factor"),      server1 = c(6.09, 4.54, 5.03, 4.93, 6.27, 4.59, 5.91, 4.53     ), server2 = c(5.7, 4.38, 4.52, 4.61, 4.18, 4.61, 4.37, 4.3     ), server3 = c(5.21, 5.33, 4.92, 5.56, 5.62, 6.73, 4.76,      4.59)), .names = c("datetime", "server1", "server2", "server3" ), class = "data.frame", row.names = c(na, -8l)) 

i need function return output:

[{"name":"server1","data":[[18/24/2014 15:20,6.09],[8/24/2014 15:55,4.54],[8/24/2014 16:04,5.03]]}, {"name":"server2","data":[[18/24/2014 15:20,7.7],[8/24/2014 15:55,4.38],[8/24/2014 16:04,4.52]]}, {"name":"server3","data":[[18/24/2014 15:20,5.21],[8/24/2014 15:55,5.33],[8/24/2014 16:04,4.92]]}] 

any ideas how start this?

assuming data frame named dd, then

library(rjson) library(reshape2)  mm <- melt(dd) ss <- split(mm, mm$variable)  poo <- unname(map(function(n,x)      list(name=n, data=unname(lapply(split(x, 1:nrow(x)), function(x) {         list(x$datetime, x$value) }))), names(ss),ss)) cat(tojson(poo)) 

and gives

[{"name":"server1","data":[["8/24/2014 15:20",6.09],["8/24/2014 15:55",4.54],["8/24/2014 16:04",5.03],["8/24/2014 16:18",4.93],["8/24/2014 16:27",6.27],["8/24/2014 16:42",4.59],["8/24/2014 16:56",5.91],["8/24/2014 17:10",4.53]]}, {"name":"server2","data":[["8/24/2014 15:20",5.7],["8/24/2014 15:55",4.38],["8/24/2014 16:04",4.52],["8/24/2014 16:18",4.61],["8/24/2014 16:27",4.18],["8/24/2014 16:42",4.61],["8/24/2014 16:56",4.37],["8/24/2014 17:10",4.3]]}, {"name":"server3","data":[["8/24/2014 15:20",5.21],["8/24/2014 15:55",5.33],["8/24/2014 16:04",4.92],["8/24/2014 16:18",5.56],["8/24/2014 16:27",5.62],["8/24/2014 16:42",6.73],["8/24/2014 16:56",4.76],["8/24/2014 17:10",4.59]]}] 

which seems match wanted. it's not super pretty because you've gone out of way reshape data in way rsjon doesn't like.


Comments

Popular posts from this blog

javascript - how to protect a flash video from refresh? -

android - Associate same looper with different threads -

visual studio 2010 - Connect to informix database windows form application -