gpt4 book ai didi

r - 如何从R中的列表中提取元素及其索引

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

我想在删除长度为 0 的项目的同时提取 R 中的列表元素及其索引。假设我在 R 中有以下列表:

l1 <- character(0)
l2 <- c("a","b")
l3 <- c("c","d","e")
list1 <- list(l1, l1, l2, l1, l3)

然后 list1返回以下内容:
[[1]]
character(0)
[[2]]
character(0)
[[3]]
[1] "a" "b"
[[4]]
character(0)
[[5]]
[1] "c" "d" "e"

我想以某种方式提取一个对象,该对象显示每个非空元素的索引/位置,以及该元素的内容。所以看起来像这样:
[[3]]
[1] "a" "b"
[[5]]
[1] "c" "d" "e"

我最接近这样做的是删除空元素,但随后我丢失了剩余元素的原始索引/位置:
list2 <- list1[lapply(list1, length) > 0]
list2
[[1]]
[1] "a" "b"
[[2]]
[1] "c" "d" "e"

最佳答案

keep , 将保持与谓词匹配的元素。 negate(is_empty)创建一个返回 TRUE 的函数如果向量不为空。

library("purrr")


names(list1) <- seq_along(list1)
keep(list1, negate(is_empty))
#> $`3`
#> [1] "a" "b"
#>
#> $`5`
#> [1] "c" "d" "e"

关于r - 如何从R中的列表中提取元素及其索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48726998/

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