ich benötige Hilfe bei der Aufgabe:
Betrachten Sie die folgende Funktion zur Berechnung der Stichprobenvarianz für einen numerischen Vektor x:
myvar1 <- function(x) {
erg <- NULL
for(i in 1:length(x)) {
erg <- c(erg, 1 / (length(x) - 1) * (x[i] - mean(x))^2)
}
erg <- sum(erg)
return(erg)
}
a) Die Funktion ist extrem ineffizient programmiert. Versuchen Sie die Funktion nun zu verbessern. Schreiben Sie eine Funktion myvar2. Zunächst soll dabei allerdings weiterhin eine for-Schleife verwendet werden.
b) Für eine weitere Verbesserung hinsichtlich der Effizienz schreiben Sie eine vektorisierte Variante myvar3 ohne die Verwendung der Funktion var aus R.
Zu a) habe ich bereits:
myvar2 <- function(x){
erg <- NULL
for(i in x[i] - mean(x)){
erg <- c(erg, 1 / mean(x))*(1/n-1)
}
erg <- sum(erg)
return(erg)
}
Ich weiß, dass es falsch ist, deswegen frage ich nach Verbesserungen.