2017-08-03 2 views
-1

Ich bin neu mit R, ich beginne gerade mit dem Ausreißer-Paket. Wahrscheinlich ist das sehr einfach, aber könnte mir jemand sagen, wie man mehrere Grubbs-Tests gleichzeitig durchführt? Ich habe 20 Spalten und möchte alle gleichzeitig testen. Vielen Dank im VorausMehrere Grubbs-Tests gleichzeitig in R

Bearbeiten: Sorry für nicht gut zu erklären. Ich werde es versuchen. Ich fing an, R heute zu benutzen, und ich lernte, wie man Grubbs-Test unter Verwendung von grubbs.test (Daten $ S1, Typ = 10 oder 11 oder 20) macht, und es geht gut. Aber ich habe eine Tabelle mit 20 Spalten, und ich möchte Grubbs-Test für jeden von ihnen gleichzeitig ausführen. Ich kann es eins nach dem anderen tun, aber ich denke, es muss einen Weg geben, es schneller zu machen. Ich lief den Code bei How to repeat the Grubbs test and flag the outliers auch und funktioniert perfekt, aber wieder möchte ich es mit meinen 20 Proben tun. Als Beispiel für meine Daten:

S1 S2 S3 S4 S5 S6 S7 96 40 99 45 12 16 48 52 49 11 49 59 77 64 18 43 11 67 6 97 91 79 19 39 28 45 44 99 9 78 88 6 25 43 78 60 12 29 32 2 68 25 18 61 60 30 26 51 70 96 98 55 74 83 17 69 19 0 17 24 0 75 45 42 70 71 7 61 82 100 39 80 71 58 6 100 94 100 5 41 18 33 98 97

Hoffnung, das hilft.

+1

Wenn Sie eine Frage stellen, sollten Sie ein Beispiel für reproduzierbare Beispiele (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) mit den Beispieleingabedaten und der gewünschte Ausgabe. Wie Code Sie versucht haben und beschreiben Sie genau, wie es nicht genau das tut, was Sie wollen. – MrFlick

Antwort

2

können Sie lapply verwenden:

library(outliers) 

df = data.frame(a=runif(20),b=runif(20),c=runif(20)) 
tests = lapply(df,grubbs.test) 
# or with parameters: 
tests = lapply(df,grubbs.test,opposite=T) 

Ergebnisse:

> tests 
$a 

    Grubbs test for one outlier 

data: X[[i]] 
G = 1.80680, U = 0.81914, p-value = 0.6158 
alternative hypothesis: highest value 0.963759744539857 is an outlier 


$b 

    Grubbs test for one outlier 

data: X[[i]] 
G = 1.53140, U = 0.87008, p-value = 1 
alternative hypothesis: highest value 0.975481075001881 is an outlier 


$c 

    Grubbs test for one outlier 

data: X[[i]] 
G = 1.57910, U = 0.86186, p-value = 1 
alternative hypothesis: lowest value 0.0136249314527959 is an outlier 

Sie können die Ergebnisse wie folgt zugreifen:

> tests$a$statistic 
     G   U 
1.8067906 0.8191417 

Hoffnung, das hilft.

+0

Danke, das war sehr nützlich. Gibt es eine Möglichkeit, den Typ des Grubbs-Tests (Typ, Gegenteil usw.) zu ändern? –

+0

Ja, Sie können Parameter wie folgt hinzufügen: 'tests = lapply (df, grubbs.test, gegenüber = T, type = 11)'. – Florian

+0

Dank einer Million wird dies viel helfen. Ich habe auf den oberen Pfeil und den grünen Haken geklickt;) –