具有给定阈值的聚类值

Clustering values with given threshold

我有几个向量:

a <- c(1.1, 2.9, 3.9, 5.2)
b <- c(1.0, 1.9, 4.0, 5.1)
c <- c(0.9, 2.1, 3.1, 4.1, 5.0, 11.13)

它们可以有不同的长度。

我想以这样的方式组合它们以获得具有平均值的一般向量,如果在所有向量或它们的任何对中具有相似的含义;如果这个含义只在一个向量中,则具有初始含义。对于平均我想使用阈值 = 0.2.

我的解释可能有点混乱,但这是我想要获得的一般向量:

d <- c(1, 2, 3, 4, 5.1, 11.13)

我有大约 12 个向量,每个向量中有大约 2000 个值。

我很乐意提供任何帮助

似乎是聚类问题(按距离聚类)。您可以试试下面的代码

library(igraph)

v <- sort(c(a, b, c))

tapply(
    v,
    membership(components(graph_from_adjacency_matrix(as.matrix(dist(v)) <= 0.2 + sqrt(.Machine$double.eps)))),
    mean
)

这给出了

    1     2     3     4     5     6
 1.00  2.00  3.00  4.00  5.10 11.13