gpt4 book ai didi

r - 查找(并返回)满足(逻辑)测试的列表的第一个元素

转载 作者:行者123 更新时间:2023-12-04 11:14:41 25 4
gpt4 key购买 nike

举个例子,我有一个很大的各种长度(和一些 NULL)的向量列表,我想找到第一个包含两个元素的列表元素。就像在 this 帖子中一样,我知道对于列表,您可以通过使用 sapply() 并对第一个结果进行子集化来使用类似的方法。由于上面使用 match() 链接的帖子中的解决方案在这种情况下不起作用,我很好奇是否有更优雅(并且计算效率更高)的方法来实现这一点。

一个可复制的例子

# some example data
x <- list(NULL, NULL, NA, rep("foo", 6), c("we want", "this one"),
c(letters[1:10]), c("foo", "bar"), NULL)
x

# find the first element of length 2 using sapply and sub-setting to result #1
x[sapply(x, FUN=function(i) {length(i)==2})][[1]]

或者,就像@Josh O'Brien 对 this post 的回答一样,
# get the index of the first element of length 2
seq_along(x)[sapply(x, FUN=function(i) {length(i)==2})]

有什么想法或想法吗?

最佳答案

你想要这个吗?

Find(function(i) length(i) == 2, x) # [1] "we want"  "this one"
Position(function(i) length(i) == 2, x) # [1] 5

关于r - 查找(并返回)满足(逻辑)测试的列表的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25100688/

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