如何将键值对嵌套列表高效转换为R DataFrame?
问题:将API返回的嵌套列表高效转换为数据框
我处理的是Web API返回的结果,数据结构和常见的列表转数据框场景不同,示例如下:
listOfListsOfKeyVals <- lapply(1:5, function(i){ list( col1 = i, col2 = runif(1) ) })
一开始尝试用常规方法转换:
do.call(rbind, listOfListsOfKeyVals)
但仔细查看结果会发现,得到的是列类型为列表的数据框,用tibble()转换后问题更明显:
do.call(rbind, listOfListsOfKeyVals) |> tibble() # A tibble: 5 × 1 `do.call(rbind, listOfListsOfKeyVals)`[,"col1"] [,"col2"] <list> <list> 1 <int [1]> <dbl [1]> 2 <int [1]> <dbl [1]> 3 <int [1]> <dbl [1]> 4 <int [1]> <dbl [1]> 5 <int [1]> <dbl [1]>
我自己写了一个解决方案,但处理大数据集时速度极慢:
foreach(x = listOfListsOfKeyVals, .combine = rbind) %do% { as.data.frame(x) } |> tibble()
请问有没有更高效的转换方法?
内容的提问来源于stack exchange,提问作者Chechy Levas
相关产品推荐
相关产品推荐

