0

さまざまな長さの JSON 形式 (つまり値) を含むデータフレーム列があり、fromJSON 関数を使用して解析しましたが、複数のネストされたリストが含まれており、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 ...が別々の列に必要なように、誰か助けてもらえますか... Rでそれを行う方法はありますか..??これについて本当に助けが必要です...!!

4

2 に答える 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))
于 2018-06-21T10:42:33.543 に答える