Мне нужно изменить тело функции в зависимости от ввода данных пользователем.
modelstring <- function() {
for (h in (l1i1[j]):(l1i2[j])) {
w[h] <- 1/l1n[h]
}
}
userinput <- "b.w[1]*X.w[i,1]^exp(b.w[2]*X.w[i,2])"
body(modelstring)[[2]][[4]][[2]][[3]] <- userinput
Проблема состоит в том, что измененная функция содержит кавычки .Как мне от них избавиться?
modelstring
function ()
{
for (h in (l1i1[j]):(l1i2[j])) {
w[h] <- "b.w[1]*X.w[i,1]^exp(b.w[2]*X.w[i,2])"
}
}
При оценке пользовательского ввода в качестве формулы замена выполняется и кавычки не вставляются
userinput <- as.formula(w ~ b.w[1]*X.w[i,1]^exp(b.w[2]*X.w[i,2]))
Однако мне нужно использовать <- </strong> илитолько правая сторона .В этих случаях вычисляется формула, которая выдает ошибку.
Я также пытался noquote , которая по-прежнему дает кавычки:
userinput <- noquote("b.w[1]*X.w[i,1]^exp(b.w[2]*X.w[i,2])")
Наконец, у меня естьпробовал разные комбинации expr (!! userinput) , subs () и заменитель .