Расширить строки со списками в качестве наблюдений - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть следующий кадр:

df <- structure(list(returns = list(c(1,2,3,4,5,6), c(7,8,9,10,11,12)), indexId = c("a", "b")), class = "data.frame", row.names = 1:2)

Есть ли простой способ преобразовать это в обычный data.frame, чтобы он выглядел как:

Choice ppl
   1   a
   2   a
   3   a
   4   a
   5   a
   6   a
   7   b
   8   b
   9   b
  10   b
  11   b
  12   b

У меня есть решение с использованием For, но я ищу что-то попроще.

Вся помощь очень ценится!

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Или:

data.frame(choice = unlist(df$returns), ppl = rep(df$indexId, lapply(df$returns, length)))
0 голосов
/ 08 ноября 2018
df <- structure(list(returns = list(c(1,2,3,4,5,6), c(7,8,9,10,11,12)), 
                     indexId = c("a", "b")), class = "data.frame", row.names = 1:2)

library(tidyverse)

df %>% separate_rows()

#    returns indexId
# 1        1       a
# 2        2       a
# 3        3       a
# 4        4       a
# 5        5       a
# 6        6       a
# 7        7       b
# 8        8       b
# 9        9       b
# 10      10       b
# 11      11       b
# 12      12       b
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...