初めてのポスター、長い時間のlurker。穏やかな。中程度のRユーザー。私は必要なことをするためのより良い、機能的な方法があると確信していますが、私は洞察のない死を研究したように感じました。Rの中の既存のJSON構造にデータをマージするには?
データセットを既存のJSON構造にマージしようとしています。 JSONごとのレコードの行は、多くのシリアライズされたJSONリクエストの構造体です。
私は13個の変数であるデータに設定されたデータをロードし、空白のJSON構造を作成し、彼らが
library(jsonlite)
#### Map Column headers to their respective names in the JSON Structure
colnames(data) <- c("default.A",
"default.B",
"default.C",
"items.A",
"items.B.1",
"items.B.2",
"items.B.3",
"items.B.4",
)
JSON構造で表示する方法を一致させるために、列ヘッダーを変更します。これは、JSONリクエストを処理する必要がある形式です。シンプルなネスト構造。
sample <- '{
"default": {
"A": "",
"B": "",
"C": "",
},
"items": [{
"A": "",
"B": {
"1": "",
"2": "",
"3": "",
"4": "",
}
}]
}'
jsonstructure <- fromJSON(sample)
すべてをDFとして設定します。それらをマージします。ブランク
x <- as.data.frame(data)
y <- as.data.frame(jsonstructure)
Z <- merge(x, y, all = TRUE)
Z[is.na(Z)] <- ""
でNASに記入
jsonZ <- toJSON(unname(split(Z, 1:nrow(Z))), pretty=TRUE)
cat(jsonZ)
JSON
にあなたが
jsonliteパッケージに死んで設定されていない場合、あなたは試みることができる
[
[
{
"default.A": "",
"default.B": "1234567890",
"default.C": "",
"items.A": "1234567890",
"items.B.1": "1234",
"items.B.2": "1234",
"items.B.3": "1234",
"items.B.4": "1234",
}
],
[
{
"default.A": "",
"default.B": "0987654321",
"default.C": "",
"items.A": "0987654321",
"items.B.1": "4321",
"items.B.2": "4321",
"items.B.3": "4321",
"items.B.4": "4321",
}
]
]
ところで私は「NA」処理をしませんでしたが、あなた自身がそれを理解できると思います。 ;) – cryo111
私はこれを実験していましたが、いくつかの問題を抱えていました。 ループを実行すると、次のように表示されます。 '1のエラー:長さ0のnrow(データ):引数 ' あなたのコードをあなたの投稿から直接コピーして実行できます。 最後に、最終的な出力を見て、何らかの理由でJSON構造に詰め込まれているデータが、残りの値ではなくNA値を引用符で囲むことがあることがわかりました。 – p0wd3rd
ad error)あなたは 'data'を指定していませんが、これは' data.frame'であると仮定しています。ここで、各行は 'JSON'オブジェクトに変換されなければなりません。この場合、報告しているこのエラーは表示されません。あなたの実際の入力がどのようにフォーマットされているのかわかりませんが、あなたは 'jsonstructure [[mapping]]]
cryo111