将具有各种长度向量的列表转换为R中的data.frame的最简单方法 [英] The simplest way to convert a list with various length vectors to a data.frame in R
问题描述
在这里,我有一个包含不同长度向量的列表.我想获取一个data.frame.我已经在SO中看到很多关于它的文章(请参阅参考资料),但是它们都不像我期望的那么简单,因为这实际上是数据预处理中的常见任务.谢谢.
Here I have a list with different length vectors. And I'd want to get a data.frame. I've seen lots of posts about it in SO (see ref), but none of them are as simple as I expected because this is really a common task in data preprocessing. Thank you.
最简单的意思是as.data.frame(aa)
(如果它可以工作的话).因此,R的基本程序包中的一个功能将非常出色. sapply(aa, "length<-", max(lengths(aa)))
实际上具有四个功能.
Here simplest means as.data.frame(aa)
if it works. So one function from the base package of R will be great. sapply(aa, "length<-", max(lengths(aa)))
has four functions actually.
下面显示一个示例.
输入:
aa <- list(A=c(1, 3, 4), B=c(3,5,7,7,8))
输出:
A B
1 3
3 5
4 7
NA 7
NA 8
A和B是data.frame的别名.
A and B are the colnames of the data.frame.
一个答案是sapply(aa, '[', seq(max(sapply(aa, length))))
,但这也很复杂.
One answer is sapply(aa, '[', seq(max(sapply(aa, length))))
, but it's also complex.
参考:
-
推荐答案
我们可以使用
data.frame(lapply(aa, "length<-", max(lengths(aa))))
这篇关于将具有各种长度向量的列表转换为R中的data.frame的最简单方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!