私は自分の目標を可能な限り最善の方法で説明しようとします。
2つのベクトルがあるとしましょう:
Teffs <- c(6000, 6100, 6200, ..., 7500)
Ls <- c(40, 41, 42, 43, 44, ..., 60)
ベクトル内のどの要素が点(6199、42.1)に最も近い値を与えるかを見つけたいと思います。TeffsのインデックスはLsのインデックスと同じである必要があります。そうでない場合、次のようなものを使用して各ベクトルに個別に簡単にインデックスを付けることができます。
values <- c(6199, 42.1)
indexa <- which.min(abs(Teffs - values[1]))
indexb <- which.min(abs(Ls - values[2]))
indexa
3
indexb
3
このシナリオでは、ベクトルの3番目の要素が目的の点に最も近い値を与えることは明らかです。しかし、それがもっと曖昧だったらどうなるでしょうか?最も近いインデックスを見つけたいポイントが(6200、62)または(6800、59)、さらには(6000、60)だった場合はどうなりますか?TeffsのインデックスがLsのインデックスと同じであることを維持しながら、これをどのように処理しますか?
スケールが異なるため(L、log10とTeff、線形)、これは機能するはずです。
Teff <- c(6000, 6100, 6200, 7500)
L <- c(40, 41, 42, 43)
dst <- sqrt((log10(Teff) - log10(6199))^2 + (L - 42.1)^2)
which.min(dst)
# [1] 3
これによりスケールが調整されますが、Lはlog10(Teff)の約10倍であるため、各変数の範囲は依然として問題になる可能性があります。それはL / 10の使用を示唆しているかもしれません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加