gpt4 book ai didi

r - 如何过滤R中的列表

转载 作者:行者123 更新时间:2023-12-05 08:22:49 25 4
gpt4 key购买 nike

我有一个要过滤的列表。

[[100]][[1]]$total
[1] 7


[[100]][[2]]
[1] 7

[[100]][[3]]
[1] 25082.66

这是我从我的脚本中得到的输出,我试图从这个列表中过滤所有元素,其中 total = 7。我总共有 100 个元素。

我的列表被标记为排序

 A<-(list.filter(sorts,total>6)) 

我想要一个只有元素总数为 7 的列表

最佳答案

我们可以从每个列表中提取 "total" 元素,并只选择其中包含 7 的元素。

lst[sapply(lst, "[[", "total") == 7]

#[[1]]
#[[1]]$total
#[1] 7

#[[1]][[2]]
#[1] 2

#[[1]][[3]]
#[1] 2


#[[2]]
#[[2]]$total
#[1] 7

#[[2]][[2]]
#[1] 2

#[[2]][[3]]
#[1] 2

或者我们也可以使用Filter

Filter(function(x) x[["total"]] == 7, lst)

使用purrr我们可以使用keep/discard

library(purrr)
keep(lst, ~.[["total"]] == 7)

discard(lst, ~.[["total"]] != 7)

或者map_lgl

lst[map_lgl(lst, ~.[["total"]] == 7)]

数据

假设您的列表名为 lst 并且如下所示

lst <- list(list(total = 100, 1, 2), list(total = 7, 2, 2), 
list(total = 7, 2, 2), list(total = 71, 2, 2))

关于r - 如何过滤R中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57239326/

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