首页 > 解决方案 > 将列表列表转换为列表的数据框,其中子列表具有不同的行数

问题描述

我正在尝试将列表列表转换为列表的数据框。但是,子列表具有相同的列数,但“行数不同”。当我运行命令 as.data.frame(parent_list) 时,它会生成:“(函数中的错误(...,row.names = NULL,check.rows = FALSE,check.names = TRUE,:参数暗示不同的数字行数”错误。如何将其转换为数据帧列表,每个帧具有不同的行数?我尝试了使用不同线程的解决方案,但没有运气。任何帮助将不胜感激。这是一个示例代码:

# making a list of 2 sub lists with different number of elements.
list <- list(A = c(1,2,3), B = c(1,2)) 

# trying to convert sub lists into data frames. 
list_to_dataframe <- as.data.frame(list) 
#> Error: "Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, 
#> : arguments imply differing number of rows: 3, 2"

谢谢!

标签: r

解决方案


您可以简单地使用该rbind函数来获取数据框,但正如上面所建议的,您的列表包含两个长度不等的向量,因此您将获得所需的结果并发出警告:

list <- list(A = c(1,2,3), B = c(1,2)) 

# sub lists into data frames. 
do.call(rbind, list)

输出:

  [,1] [,2] [,3]
A    1    2    3
B    1    2    1

警告消息:在 (function (..., deparse.level = 1) : 结果的列数不是向量长度的倍数 (arg 2)


推荐阅读