Как связать вывод функции оптимизации с фреймом данных в R? - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь взять функцию с 4 аргументами (первый - неизвестный, а последние 3 - аргументы столбца) и вернуть неизвестный аргумент (x), который дает наивысший результат. Я хочу, чтобы cbind () привел результат этой функции к кадру данных, который содержит 3 вышеупомянутых аргумента столбца для каждой строки в указанном кадре данных.

Проблема в том, что я не могу заставить функцию оптимизации работать должным образом. Он говорит мне: «объект« x »не найден», но я не понимаю, как вы могли бы использовать функцию оптимизации, если нет хотя бы одной неизвестной переменной.

Я пытался сконструировать цикл for, а также использовать пакет plyr для использования функции ldply и загрузки результатов в другой фрейм данных, но пока ничего не принесло пользы.

myfunction <- function(x, I, S, C) {
  (I + (x * S)) * (x - C)
  return(x)
}

results <- cbind(results,
                 y = optimize(
                   myfunction(x,
                              results$IN,
                              results$SL,
                              results$CO),
                   lower = 0,
                   upper = 100,
                   maximum = TRUE,
                   tol = .01
                 ))

Идеальный конечный результат описан выше, новый столбец содержит значение x, которое дает наивысший результат для указанной функции. Любая помощь будет наиболее ценится, спасибо!

...