如何将列表转换为查找 table

How to transform a list into a lookup table

我有一个类似于以下代码段的列表输出:

[[1]]
[1] 109

[[2]]
integer(0)

[[3]]
[1] 80

有没有办法把它转换成这种格式?

C1   C2
1    109
2    0 (or NA)
3    80

不知道从哪里开始...如果我取消列出它,我注意到我失去了我的整数 (0) 位置,这对我来说很重要。

种类

L = list(109,integer(0),80)
sapply(L, '[', 1:1) #OR sapply(L, function(a) a[1])
#[1] 109  NA  80

#If you need a data.frame

data.frame(cbind(1:length(L),lapply(L, '[', 1:1)))
#  X1  X2
#1  1 109
#2  2  NA
#3  3  80

使用 as.numeric 您可以将 integer(0) 保留为 NA

data.frame(C1 = seq(length(lst)), C2 = as.numeric(lst))

#  C1  C2
#1  1 109
#2  2  NA
#3  3  80

我们可以使用 stack

stack(setNames(lapply(lst, `length<-`, 1), seq_along(lst)))[2:1]