私は、製品識別子データを辞書のリストである文字列として含む識別子と呼ばれる列を持つデータフレームを持っています。私が達成したい何辞書のリストをフィールドとして持つRデータフレーム
test_data <- data.frame(
identifiers = c(
"[{\"type\":\"ISBN\",\"value\":\"9781231027073\"}]",
"[{\"type\":\"EAN\",\"value\":\"5055266202847\"},{\"type\":\"EAN\",\"value\":\"4053162095984\"}]"),
id = c(1,2), stringsAsFactors = FALSE)
> test_data
identifiers id
1 [{"type":"ISBN","value":"9781231027073"}] 1
2 [{"type":"EAN","value":"5055266202847"},{"type":"EAN","value":"4053162095984"}] 2
は次のとおりです。
output_test_data <- data.frame(
type = c("ISBN", "EAN", "EAN"),
value = c("9781231027073","5055266202847","4053162095984"),
id = c(1,2,2), stringsAsFactors = FALSE)
> output_test_data
type value id
1 ISBN 9781231027073 1
2 EAN 5055266202847 2
3 EAN 4053162095984 2
私は解決策になった最も近いjsonlite
からfomJSON関数を適用することです。
jsonlite::fromJSON(test_data$identifiers[1])
またはこのようなループを持つ:
for (i in test_data$identifiers) {
print(jsonlite::fromJSON(i))
}
私が苦労していますしかし:
1)それはすべての行に適用されます。 2)idに関する情報を元のデータから結果に保存します。
誰でもこれを助けることができますか?
チェックアウト 'lapply'(https://www.rdocumentation.org/packages/base/versions/3.4.1/topics/lapply)に関数を適用します複数の値 –