gpt4 book ai didi

删除向量的孤立元素

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

我有一个整数向量,我想通过消除“孤立”的组件来过滤它。
我所说的“孤立”是什么意思?那些不在其他组件的 4 邻域中的组件。
向量中的分量按顺序递增,没有重复。

例如,如果我有 c(1,2,3,8,15,16,17)那么我需要消除 8因为不在其他元素的 4 邻域中。

我试过申请

   for (p in 1:(length(index)-2))
if((index[p+1]>3+index[p])&(index[p+2]>3+index[p+1])){index[p+1]<-0}


index<-index[index!=0]

哪里 index是我感兴趣的向量,但逻辑条件存在一些问题。
你能给我一些提示吗?

提前致谢。

最佳答案

您可以通过组合 outer 来实现它和 colSums , IE。

x[colSums(abs(outer(x, x, `-`)) >= 4) == length(x)-1]
#[1] 8

为了消除这些值,我们可以这样做,
i1 <- colSums(outer(x, x, FUN = function(i, j) abs(i - j) >= 4)) == length(x) - 1
x[!i1]
#[1] 1 2 3 15 16 17

在哪里,
x <- c(1,2,3,8,15,16,17)

关于删除向量的孤立元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54862344/

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