我有一些带数字的矢量。
test <- 0.495
vector <- c(0.5715122, 2.2860487, 5.1436096, 9.1441949)
此向量需要采用数字0.495的近似数字。 帮我。
答案 0 :(得分:1)
如果我理解正确,您希望从最接近test
值的矢量中提取值。
vector[which.min(abs(vector - test))]
#[1] 0.5715122
如果两个不同的值最接近,您可以这样做:
vector <- c(0.5715122, 2.2860487, 5.1436096, 9.1441949, 0.4184878)
tol <- sqrt(.Machine$double.eps)
vector[which(abs(vector - test) - min(abs(vector - test)) < tol)]
#[1] 0.5715122 0.4184878
tol
是一个考虑浮点精度的容差,通常根据help(".Machine")
选择。