gpt4 book ai didi

r - 向下复制列表元素以填充 NA 列表元素

转载 作者:行者123 更新时间:2023-12-01 09:16:42 26 4
gpt4 key购买 nike

下面是我现在的代码

set.seed(20)
test_list <- list("1" = matrix(rnorm(100), 10, 10),
"2" = NA,
"3" = NA,
"4" = NA,
"5" = NA,
"6" = matrix(rnorm(100), 10, 10),
"7" = NA,
"8" = NA)

我想找到一种方法来复制不包含 NA 与先前元素内容的列表元素,以便填充每个列表元素。元素 1-5 将包含元素 1 和 6 中的矩阵-8 将包含元素 6 中的矩阵。我可以在不使用 NA 作为应该复制的元素的情况下设置这个问题(如果使用 NULL 或其他类似的东西有助于解决方案)。

提前感谢您的任何建议。

最佳答案

is.na 可以完全按照这里需要的方式处理“列表”:在 single 的情况下返回 TRUE NA:

is.na(test_list)
# 1 2 3 4 5 6 7 8
#FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE

is.na 的这种行为也使对“列表”的测试变得高效,因为它避免了检查任何具有 (length != 1) 的元素。

在此基础上构建 NA locf 功能:

cummax((!is.na(test_list)) * seq_along(test_list))
#1 2 3 4 5 6 7 8
#1 1 1 1 1 6 6 6

我们子集test_list:

test_list[cummax((!is.na(test_list)) * seq_along(test_list))]

关于r - 向下复制列表元素以填充 NA 列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42443386/

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