将具有各种长度向量的列表转换为R中的data.frame的最简单方法 [英] The simplest way to convert a list with various length vectors to a data.frame in R

查看:319
本文介绍了将具有各种长度向量的列表转换为R中的data.frame的最简单方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这里,我有一个包含不同长度向量的列表.我想获取一个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.

参考:

  1. 组合(绑定)不同长度的向量

    推荐答案

    我们可以使用

    data.frame(lapply(aa, "length<-", max(lengths(aa))))
    

    这篇关于将具有各种长度向量的列表转换为R中的data.frame的最简单方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆