gpt4 book ai didi

r - 遍历列表中的列表的程序

转载 作者:行者123 更新时间:2023-12-04 08:59:52 27 4
gpt4 key购买 nike

我有一个列表,其中包含许多包含字符向量的列表。列表总是这样排列的,第一个列表包含一个具有单个元素的向量,第二个列表包含一个包含两个元素的向量,第三个列表包含一个或多个包含三个元素的向量。

fruits <- list(
list(c("orange")),
list(c("pear", "orange")),
list(c("orange", "pear", "grape"),
c("orange", "lemon", "pear"))
)
我需要遍历列表以从上一个列表中的向量中删除元素。即我会首先从第一个列表中的向量中找到值('orange')并将其从第二个列表中的向量中删除,然后从第二个列表中获取值(“pear”、“orange”)并删除它们来自第三个列表中的两个向量,所以我最终得到:
new_fruits <- list(
list(c("orange")),
list(c("pear")),
list(c("grape"),
c("lemon"))
)
我应该补充一点,我已经尝试这样做了,但是我发现列表中的列表使它变得非常复杂,而且我的解决方案很长而且效率不高。

最佳答案

也许你可以试试下面的代码

new_fruits <- s <- c()
for (k in seq_along(fruits)) {
new_fruits[[k]] <- lapply(fruits[[k]],function(x) x[!x%in%s])
s <- union(s,unlist(fruits[[k]]))
}
这使
> new_fruits
[[1]]
[[1]][[1]]
[1] "orange"


[[2]]
[[2]][[1]]
[1] "pear"


[[3]]
[[3]][[1]]
[1] "grape"

[[3]][[2]]
[1] "lemon"

关于r - 遍历列表中的列表的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63612963/

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