0

私のデータは次のようになります。

library(tidyverse)
df <- tibble(
    x_val = c(10.3, 14.3, 18.7)
)

x_valそれぞれを渡した後my_fun...

my_fun <- function(x) {
    x * pi
}

df %>% rowwise() %>% mutate(y_val = my_fun(x_val))

...次のようになります。

# A tibble: 3 × 2
x_val    y_val
<dbl>    <dbl>
1  10.3 32.35840
2  14.3 44.92477
3  18.7 58.74778

関数を逆にして(実際の関数はもっと複雑なので、piで割るだけではありません!)、達成するのに最も近い.. をx_val取得する の適切な値を見つけるにはどうすればよいですか:y_valinteger - 0.01x.99

32.99
44.99
58.99
4

1 に答える 1

1

私が理解していることから、複雑な関数 f(x_val) があり、f の逆関数が必要です。y_val を知ることで x_val を見つけたいとします。R の逆関数の Solving をチェックすることで、次のことを試すことができます (関数の限界がわからない下側と上側の部分を調整します)。

inverse = function (f, lower = -100, upper = 100) {
  function (y) uniroot((function (x) f(x) - y), lower = lower, upper = upper)[1]
}

yourfunction_inverse = inverse(my_fun, 0.1, 100)

そして結果は

results <- sapply(c(32.99, 44.99, 58.99), yourfunction_inverse)
于 2016-10-26T16:02:12.340 に答える