Je souhaite transmettre une formule à une fonction, mais je ne peux pas supprimer la double citation de la chaîne de la formule. Comment pourrais-je le faire? Merci.supprimer une citation d'une chaîne pour la transformer en expression
clust_start=c(1,100)
i <- 1
Lambexp <- 1:99
rank <- 1:99
alpha <- 1:99
d <- 1
b <- 1:2
ww=as.matrix(c(1:99), nrow=99)
expression.logdens <- paste(Lambexp[rank[(clust_start[i]:(clust_start[i + 1] - 1))]],
"*exp(", alpha[(clust_start[i]:(clust_start[i + 1] - 1))], " + bb*", ww[(clust_start[i]:
(clust_start[i + 1] - 1)), d], " - ", b[d]*ww[(clust_start[i]:(clust_start[i + 1] - 1)),
d], ")", sep="")
expr.formula <- paste(expression.logdens, sep="", collapse=" + ")
J'ai essayé expr.formula < - as.expression (expr.formula) et as.name (expr.formula), ils ne travaillaient pas.
logdens <- function(bb){
y <- expr.formula
return(y)
}
logdens(1)
@ joran Oui. Je ne veux pas passer toute la fonction logdens à c les bras de fonction() dans HI, c'est trop lent. Donc je veux juste passer le résultat calculé aux bras(). – moli
Définir "lent", et peut-être nous pouvons vous conseiller si d'autres méthodes seraient plus rapides en premier lieu. –
BTW, en ignorant les autres problèmes, jetez un oeil à 'call' et' do.call' –