gpt4 book ai didi

R:替换嵌套列表中的值

转载 作者:行者123 更新时间:2023-12-04 07:52:54 28 4
gpt4 key购买 nike

假设我们有一个嵌套列表:

test <- list(
list(a = 1, b = 2, c = NULL),
list(a = NULL, b = 2, c = 3))

如何更换所有 NULL值,例如 NA保留数据的结构?这样当我尝试从列表中删除数据框时,我不会最终丢失值/结构。如:
data.frame(matrix(unlist(test), nrow = 2, byrow = T))

X1 X2
1 1 2
2 2 3

所需的输出类似于:
   X1 X2 X3
1 1 2 NA
2 NA 2 3

有一些建议可以这样做:
rbind.fill(lapply(test, function(f) {
as.data.frame(Filter(Negate(is.null), f))
}))

这并不像我想要的那样矢量化。显然,尺寸和性能是一个问题。想到的一种解决方法是类似地替换所有 NULL 值,因为它可以一次对整个数据帧完成。然后 unlist()matrix()列表。

我不确定性能上的 yield (如果有的话)。也许好老 lapply()不是那么糟糕。

最佳答案

我们可以使用 stri_list2matrix

library(stringi)
m1 <- matrix(as.numeric(t(sapply(test, stri_list2matrix))), ncol=3)
m1
# [,1] [,2] [,3]
#[1,] 1 2 NA
#[2,] NA 2 3

这可以转换为 data.frame
as.data.frame(m1)

关于R:替换嵌套列表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29427922/

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