我遇到了一个简单的任务,我真的希望有人可以帮我解决这个问题。
我有一个值相互接近的向量,两者之间有明显的间隙。我需要的是这个向量最小化到一个矢量,其中包含所有高密度系列的每个第一个值。
示例:
original_vector <- c(0.001,0.002,0.003,0.004,0.1001,0.1002,0.1003,0.1004,0.1005,
0.5003,0.5004)
wanted_vector <- c(0.001,0.1001,0.5003)
有人知道如何将原始矢量转换为所需的矢量吗?
提前致谢!
答案 0 :(得分:1)
您当然首先需要定义您认为低密度和高密度的东西。
假设您可以决定连续元素tol
之间的截止距离,在此之下,两个连续元素被认为是密集的,您可以使用以下内容:
f <- function(x, tol) {
x[tol < diff(c(-Inf, x))]
}
original_vector <- c(0.001,0.002,0.003,0.004,0.1001,0.1002,0.1003,0.1004,0.1005,
0.5003,0.5004)
f(original_vector, tol = 0.002)
# [1] 0.0010 0.1001 0.5003