У меня есть столбец в кадре данных, полном формата JSON с переменной длиной в каждой строке

У меня есть столбец dataframe, содержащий формат JSON переменной длины (я имею в виду значения), я использовал - из функции JSON и проанализировал его, но он содержит несколько вложенных списков, и я не знаю, как отделить каждое значение в JSON до несколько столбцов ...

Values
{"ssdata":[{"v1":"-49.88","v2":"00.02"}],"sdata":[{"v3":"59","v4":"26.4","v5":"24.40","v6":"61.34"}]}
{"ssdata":[{"v1":"-49.76","v2":"00.00"}],"sdata":[{"v3":"60","v4":"26.4","v5":"24.40","v6":"62.13"}]}
{"ssdata":[{"v1":"-49.76","v2":"00.06"}],"sdata":[{"v3":"54","v4":"28.0","v5":"25.97","v6":"56.72"}]}
{"ssdata":[{"v1":"","v2":"","v3":"14"}],"sdata":[{"v4":"46.42","v5":"25.40"}]}
{"ssdata":[{"v1":"","v2":"","v3":"14"}],"sdata":[{"v4":"0.40","v5":"108.94"}]}

может ли кто-нибудь помочь, например, мне нужно каждое значение (т.е.) v1, v2, v3, v4 ... в столбцах separte ... например, есть способ сделать это в R .. действительно нужна помощь в этом ... !!

r,rjson,sql-server-json,

0

Ответов: 2


0

Как уже упоминалось @Gregor, вы можете попробовать jsonlite

library(jsonlite)
library(data.table)

df1 <- rbindlist(lapply(df$values, function(x) as.data.frame(fromJSON(x))), fill = T)

который дает

> df1
   ssdata.v1 ssdata.v2 sdata.v3 sdata.v4 sdata.v5 sdata.v6 ssdata.v3
1:    -49.88     00.02       59     26.4    24.40    61.34      <NA>
2:    -49.76     00.00       60     26.4    24.40    62.13      <NA>
3:    -49.76     00.06       54     28.0    25.97    56.72      <NA>
4:                         <NA>    46.42    25.40     <NA>        14
5:                         <NA>     0.40   108.94     <NA>        14


Пример данных:

df <- structure(list(values = c("{"ssdata":[{"v1":"-49.88","v2":"00.02"}],"sdata":[{"v3":"59","v4":"26.4","v5":"24.40","v6":"61.34"}]}", 
"{"ssdata":[{"v1":"-49.76","v2":"00.00"}],"sdata":[{"v3":"60","v4":"26.4","v5":"24.40","v6":"62.13"}]}", 
"{"ssdata":[{"v1":"-49.76","v2":"00.06"}],"sdata":[{"v3":"54","v4":"28.0","v5":"25.97","v6":"56.72"}]}", 
"{"ssdata":[{"v1":"","v2":"","v3":"14"}],"sdata":[{"v4":"46.42","v5":"25.40"}]}", 
"{"ssdata":[{"v1":"","v2":"","v3":"14"}],"sdata":[{"v4":"0.40","v5":"108.94"}]}"
)), .Names = "values", class = "data.frame", row.names = c(NA, 
-5L))

0

библиотека (jsonlite) (data.table)

df1 <- rbindlist (lapply (df $ values, function (x) as.data.frame (fromJSON (x))), fill = T)

г, rjson, SQL-сервера JSON,
Похожие вопросы