0 Daumen
46 Aufrufe

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.

Gefragt von

Bitte logge dich ein oder registriere dich, um die Frage zu beantworten.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
+1 Punkt
0 Antworten
Gefragt 23 Aug von Gast
0 Daumen
0 Antworten

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...