【发布时间】:2017-01-07 22:17:13
【问题描述】:
我有一个向量,一个只有一列的数据框,其中包含不均匀长度的列表:
data = list(
c(349, 364, 393, 356, 357, 394, 334, 394, 343, 365, 349),
c(390, 336, 752, 377),
c(670, 757, 405, 343, 1109, 350, 372),
c(0, 0),
c(),
c(1115, 394, 327, 356, 408, 329, 385, 357, 357))
我想将其转换为矩阵,用NA 填补空白。
所以它应该看起来像这样:
349, 364, 393, 356, 357, 394, 334, 394, 343, 365, 349
390, 336, 752, 377, NA, NA, NA, NA, NA, NA, NA
670, 757, 405, 343, 1109,350, 372, NA, NA, NA, NA
0, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA
1115,394, 327, 356, 408, 329, 385, 357, 357, NA, NA
最终,甚至摆脱了只有NAs 的行。我试过了
data = sapply(data[,1], FUN=unlist)
然后
data = sapply(data, '[', seq(max(sapply(data, length))))
但我不断得到一个矩阵,其中所有未列出的元素在一列中。请指教。
【问题讨论】:
-
您的
data出现错误。请检查错字。你的意思是list而不是as.vector -
是的,对不起。现已更正。它实际上是由
aggregate函数产生的一列数据框 -
可能,您在
aggregate到listunique元素中使用了list作为FUN。 -
不,我实际上在
aggregate中使用了FUN=diff以获取具有相同标识符的连续行之间的时间差