R从列表中删除元素

时间:2018-11-03 13:20:37

标签: r list element

如何从R中的列表中删除元素? 想象一下这个工作流程:

# create list
my_list <- lapply(1:10, function(x) x)
# find which ones to exclude
my_list_boolean <- sapply(my_list, function(x) ifelse(x%%2>0,F,T))
# does not work like this!
my_list[[my_list_boolean]]

是否有一种解决方案,不必使用for循环并围绕我的语句创建一个大逻辑?

2 个答案:

答案 0 :(得分:1)

你是这个意思吗?

my_list[my_list_boolean]
#[[1]]
#[1] 2
#
#[[2]]
#[1] 4
#
#[[3]]
#[1] 6
#
#[[4]]
#[1] 8
#
#[[5]]
#[1] 10

答案 1 :(得分:1)

仅使用[]而不是[[]]

my_list <- lapply(1:10, function(x) x)
# find which ones to exclude
my_list_boolean <- sapply(my_list, function(x) ifelse(x%%2>0,F,T))
# does not work like this!
my_list[my_list_boolean]
#> [[1]]
#> [1] 2
#> 
#> [[2]]
#> [1] 4
#> 
#> [[3]]
#> [1] 6
#> 
#> [[4]]
#> [1] 8
#> 
#> [[5]]
#> [1] 10

reprex package(v0.2.1)于2018-11-03创建

因此,您可以选择具有逻辑向量而不是内容的列表元素(即[[]]