имя переменной от модели к функции в R - PullRequest
0 голосов
/ 07 апреля 2020

Я хотел бы сделать на основе результатов lm.

Я делаю модель:

mod <- lm(log(speed)~dist + I(dist^2), data = cars)


names(summary(mod))
summary(mod)$coefficients[, 1]

, а затем делаю функция, которую я хочу использовать позже

  calcVAL <-function(dist, mod) {
  df <- data.frame(value = summary(mod)$coefficients[, 1])
  df$var <- row.names(df)
  row.names(df) <- NULL
  print(df)

  df[1,1] + 
        df[2, 1] * dist +
        df[3, 1] * I(dist^2)
} 
calcVAL(10, mod)

, что я хочу сделать по-другому, это то, что я хочу заменить аргумент dist внутри функции calcVAL, что функция берет имя из df который создается сначала в функции (аналогично значениям коэффициента) ex. имя из позиции df[2, 2]

                   value
(Intercept)  1.7729012293
dist         0.0311801430
I(dist^2)   -0.0001805469

вот так

calcVAL <-function(dist, mod) {
  df <- data.frame(value = summary(mod)$coefficients[, 1])
  df$var <- row.names(df)
  row.names(df) <- NULL
  print(df)

  df[1,1] + 
        df[2, 1] * df[2, 2] +
        df[3, 1] * df[3, 2]             
} 
calcVAL(10, mod)

дает ожидаемую ошибку

Ошибка в df [2, 1] * df [2, 2]: без нумерации c аргумент бинарного оператора

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...