"znorm" <- function(x, labelsp = FALSE, na.rm = FALSE) { #----------------------------------------------- # Z-Normierung des 2-dimensionalen Datensatzes # # Siehe: www.faes.de -> Lexikon -> Z-Normierung # # Entwickelt durch: G. Faes # E-Mail: guenter@faes.de # Datum: 11.10.2006 Version: 2.0 #----------------------------------------------- # Der übergebende Datensatz kann eine Labelspalte # beinhalten. # Diese wird durch das Attribut labelsp entfernt # Das Argument na.rm dient zur Behandlung fehlender # Werte #----------------------------------------------------- # Dimension der Matrix x ermitteln: dim_Matrix <- dim(x) # Anzahl max. Spalten der Matrix x (Schleifendurchläufe!): dim_n <- dim_Matrix[c(2)] # Wurde das labelsp-Attribut auf TRUE gesetzt? # Browser zur Fehlersuche aktiviert: browser() if (labelsp == TRUE) { # Spalte ausschneiden und Ergebnis in einer neuen # Matrix speichern: Fakt.Daten <- subset(x, select = -1) # Anzahl der Schleifenläufe reduzieren: dim_n <- dim_n - 1 # Z-Matrix initalisieren: dim_Matrix[c(2)] <- dim_Matrix[c(2)] - 1 Z_Matrix <- array(0, dim_Matrix) } else { # Keine Labelspalte, also "nur" umspeichern: Fakt.Daten <- x Z_Matrix <- array(0, dim_Matrix) } # Kennwerte in einer for-Schleife berechnen: for(i in 1:dim_n) { # Auf NA-Behandlung prüfen: if (na.rm == TRUE) { mw <- mean(Fakt.Daten[,i], na.rm = TRUE) #Mittelwert s <- sd(Fakt.Daten[,i], na.rm = TRUE) #Standardabweichung } else { mw <- mean(Fakt.Daten[,i]) s <- sd(Fakt.Daten[,i]) } # Z-Werte berechnen (4. Schritt): Z_Matrix[,i] <- (Fakt.Daten[,i] - mw) / s } # Ende for-Schleife return(Z_Matrix) } # Ende der Funktion