Я пытался извлечь model.frame
в R, определив функцию для использования в формуле:
library(Formula)
df <- data.frame(c = LETTERS[1:2], a = c(74, 80), b = c(8, 10))
soln <- function(x, y){
A <- matrix(c(1, 1, 1, -2), nrow=2)
B <- matrix(c(x, y), nrow=2)
return((as.matrix(solve(A)%*%B))[1,])
}
F1 <- Formula::Formula(c ~ . | (soln(a, b)))
mf <- stats::model.frame(F1, data = df)
mf
c a b soln(a, b)
1 A 74 8 76.000000
2 B 80 10 8.666667
Здесь mf
предоставляет data.frame
, который НЕ соответствует фактическому значениюот soln()
функции.На самом деле soln(74, 8) = 52
и soln(80, 10) = 56.66667
, но в mf
он показывает 76
и 8.666667
.Как эта функция работает в формуле модели?Можно ли определить функцию для получения правильных значений в model.frame
таким образом?