Преобразование кадра данных из списков в продольные данные в R

Я пытаюсь изменить данные, которые у меня есть, во фрейме данных для продольного анализа. Во-первых, вот воспроизводимый пример (хотя и не самый элегантный, я все еще учусь):

# reproducible example
time <- c(199801, 199802)
id <- list(jan=c("Allianz", "Adidas", "Continental"), feb=c("Allianz", "Adidas", "BMW", "Continental"))
indeg <- list(jan=c(0,0,1), feb=c(0,0,2,4))
example <- data.frame(time = unique(time))
example$id <- id
example$indeg <- indeg
example$dax <- c(1,0)

Как вы можете видеть, у меня есть уникальные моменты времени (время), одна переменная, которая останется истинной для всех наблюдений (dax), а затем некоторые из них мне нужно как-то "отменить" (id и indeg). На самом деле данные содержат 180 временных точек и еще несколько переменных в том же формате. Вот как я хочу, чтобы данные выглядели позже:

time2 <- c(199801, 199801, 199801, 199802, 199802, 199802, 199802)
example2 <- data.frame(time2)
example2$id <- c("Allianz", "Adidas", "Continental", "Allianz", "Adidas", "BMW", "Continental")
example2$indeg <- c(0,0,1,0,0,2,4)
example2$dax <- c(1,1,1,0,0,0,0)

Я посмотрел в untable а также reshape Функция R, но не очень понял, как использовать их на моих данных. Похоже, что частью решения было бы сгладить списки с помощью example$id <- vapply(example$id, paste, collapse = ", ", character(1L)) до изменения формы?

Поскольку я новичок в продольном анализе и относительно новичок в R, я регулярно зацикливаюсь на этих, казалось бы, тривиальных процедурах. Любой толчок в правильном направлении будет принята с благодарностью.

Я знаю, что было много вопросов по изменению формы, но я не смог найти ни одного, который имел бы дело со списками в строках (возможно, потому что я еще не слишком знаком с терминологией).

0 ответов

Другие вопросы по тегам