Как преобразовать список с тем же типом поля в data.frame в R - PullRequest
0 голосов
/ 16 мая 2018

У меня есть list, и поле внутри каждого элемента списка имеет одно и то же имя (отличаются только значения), и мне нужно преобразовать его в data.frame с именем столбца, которое совпадает с именем поля.Ниже приведен мой список,

Ввод данных (ввод данных в формате json.json)

library(rjson)
data <- fromJSON(file = "data input in json format.json")
head(data,3)
[[1]]
[[1]]$floors
[1] 5

[[1]]$elevation
[1] 15

[[1]]$bmi
[1] 23.7483


[[2]]
[[2]]$floors
[1] 4

[[2]]$elevation
[1] 12

[[2]]$bmi
[1] 23.764


[[3]]
[[3]]$floors
[1] 3

[[3]]$elevation
[1] 9

[[3]]$bmi
[1] 23.7797

И мой ожидаемый data.frame равен

floors elevation     bmi
     5        15 23.7483
     4        12 23.7640
     3         9 23.7797

Можете ли вы помочь мне выяснить это?Заранее благодарим.

1 Ответ

0 голосов
/ 16 мая 2018

Вы можете использовать jsonlite.

library(jsonlite)

Затем используйте fromJSON() и укажите путь к вашему файлу (или, альтернативно, URL или необработанный текст) в аргументе txt:

fromJSON(txt = 'path/to/json/file.json')

Результат:

     floors elevation     bmi
1         5        15 23.7483
2         4        12 23.7640
3         3         9 23.7797

Если вы предпочитаете rjson, вы можете сначала прочитать его как раньше:

data <- rjson::fromJSON(file = 'path/to/json/file.json')

Затем используйте do.call() и rbind.data.frame() для преобразования списка в фрейм данных:

do.call("rbind.data.frame", data)

В качестве альтернативы do.call(): используйте data.table s rbindlist(), что быстрее:

data.table::rbindlist(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...