Tôi có tệp chứa hơn 1500 đối tượng json mà tôi muốn làm việc với R. Tôi có thể nhập dữ liệu dưới dạng danh sách, nhưng gặp sự cố khi nén dữ liệu vào cấu trúc hữu ích. Tôi muốn tạo một khung dữ liệu chứa một hàng cho mỗi đối tượng json và một cột cho mỗi cặp khóa: value.Nhập dữ liệu json đã nhập vào khung dữ liệu
tôi đã tái tạo hoàn cảnh của tôi với nhỏ, giả bộ dữ liệu này:
[{"name":"Doe, John","group":"Red","age (y)":24,"height (cm)":182,"wieght (kg)":74.8,"score":null},
{"name":"Doe, Jane","group":"Green","age (y)":30,"height (cm)":170,"wieght (kg)":70.1,"score":500},
{"name":"Smith, Joan","group":"Yellow","age (y)":41,"height (cm)":169,"wieght (kg)":60,"score":null},
{"name":"Brown, Sam","group":"Green","age (y)":22,"height (cm)":183,"wieght (kg)":75,"score":865},
{"name":"Jones, Larry","group":"Green","age (y)":31,"height (cm)":178,"wieght (kg)":83.9,"score":221},
{"name":"Murray, Seth","group":"Red","age (y)":35,"height (cm)":172,"wieght (kg)":76.2,"score":413},
{"name":"Doe, Jane","group":"Yellow","age (y)":22,"height (cm)":164,"wieght (kg)":68,"score":902}]
Một số tính năng của dữ liệu:
- Các đối tượng tất cả đều chứa cùng một số chính: cặp giá trị mặc dù một số giá trị là null
- Có hai cột không phải là số cho mỗi đối tượng (tên và nhóm)
- tên là số nhận dạng duy nhất ier, có 10 hoặc nhiều nhóm
- nhiều tên và nhóm entires chứa dấu cách, dấu phẩy và dấu chấm câu khác.
Dựa trên câu hỏi này: R list(structure(list())) to data frame, tôi thử như sau:
json_file <- "test.json"
json_data <- fromJSON(json_file)
asFrame <- do.call("rbind.fill", lapply(json_data, as.data.frame))
Với cả hai dữ liệu thực tế và dữ liệu giả mạo này, dòng cuối cùng cho tôi lỗi này:
Error in data.frame(name = "Doe, John", group = "Red", `age (y)` = 24, :
arguments imply differing number of rows: 1, 0
Tôi ngạc nhiên là không có chức năng tốt hơn để làm điều này. (đối với XML có các hàm như XMLtoDataFrame) nên JSONtoDataFrame sẽ là tuyệt vời – userJT
@userJT - có 'jsonlite :: fromJSON' - xử lý các NULL và đơn giản hóa thành' data.frame'. Xem [câu trả lời của tôi] (http://stackoverflow.com/a/37739735/5977215) – SymbolixAU
điều này chuyển đổi json_file thành ma trận, không phải là một khung dữ liệu. Làm thế nào để có được một data.frame? – TSR