Я пытаюсь взять функцию с 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, которое дает наивысший результат для указанной функции. Любая помощь будет наиболее ценится, спасибо!