这里我有一个包含不同长度向量的列表。我想要一个数据框。我在 SO 中看到了很多关于它的帖子(请参阅参考文献),但它们都没有我预期的那么简单,因为这确实是数据预处理中的常见任务。谢谢。
这里最简单的意思是as.data.frame(aa)
如果有效的话。因此,R 基础包中的一个函数将会很棒。sapply(aa, "length<-", max(lengths(aa)))
实际上有四个功能。
一个例子如下所示。
Input:
aa <- list(A=c(1, 3, 4), B=c(3,5,7,7,8))
Output:
A B
1 3
3 5
4 7
NA 7
NA 8
A 和 B 是 data.frame 的名称。
一个答案是sapply(aa, '[', seq(max(sapply(aa, length))))
,但也很复杂。
ref:
如何将由不同长度的向量组成的列表转换为R中可用的数据框? https://stackoverflow.com/questions/15201305/how-to-convert-a-list-consisting-of-vector-of-different-lengths-to-a-usable-data
组合(cbind)不同长度的向量 https://stackoverflow.com/questions/5531471/combining-unequal-columns-in-r
我们可以用
data.frame(lapply(aa, "length<-", max(lengths(aa))))
或者使用tidyverse
library(dplyr)
library(tibble)
library(tidyr)
enframe(aa) %>%
unnest(value)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)