0

ネストされた繰り返しフィールドを持つ Big Query から JSON 抽出をダウンロードし (パッケージbigrqueryに似ています)、結果の tibble をさらに操作しようとしています。

JSONからロードしてティブルに変換する次のコードがあります

library(tidyverse)
ga.list <- lapply(readLines("temp.json"), jsonlite::fromJSON, flatten = TRUE)
ga.df <- tibble(dat = ga.list) %>% 
    unnest_wider(dat) %>% 
    mutate(id = row_number()) %>%
         unnest_wider(b_nested) %>%
         unnest_wider(b3) %>% 
         unnest_wider(b33)

そのため、2 つのリスト列がありました。

  1. b_nested、この列はネストされたリストです(再帰的にネストを解除しました..もっと自動化された方法があるかもしれません。そうであれば、アドバイスしてください!
  2. rr1 と rr2 の場合、これらの列には常に同じ数の要素が含まれます。したがって、rr1 と rr2 の要素 1 は一緒に読み取る必要があります。

ID、rr1、および rr2 を抽出し、ID 行ごとに行が繰り返される長いテーブルを作成する方法をまだ検討中です。

注:この質問は、さらに進むにつれて数回編集されました..最初は、見つけるまでJSONからtibbleに取得するのに行き詰まっていましたunnest_wider()

temp.json :

{"a":"4000","b_nested":{"b1":"(未設定)","b2":"some - text","b3":{"b31":"1591558980","b32 ":"60259425255","b33":{"b3311":"133997175"},"b4":false},"b5":true},"rr1":[],"rr2":[]} {" a":"4000","b_nested":{"b1":"asdfasdfa","b2":"some - text more","b3":{"b31":"11111","b32":"2222 ","b33":{"b3311":"3333333"},"b4":true},"b5":true}, "rr1":["v1","v2","v3"],"rr2 ":["x1","x2","x3"]} {"a":"6000","b_nested":{"b1":"asdfasdfa","b2":"some - text more","b3":{"b31":"11111","b32":"2222","b33":{" b3311":"3333333"},"b4":true},"b5":true},"rr1":["v1","v2","v3","v4","v5"],"rr2 ":["aja1","aja2","aja3","aja14","aja5"]}rr2":["aja1","aja2","aja3","aja14","aja5"]}rr2":["aja1","aja2","aja3","aja14","aja5"]}

4

1 に答える 1