r - melt function applied to json input replaces some values with factors -
i have following json file:
{ "observations": [ { "type": "ob_type_1", "data": { "dynamic": { "sensor": [ { "timestamp": 552625694285098, "a": 1.4921862, "b": 8.613739 }, { "timestamp": 552625699285098, "a": 0.6907272, "b": 7.6243353 } ] }, "static": { "class1": "abc", "class2": "xyz" } } } ] } i import using rjson:
library(rjson) raw_json <- fromjson(file=json_file) to reproduce please use:
raw_json <- structure(list(observations = list(structure(list(type = "ob_type_1", data = structure(list(dynamic = structure(list(sensor = list( structure(list(timestamp = 552625694285098, = 1.4921862, b = 8.613739), .names = c("timestamp", "a", "b")), structure(list(timestamp = 552625699285098, = 0.6907272, b = 7.6243353), .names = c("timestamp", "a", "b")))), .names = "sensor"), static = structure(list(class1 = "abc", class2 = "xyz"), .names = c("class1", "class2"))), .names = c("dynamic", "static"))), .names = c("type", "data")))), .names = "observations") i melt using reshape2:
library(reshape2) reshape_json <- melt(raw_json) the value column displays '1' , '2' 'class1' , 'class2'. these 'abc' , 'xyz'. how can achieve this? i've experimented jsonlite in past struggled correct output when json file had nested arrays.
value l7 l6 l5 l4 l3 l2 l1 1 ob_type_1 <na> na <na> <na> type 1 observations 2 552625694285098 timestamp 1 sensor dynamic data 1 observations 3 1.4921862 1 sensor dynamic data 1 observations 4 8.613739 b 1 sensor dynamic data 1 observations 5 552625699285098 timestamp 2 sensor dynamic data 1 observations 6 0.6907272 2 sensor dynamic data 1 observations 7 7.6243353 b 2 sensor dynamic data 1 observations 8 1 <na> na class1 static data 1 observations 9 2 <na> na class2 static data 1 observations
options(stringsasfactors = false)
Comments
Post a Comment