2016-07-04 6 views
-2

ich Daten, diewie Ausreißer in mehreren Reihen zu finden, wenn die erste Spalte in id Form in R

mem_id age1 age2 age3 age4 age5 age6 age7 age8 age9 age10 
1  3  5 5 6  7 8  9 10 11 15 
2  5  6 7 8  10 10 11 11 12 13 
3  7  7 7 7  8 8  8 9 9 9 
4  8  8 8 8  8 8  9 9 9 9 
5  12 13 14 9 15 16 16 16 16 16 

Ich möchte herausfinden, die Ausreißer in jeder Reihe mit den Kriterien, die den Wert wie folgt aussieht eines Elements in einer Reihe für eine bestimmte mem_id ist nicht im Bereich von Q1-1.5 * Inter Quartile Bereich, Q3-1.5 * Inter Quartile Bereich, wo Q1 ist das erste Quartil und Q3 ist das dritte Quartil dann klassifizieren wir es hat einen Ausreißer

also möchte ich einen Ausgang wie diesen

mem_id outliers 
    1  age2 3, age1 5 
    2  age3 6,age4 7 

In meiner Ausgabe wird die Position der Ausreißer und der Wert der Ausreißer für jede mem_id angegeben.

+0

In Zukunft bitte können Sie Ihre Daten mit der 'dput' Funktion veröffentlicht, sobald sie es viel einfacher für Menschen zur Abholung und laufen mit :) – CroGo

+0

Sie bitte macht klären was meinst du mit> 1,5 IQR. Normalerweise hätten Sie einen Referenzpunkt, zum Beispiel> Mittelwert + 1,5 * IQR – CroGo

+0

@C_G: Ich glaube, Sie wollen '+/-' anstelle von '+' sagen. – user2100721

Antwort

0

Wahrscheinlich nicht genau, was Ihre nach (obwohl ich bin noch ein bisschen verwirrt darüber, wie Ihre Ausgabe aussehen sollte), aber dieser Code wird ein True/False-Gitter, wo alle Ihre außenliegenden Werte einen wahren Wert haben und alle Ihre in -lying Werte haben einen falschen Wert

x <- c (1 , 3 , 5 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 15, 
2  , 5 , 6 , 7 , 8 , 10 ,10 , 11 , 11 , 12 ,13, 
3 , 7 , 7 , 7 , 7 , 8 , 8 , 8 , 9 , 9 , 9, 
4 , 8 , 8 , 8 , 8 , 8 , 8 , 9 , 9 , 9 , 9 , 
5 , 12 , 13 , 14 , 9 , 15 ,16 , 16 , 16 , 16 ,16) 


mat <- matrix(x , byrow = T , ncol = 11) 

mat2 <- mat[ ,-1 ] 


i <- apply(mat2 , 1 , IQR) 
m <- apply(mat2 , 1 , mean) 

upper <- sweep(mat2 , 1 , m + 1.5* i , ">") 
lower <- sweep(mat2 , 1 , m - 1.5* i , "<") 

(outlie <- upper | lower) 
Verwandte Themen