具有给定阈值的聚类值
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
我有几个向量:
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