gpt4 book ai didi

r - 将不同长度的列表组合成数据帧

转载 作者:行者123 更新时间:2023-12-02 09:20:49 25 4
gpt4 key购买 nike

我有像下面的 SampleData 这样的数据,其中有不同长度的列表,我想将它们合并到像下面的所需结果这样的数据框中。我尝试使用 qpcR 包中的 lapply 和 cbind.na (如下例所示),但由于某种原因,它不允许我将结果转换为数据帧。如果我只使用了两个列表和 cbind.na ,它将组合它们并将 NA 添加到末尾,就像我想要的那样,但是当我尝试在 lapply 中使用它时,它只会将它们保留为不同长度列表的列表。非常感谢任何提示。

SampleData<-list(list(1,2,3),list(1,2),list(3,4,6,7))

Desired Result:
structure(list(V1 = c(1, 2, 3, NA), V2 = c(1, 2, NA, NA), V3 = c(3,
4, 6, 7)), .Names = c("V1", "V2", "V3"), row.names = c(NA, -4L
), class = "data.frame")


Example Code:

lapply(SampleData,qpcR:::cbind.na)

最佳答案

这是一个修改后的版本,带有 length<-作业

setNames(do.call(cbind.data.frame, lapply(lapply(SampleData, unlist), 
`length<-`, max(lengths(SampleData)))), paste0("V", 1:3))
# V1 V2 V3
#1 1 1 3
#2 2 2 4
#3 3 NA 6
#4 NA NA 7

关于r - 将不同长度的列表组合成数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42774843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com