У меня есть файл, содержащий более 1500 объектов json, с которыми я хочу работать в R. Я смог импортировать данные в виде списка, но у меня проблемы с его использованием в полезную структуру. Я хочу создать кадр данных, содержащий строку для каждого объекта json, и столбец для каждой пары ключ: значение.
Я обновил свою ситуацию с помощью этого небольшого поддельного набора данных:
[{"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}]
Некоторые особенности данных:
- Все объекты содержат одинаковое количество ключей: пары значений, хотя некоторые значения имеют значение null
- Есть два нечисловых столбца для каждого объекта (имя и группа)
- имя - это уникальный идентификатор, 10 или около того групп
- многие имена и группы содержат пробелы, запятые и другие знаки препинания.
Исходя из этого вопроса: R list (structure (list())) к кадру данных, я пробовал следующее:
json_file <- "test.json"
json_data <- fromJSON(json_file)
asFrame <- do.call("rbind.fill", lapply(json_data, as.data.frame))
Как с моими реальными данными, так и с этими поддельными данными, последняя строка дает мне эту ошибку:
Error in data.frame(name = "Doe, John", group = "Red", `age (y)` = 24, :
arguments imply differing number of rows: 1, 0