- У меня есть два инструмента A, B, которые «отключены» друг от друга с некоторой систематической ошибкой. Например, A последовательно читает +5 от B.
- Итак, мне нужна функция
A_to_B
, которая отображает показания от A до B, например, A = B + 5 - Я написал эту функцию всценарий, использующий линейную модель A против B.
- Но я использую эти инструменты повсюду, поэтому мне понадобится это в других сценариях.
- Итак, я пытаюсь
save
функция.
AB.readings <- read.csv('AB.csv')
AvB.lm <- lm(A~B+I(B^2), data=AB.readings)
A_to_B <- function(a) {
coeff <- AvB.lm$coefficients - c(a, 0, 0)
roots <- Re(polyroot(coeff))
return(roots[roots>=0]) # A, B readings > 0
}
save(AvB.lm, A_to_B, file='calibration.RData')
Но, когда я пытаюсь загрузить и использовать эту функцию в других скриптах:
source('calibration.RData')
AB.readings <- read.csv('AB2.csv')
AB.readings$A <- A_to_B(AB.readings$A)
Я получаю ошибку:
Error in A_to_B(AB.readings$A) : object 'AvB.lm' not found
Execution halted
Так что, очевидно, я сделал что-то не так с областью видимости.
Какой правильный способ сделать это в R?