R удалить элемент из списка - PullRequest
0 голосов
/ 03 ноября 2018

Как мне удалить элемент из списка в 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 голосов
/ 03 ноября 2018

Просто используйте [], а не [[]]

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

Создано в 2018-11-03 пакетом Представления (v0.2.1)

Таким образом, вы можете выбрать элемент списка с логическим вектором, а не с содержимым (которое является [[]]

0 голосов
/ 03 ноября 2018

Ты имеешь в виду это?

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