соответствующий идентификатор при расширении списка векторов до data.frame - PullRequest
0 голосов
/ 29 октября 2018

У меня есть фрейм данных, который состоит из идентификатора и столбца, содержащего список векторов для каждой строки. Так вроде как, за исключением того, что для простоты я поместил «список векторов» в столбец:

   id           lists
1 123 list of vectors
2 345 list of vectors
3 456 list of vectors
4 789 list of vectors

После развертывания каждого списка в data.frame и добавления, результат столбца списков в data.frame выглядит следующим образом:

  att1 att2 run
1  600   43   a
2  500   34   b
3  300   54   a
4  300   34   b
5  250   34   a
6  360   34   b
7  700   23   a
8  750   12   b

Что я хотел бы сделать, так это включить первый столбец с идентификатором, которому принадлежит каждая строка. В этом случае у каждого идентификатора должно быть два запуска, поэтому я знаю, что могу сделать rep (dt [, 1], each = 2), чтобы получить это:

   id att1 att2 run
1 123  600   43   a
2 123  500   34   b
3 345  300   54   a
4 345  300   34   b
5 456  250   34   a
6 456  360   34   b
7 789  700   23   a
8 789  750   12   b

но я бы действительно хотел лучший способ сделать это в случае, когда пробеги меняются для каждого идентификатора. (3 работает для одного идентификатора, 7 работает для другого и т. Д.)

1 Ответ

0 голосов
/ 29 октября 2018

Не понятно про структуру. Предполагая, что lists является list из list с, тогда

library(tidyverse)
df1 %>% 
  pull(lists) %>%
  set_names(df1$id) %>%
  map_df(data.frame, .id = 'id')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...