J'ai cette feature_list qui contient plusieurs valeurs possibles, par exemple "A", "B", "C" etc. Et il y a du temps dans time_list. Donc, je vais avoir une boucle où je vais vouloir parcourir chacune de ces différentes valeurs et le mettre dans une formule. Quelque chose comme for(i in ...)
et my_feature <- feature_list[i]
et my_time <- time_list[i]
.Saisie de variables dans la fonction de régression
Puis-je mettre le temps et la fonction choisie à une trame de données à utiliser pour la régression
feature_list<- c("GPRS")
time_list<-c("time")
calc<-0
feature_dim <- length(feature_list)
time_dim <- length(time_list)
data <- read.csv("data.csv", header = TRUE, sep = ";")
result <- matrix(nrow=0, ncol=5)
errors<-matrix(nrow=0, ncol=3)
for(i in 1:feature_dim) {
my_feature <- feature_list[i]
my_time <- time_list[i]
fitdata <- data.frame(data[my_feature], data[my_time])
for(j in 1:60) {
my_b <- 0.0001 * (2^j)
for(k in 1:60) {
my_c <- 0.0001 * (2^k)
cat("Feature: ", my_feature, "\t")
cat("b: ", my_b, "\t")
cat("c: ", my_c, "\n")
err <- try(nlsfit <- nls(GPRS ~ 53E5*exp(-1*b*exp(-1*c*time)), data=fitdata, start=list(b=my_b, c=my_c)), silent=TRUE)
calc<-calc+1
if(class(err) == "try-error") {
next
}
else {
coefs<-coef(nlsfit)
ess<-deviance(nlsfit)
result<-rbind(result, c(coefs[1], coefs[2], ess, my_b, my_c))
}
}
}
}
Maintenant, dans l'appel nls()
Je veux être en mesure d'appeler my_feature au lieu de « A » ou « B "ou quelque chose et ensuite à la prochaine sur la liste. Mais j'ai une erreur là-bas. Qu'est-ce que je fais mal?
1. Il est utile si vous indiquez quelle erreur vous obtenez (peut-être copier-coller le message d'erreur?) 2. Il y a faute d'orthographe dans votre code: arguments 'data' et' start' ne sont pas passés à 'nls' (l'accolade est proche trop tôt) – Marek
ouais le code n'est pas exact car j'illustrais juste le problème. Ce qui est, je ne peux pas utiliser la variable my_feature à l'intérieur de l'appel nls, mais je peux seulement mettre "A" dans la formule. – sfactor
J'ai mis la formule exacte maintenant – sfactor