Я пытаюсь соединить две таблицы разного размера в R, но немного застрял в следующей точке:
Tbl1:
A tibble: 27 x 2
Value1 Factor
<dbl> <fct>
1 0.39 10Y
2 0.39 10Y
3 0.17 10Y
4 0.17 10Y
5 0.11 10Y
6 0.11 10Y
7 0.03 10Y
8 0.03 15Y
9 11.9 15Y
10 11.9 15Y
Tbl2:
A tibble: 20 x 3
Factor Value2 Value3
<fct> <dbl> <dbl>
1 10Y 0 0.09
2 10Y 0 1.01
3 10Y 0.00500 5.01
4 10Y 0.014 10.0
5 15Y 0 0.17
6 15Y 0.001000 1.51
7 15Y 0.012 6.01
8 15Y 0.029 15.0
9 20Y 0 0.25
10 20Y 0.002 2.01
То, что я хочу сделать, - это сначала сопоставить их по коэффициенту, то есть «10Y», «15Y» и т. Д., Затем выбрать ближайшее значение в Tbl2Value3 к Tbl1Value1 и добавить определенное значение Value2 из tbl2 в новый столбец в Tbl1.
То, что я до сих пор пробовал, - это вычисление индексов этих значений в таблице tbl2. Также попытался intersect (), чтобы найти пересекающиеся факторы.
indices <- array()
for (i in 1:nrow(tbl1)){
indices[i] <- which(abs(tbl2$Value3 - tbls1$Value1[i])==min(abs(tbls2$Value3 - tbl1$Value1[i])))
}
Есть ли лучший способ найти положение этих значений, чем которое ()? И как я могу на самом деле соединить два вместе, учитывая все вышеперечисленные условия?
Очень жду ваших идей!
Большое спасибо
П.С .: Я прошу прощения, если мой код причиняет кому-то вред ... Я только учусь. Спасибо