bin R Anfänger und habe folgendes Problem, zu welchem ich keine Lösung gefunden habe:
Der Code ist eigentlich Teil eines größeren Codes und ich habe ihn weit möglichst reduziert und vereinfacht, um es lesbar zumachen und den Fehler zu finden. Anders kann ich das Problem auch nicht reproduzieren.
Es geht darum, einen Wert in einem Vektor s_werte in abhängigkeit von einer Iterationsvariable it zu setzen. Für it=2 wird ein Wert gesetzt. Danach möchte ich auf diesen Wert zugreifen, doch dieser ist NA. Wie ist das möglich?
In diesem Beispiel geht der Compiler für it=2 in die erste else-Klammer und setzt einen Wert für s_werte[it] <- s_neu. In der else-Klammer kann ich noch auf s_werte[it] zugreifen ( =16). Jedoch nach dieser else-Klammer ist s_werte[it] auf NA gesetzt.
Code: Alles auswählen
f <- function(x,y){x*y}
x<-10
y<-11
s <- 4
theta <- 4
iters<- 3
x_werte <- c(x, rep.int(0, iters+1))
y_werte <- c(y, rep.int(0, iters+1))
s_werte <- c(s, rep.int(0, iters+1))
it<-2
a <- c(x_werte[it-1], y_werte[it-1])
n <- c(x_werte[it-1], y_werte[it-1])
z <- c(x_werte[it-1], y_werte[it-1])
if( is.na(f(z[1],z[2]) < f(a[1],a[2])) ){
s_neu <- s[it-1]
s_werte[it] <- s_neu
} else{
s_neu <- s[it-1]*theta
s_werte[it] <- s_neu
}
it <- 3
if( is.na(f(z[1],z[2]) < f(a[1],a[2])) ){
s_neu <- s[it-1]
s_werte[it] <- s_neu
} else{
s_neu <- s[it-1]*theta
s_werte[it] <- s_neu
}