计算四个最近网格点的加权平均值

时间:2021-08-01 15:04:57

标签: r

我有一个名为 BC.table 的数据框,如下所示:

   Teff  logg M_div_H       U       B      V      R      I     J     H     K     L Lprime     M
 1: 2000  4.00    -0.1 -13.443 -11.390 -7.895 -4.464 -1.831 1.666 3.511 2.701 4.345  4.765 5.680
 2: 2000  4.50    -0.1 -13.402 -11.416 -7.896 -4.454 -1.794 1.664 3.503 2.728 4.352  4.772 5.687
 3: 2000  5.00    -0.1 -13.358 -11.428 -7.888 -4.431 -1.738 1.664 3.488 2.753 4.361  4.779 5.685
 4: 2000  5.50    -0.1 -13.220 -11.079 -7.377 -4.136 -1.483 1.656 3.418 2.759 4.355  4.753 5.638
 5: 2200  3.50    -0.1 -11.866  -9.557 -6.378 -3.612 -1.185 1.892 3.294 2.608 3.929  4.289 4.842
 6: 2200  4.50    -0.1 -11.845  -9.643 -6.348 -3.589 -1.132 1.874 3.310 2.648 3.947  4.305 4.939
 7: 2200  5.50    -0.1 -11.655  -9.615 -6.279 -3.508 -0.997 1.886 3.279 2.709 3.964  4.314 4.928
 8: 2500 -1.02    -0.1  -7.410  -7.624 -6.204 -3.854 -1.533 1.884 3.320 2.873 3.598  3.964 5.579
 9: 2500 -0.70    -0.1  -7.008  -7.222 -5.818 -3.618 -1.338 1.905 3.266 2.868 3.502  3.877 5.417
10: 2500 -0.29    -0.1  -6.526  -6.740 -5.357 -3.421 -1.215 1.927 3.216 2.870 3.396  3.781 5.247
11: 2500  5.50    -0.1  -9.518  -7.575 -5.010 -2.756 -0.511 1.959 3.057 2.642 3.472  3.756 4.265
12: 2800 -1.02    -0.1  -7.479  -7.386 -5.941 -3.716 -1.432 1.824 3.259 2.812 3.567  3.784 5.333
13: 2800 -0.70    -0.1  -7.125  -7.032 -5.596 -3.477 -1.231 1.822 3.218 2.813 3.479  3.717 5.229
14: 2800 -0.29    -0.1  -6.673  -6.580 -5.154 -3.166 -0.974 1.816 3.163 2.812 3.364  3.628 5.093
15: 2800  3.50    -0.1  -8.113  -6.258 -4.103 -2.209 -0.360 1.957 2.872 2.517 3.219  3.427 4.026
16: 2800  4.00    -0.1  -7.992  -6.099 -3.937 -2.076 -0.230 1.907 2.869 2.480 3.227  3.424 4.075
17: 2800  4.50    -0.1  -7.815  -6.051 -4.067 -2.176 -0.228 1.920 2.877 2.503 3.212  3.428 4.000
18: 2800  5.00    -0.1  -7.746  -6.018 -4.031 -2.144 -0.176 1.907 2.883 2.512 3.216  3.430 4.023
19: 3000 -0.70    -0.1  -7.396  -6.995 -5.605 -3.554 -1.293 1.787 3.172 2.759 3.474  3.588 5.052
20: 3000 -0.29    -0.1  -6.966  -6.565 -5.179 -3.249 -1.035 1.772 3.136 2.764 3.388  3.533 4.978

完整数据框: https://www.dropbox.com/s/prbceabxmd25etx/lcb98cor.dat?dl=0

例如,请注意每个 V 值如何具有唯一的 Teff, logg 组合。由于它们在两个不同的尺度上,我重新调整了:

BC.table %>% mutate(Teff.scale = rescale(Teff,Teff), logg.scale = rescale(logg,logg)) -> BC.table

现在,假设我有两个值:

input_Teff = 2300
input_log_g = 3.86

如果我们将所有 (Teff, logg) 组合想象成网格点,对于给定的输入点,我想找到最接近该输入点的四个点。

point 1 (Teff1, logg1)
point 2 (Teff2, logg2)
point 3 (Teff3, logg3)
point 4 (Teff4, logg4)

然后,通过毕达哥拉斯计算我的输入点和其他点之间的“距离”(在这个例子中,三个距离),

(Teff1, logg_1) -> d1 
(Teff2, logg_2) -> d2
(Teff3, logg_3) -> d3 
(Teff4, logg_4) -> d4 

接下来,在此示例中,获取这些点的行中的 V 值,

(Teff1, logg_1) -> V1 
(Teff2, logg_2) -> V2
(Teff3, logg_3) -> V3
(Teff4, logg_4) -> V4

最后做加权平均计算

V = (d1V1+d2V2+d3V3+d4V4)/(d1+d2+d3+d4)

在 R 中这样做的好方法是什么?

0 个答案:

没有答案
相关问题