ich kümmere mich gerade um meine Ausreißer. Durch einen einfacheren Befehl, habe ich schon Ausreißer durch einen threshold-Wert ersetzt, die sehr tief oder sehr hoch liegen. Das funktioniert aber nicht bei allen Ausreißern. Diese Ausreißer würde ich gerne erkennen und ersetzen. Aber wie? Ich dachte an ein Verfahren, welches einen Wert ersetzt, wenn dieser ein Vielfaches der Standardabweichung aus Vorwert(en) und Nachwert(en) ist, z.B. drei mal so hoch. Ersetzt werden könnte der Wert dann z.B. mit dem Mittelwert aus Vorwert(en) und Nachwert(en). Aber beim Coding komme ich nicht richtig vorwärts. Anbei einmal mein Versuch, aber der funktioniert nicht richtig:
Code: Alles auswählen
m <- matrix(c(1,2,3,4,5,6,7,8,9,8,2,3,4,5,6,7,8,9,1,7,3,4,5,6,7,8,9,1,2,3,4,5,6,1,8,9), ncol=4)
m
# hier funktioniert das noch nicht richtig
for(i in 1:ncol(m)){
if(m[,i] < 3*rollapply(m[,i], width = 5, FUN = sd, fill = NA)[,i])
# if(m[,i] > 3*rollapply(m[,i], width = 5, FUN = sd, fill = NA)[,i])
{
m[,i] <- rollapply(m[j,i], width = 5, FUN = sd, fill = NA)[,i]
};};
tim