将字符串列表的列表转换为 R 中数字的数据框

Converting a list of lists of strings to a data frame of numbers in R

我有一个字符串列表列表如下:

> ll

[[1]]
[1] "2" "1"

[[2]]
character(0)

[[3]]
[1] "1"

[[4]]
[1] "1" "8"

最长列表的长度为 2,我想构建一个包含此列表中 2 列的数据框。还将列表中的每个项目转换为数字或字符(0)的 NA 的奖励积分。我尝试使用 mapply() 和 data.frame 转换为数据框并按如下方式填充 NA。

#  Find length of each list element
len = sapply(awards2, length)

#  Number of NAs to fill for column shorter than longest
len = 2 - len

df = data.frame(mapply( function(x,y) c( x , rep( NA , y ) ) , ll , len))

但是,我没有使用上面的代码得到一个包含 2 列(和 NA 作为填充符)的数据框。

感谢您的帮助。

我们可以使用 stringi 中的 stri_list2matrix。因为list个元素都是character个向量,所以用这个函数好像没问题

library(stringi)
t(stri_list2matrix(ll))
#     [,1] [,2]
#[1,] "2"  "1" 
#[2,] NA   NA  
#[3,] "1"  NA  
#[4,] "1"  "8" 

如果我们需要转换成data.frame,用as.data.frame

包裹起来