Tôi gặp sự cố với JSON lồng nhau rất khó chịu.Phân tích cú pháp lồng nhau JSON vào Khung dữ liệu trong R
Cấu trúc của nó như thế này
{
"matches": [
{
"matchId": 1,
"region": "BR",
"participants": [
{
"participantId": 0,
"teamId": 200,
"stats": {
"winner": true,
"champLevel": 16,
"item0": 3128,
}
{
"matchId": 2,
"region": "BR",
"participants": [
{
"participantId": 0,
"teamId": 201,
"stats": {
"winner": false,
"champLevel": 18,
"item0": 3128,
"item1": 3157,
"item1": 3158,
}
Như bạn có thể thấy trong trận đấu thứ hai số lượng các mặt hàng tăng, nhưng trong khung dữ liệu hàng đầu tiên sẽ có cơ collumns cùng:
MatchId region ... stats.winner stats.champLevel stats.item0 stats.item1 stats.item2
1 BR TRUE 16 3128 1 BR
1 BR TRUE 16 3128 3157 3158
Xem hàng đầu tiên nhỏ hơn số thứ hai, vì vậy R tái chế các giá trị ....
Nếu bạn muốn có đầy đủ dữ liệu bạn có thể lấy tại: http://pastebin.com/HQDf2ase
Làm thế nào tôi phân tích các json để data.frame:
ngừng công bố các yếu tố của Json và chuyển nó sang một khung dữ liệu
matchData.i <- lapply(json.matchData$matches, function(x){ unlist(x)})
Chuyển đổi thành dữ liệu Khung
matchData <- do.call("rbind", matchData.i)
matchData <- as.data.frame(matchData)
Nhưng khung dữ liệu bị sai lệch, vì một số trường phải là NA nhưng chúng được điền bằng wron g giá trị.