我有一个向量,一个只有一列的数据框,其中包含不均匀长度的列表:
Step-1 F1 = rank FINALORDER..
Step-2 Group BY A1; ie ID.
Step-3 F2 = foreach byid generate MAX(FINAL.rank_FINAL) AS mx, '31-Dec-99' as AVAIL_UNTIL1.
Step-4 F3 = join F1 by rank_FINALORDER with F2 by mx as left outer join.
Step-5 F4 generated the required column with (AVAIL_UNTIL1 is null)? F1::A3 : F2::AVAIL_UNTIL1 as AVAIL_UNTIL..
我希望将其转换为矩阵,填补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)
但我不断得到一个矩阵,其中所有元素都在一列中未列出。请指教。
答案 0 :(得分:4)
我想这些数据'应该是list
而不是vector
,然后代码才能正常工作
t(sapply(data, `length<-`, max(lengths(data))))
注意:lengths
是一个更快的选项(在最近的R版本中引入)取代sapply(data, length)
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),
numeric(0),
c(1115, 394, 327, 356, 408, 329, 385, 357, 357))