gpt4 book ai didi

r - 在 R 中删除基于名称的列表列表

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

我有一个列表列表,想删除所有具有特定名称的列表(在下面的示例数据中称为垃圾); (更喜欢 tidyverse)。

#Example data
list1a <- c(1, 2, 3)
list2a <- c(4, 5, 6)
rubbish <- c(7, 8, 9)

list1b <- c(1, 2, 3)
rubbish <- c(4, 5, 6)
list3b <- c(7, 8, 9)

listA <- list(list1a, list2a, rubbish)
names(listA) <- c("list1a", "list2a", "rubbish")
listB <- list(list1b, rubbish, list3b)
names(listB) <- c("list1b", "rubbish", "list3b")
listAB <- list(listA, listB)
names(listAB) <- c("listA", "listB")
listAB

我试过:

new_list <- discard(listAB, .p = ~str_detect(.x,"rubbish"))

最佳答案

您可以使用 map 遍历列表和 discard 名称为 "rubbish" 的列表。

library(purrr)
map(listAB, ~discard(.x, names(.x) == 'rubbish'))
#Some other variations
#map(listAB, ~keep(.x, names(.x) != 'rubbish'))
#map(listAB, ~.x[names(.x) != 'rubbish'])

#$listA
#$listA$list1a
#[1] 1 2 3

#$listA$list2a
#[1] 4 5 6


#$listB
#$listB$list1b
#[1] 1 2 3

#$listB$list3b
#[1] 7 8 9

在基础 R 中,您可以使用 lapply :

lapply(listAB, function(x) x[names(x) != 'rubbish'])

关于r - 在 R 中删除基于名称的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63533428/

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