我正在尝试重塑数据框中的数据以进行纵向分析。首先,这是一个可重现的示例(虽然不是最优雅的示例,但我仍在学习):
# 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)
我研究了 R 的untable
andreshape
函数,但并不真正了解如何在我的数据上使用它们。似乎解决方案的一部分是通过example$id <- vapply(example$id, paste, collapse = ", ", character(1L))
在重塑之前使用来展平列表?
由于我既是纵向分析的新手,又是 R 的新手,我经常发现自己陷入了这些看似微不足道的程序中。任何朝着正确方向的推动将不胜感激。
我知道有很多关于重塑的问题,但我找不到任何处理行中列表的问题(可能是因为我还不太熟悉这些术语)。