0 Daumen
261 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.

Avatar von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
0 Daumen
1 Antwort
Gefragt 26 Mär 2018 von Gast
0 Daumen
0 Antworten

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community