2017-09-05 1 views
0

Ich habe diese Frage zuvor gestellt und löse das Problem mit Sags Hilfe. Ich arbeite an einer Simulationsstudie. Ich muss meine Ergebnisse reorganisieren und mit der Analyse fortfahren.Speichere jede Iteration von for-Schleife

I habe eine Datenmatrix in der es kann die Ergebnisse wie diese

> data 
It S X  Y F 
1 1 0.5 0.8 2.39 
1 2 0.3 0.2 1.56 
2 1 1.56 2.13 1.48 
3 1 2.08 1.05 2.14 
3 2 1.56 2.04 2.45 
....... 

Es zeigt Iteration S zeigt zweite Iteration enthält arbeitet X zeigen an X Koordinate aus einem Verfahren erhalten Y zeigt, die Y-Koordinate erhalten von einer Methode F zeigt die F-Statistik.

Mein Problem ist, dass ich für jede Iteration einen minimalen F-Wert finden muss. Also muss ich jede Iteration auf einer anderen Matrix oder einem anderen Datenrahmen speichern und einen minimalen F-Wert finden.

Ich habe viele Dinge ausprobiert, aber nicht funktioniert. Jede Hilfe, Idee wird geschätzt.

EDIT: Aktualisierte Tabelle Informationen

Dies war die Lösung:

Bibliothek (dplyr)

Daten%>% group_by (It)%>% Scheibe (which.min (F))

Tibble A: 3 x 5

Gruppen: It [3]

It  S  X  Y  F 

1 1 2 0,30 0,20 1,56 2 2 1 1,56 2,13 1,48 3 3 1 2,08 1,05 2,14

Jedoch werde ich eine andere für Schleife fortzusetzen und I Ich möchte alle X-Werte auswählen, die obige Bedingungen erfüllen.

Zum Beispiel, wenn ich Daten $ X [i] verwende Dieser Code wählt nicht zu Werten von X (0.30, 1.56, 2.08). Es wählte ursprüngliche Werte aus "Daten" vor der Gruppierung. Wie kann ich dieses Problem lösen?

+2

Können Sie ein reproduzierbares Beispiel bieten https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible -beispiel –

+1

Was ist Ihre gewünschte Ausgabe? Wenn ein Minimum von 'F' für jeden Wert von' It' gefunden wird, wird 'sapply (unique (Daten $ It), Funktion (i) min (Teilmenge (Daten, It == i) $ F)' Arbeit? – tkmckenzie

Antwort

0

ich diese Hoffnung ist das, was Sie erwarten:

> library(dplyr) 

> data %>% 
    group_by(It) %>% 
    slice(which.min(F)) 

# A tibble: 3 x 5 
# Groups: It [3] 
    It  S  X  Y  F 
    <dbl> <dbl> <dbl> <dbl> <dbl> 
1  1  2 0.30 0.20 1.56 
2  2  1 1.56 2.13 1.48 
3  3  1 2.08 1.05 2.14 
+0

Dies ist genau was ich brauche. Würdest du mir bitte nochmal schreiben? Weil es an meiner progrramme nicht funktioniert @Sagar – Elen

+0

habe ich es nicht bekommen. Was willst du mich nochmal schreiben? Hast du irgendwelche Fehler bekommen? – Sagar

+0

Sorry ich verstehe, was falsch ist Meine "Daten" sind eine Matrix, aber wie ich verstanden habe, sollte es ein Tab. Und ich weiß nicht, wie es geht – Elen

Verwandte Themen