распаковка списка внутри списка, внутри списка, внутри списка ... при сохранении идентификатора в R - PullRequest
0 голосов
/ 15 апреля 2020

Я импортировал файл JSON со следующей структурой: ссылка

Я хотел бы преобразовать его в кадр данных с 3 столбцами: ID group_name date_joined, где ID - это номер элемента из списка «data».

Он должен выглядеть следующим образом:

ID  group_name  date_joined
1   aaa     dttm
1   bbb     dttm
1   ccc     dttm
1   ddd     dttm
2   eee     dttm
2   aaa     dttm
2   bbb     dttm
2   fff     dttm
2   ggg     dttm
3   bbb     dttm
3   ccc     dttm
3   ggg     dttm
3   mmm     dttm

Используя несколько раз приведенный ниже код, я получаю фрейм данных с двумя столбцами: group_name и date_joined

train2 <- do.call("rbind", train2)

образец файла ссылка

1 Ответ

0 голосов
/ 15 апреля 2020

должно работать следующее:

library(jsonlite)

train2 <- fromJSON("sample.json") 
train2 <- train2[[1]]$groups$data    

df <- data.frame(
      ID = unlist(lapply(1:length(train2), function(x) rep.int(x,length(train2[[x]]$group_name)))),
      group_name = unlist(lapply(1:length(train2),function(x) train2[[x]]$group_name)),
      date_joined = unlist(lapply(1:length(train2),function(x) train2[[x]]$date_joined)))

вывод:

> df
   ID                                                                            group_name                date_joined
1   1 Let's excercise together and lose a few kilo quicker - everyone is welcome! (Piastow) 2008-09-05 09:55:18.730066
2   1                                                                 Strongman competition 2008-05-22 21:25:22.572365
3   1                                                                      Fast food 4 life 2012-02-02 05:26:01.293628
4   1                                 alternative medicine - Hypnosis and bioenergotheraphy 2008-07-05 05:47:12.254848
5   2                                                                      Tom Cruise group 2009-06-14 16:48:28.606142
6   2                                                                  Babysitters (Sokoka) 2010-09-25 03:21:01.944684
7   2           Work abroad - join to find well paid work and enjoy the experience (Sokoka) 2010-09-21 23:44:39.499240
8   2       Tennis, Squash, Badminton, table tennis - looking for sparring partner (Sokoka) 2007-10-09 17:15:13.896508
9   2                                                                  Lost&Found  (Sokoka) 2007-01-03 04:49:01.499555
10  3                                                         Polish wildlife - best places 2007-07-29 18:15:49.603727
11  3                                                              Politics and politicians 2010-10-03 21:00:27.154597
12  3                                                                 Pizza ! Best recipes  2010-08-25 22:26:48.331266
13  3                                            Animal rights group - join us if you care! 2010-11-02 12:41:37.753989
14  4                                                                   The Aspiring Writer 2009-09-08 15:49:57.132171
15  4                                                              Nutrition & food advices 2010-12-02 18:19:30.887307
16  4                                                                       Game of thrones 2009-09-18 10:00:16.190795
17  5                                                  The ultimate house and electro group 2008-01-02 14:57:39.269135
18  5                                                              Pirates of the Carribean 2012-03-05 03:28:37.972484
19  5                                                 Musicians Available Poland (Osieczna) 2009-12-21 13:48:10.887986
20  5                 Housekeeping - looking for a housekeeper ? Join the group! (Osieczna) 2008-10-28 23:22:26.159789
21  5                                                             Rooms for rent (Osieczna) 2012-08-09 12:14:34.190438
22  5                                                   Counter strike - global ladderboard 2008-11-28 03:33:43.272435
23  5                                                              Nutrition & food advices 2011-02-08 19:38:58.932003
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...