私は数のベクトルの番号を持っています。ベクトルのおおよその値を求める
test <- 0.495
vector <- c(0.5715122, 2.2860487, 5.1436096, 9.1441949)
このベクターは、およそ数を0.495にする必要があります。 私を助けてください。
私は数のベクトルの番号を持っています。ベクトルのおおよその値を求める
test <- 0.495
vector <- c(0.5715122, 2.2860487, 5.1436096, 9.1441949)
このベクターは、およそ数を0.495にする必要があります。 私を助けてください。
私が正しく理解していれば、test
の値に最も近いベクトルから値を抽出する必要があります。 2つの異なる値が最も近いことができれば
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")
に基づいて選択します。
私は、 'which.min'(これほど都合がよい)がこれらのタイプのジョブのための適切な関数であるかどうか疑問に思ってきました。 2つの値がテスト値から絶対距離が離れている場合はどうなりますか?(big __if__)どうして '(==分(...))'? – bouncyball
@bouncyball次に、浮動小数点精度を考慮する必要があります。あなたは 'ベクトル[which(abs(ベクトルテスト) - min(abs(ベクトルテスト)]
あなたの答えにそれを含め、説明してくれてありがとう。 – bouncyball
少し明確にする必要があるものを定義してください。ベクトル内でテスト値に最も近い数値を見つける必要がありますか? – bouncyball
@SergeyOrlov私はあなたのアバターの絵が気持ちが悪く、不快であると感じます。 – Roland