2017-11-20 3 views
1

Ich habe ein Problem mit R. Ich versuche, die Spalte mit dem Mindestwert in jeder Zeile zu extrahieren. Lassen Sie mich erklären:Wählen Sie die minimale Spalte in einer bestimmten Zeile (R)

Test = data.frame(Day1 = c(1,6,3,8), Day2 = c(2,5,4,9) 

Ausgang:

Day1 Day2 
1 1 2 
2 6 5 
3 3 4 
4 8 9 

ich eine dritte Spalte erstellt werden soll, die den minimalen Wert jeder Spalte auswählen (so für Zeile 1, wäre es 1 (Tag 1) sein; Reihe 2 wäre es 5 (Tag 2) sein, Reihe 3, wäre es 3 (Tag 1) sein, etc ...

Dank wenn jemand einen Tipp hat

EDIT: fand es, aber ich weiß nicht! jetzt wissen, wie kann ich eine 4. Spalte mit dem Namen des Minimums erstellen? (für Zeile 1 wäre es Day1; Zeile 2 wäre Day2, etc ...)?

+0

Es funktioniert! Vielen Dank. Und weißt du, wie ich eine 4. Spalte mit dem Namen des Minimums erstellen kann? (für Zeile 1 wäre es Day1; Zeile 2 wäre Day2, etc ...) – Jay

Antwort

1

Sie können apply Folgendes verwenden, um den Mindestwert in jeder Zeile zu finden.

Test$minimum <- apply(Test,1,which.min) 

einen Parameter 1 Einstellung führt den Code which.min über jede Reihe von Test.

Um die Spaltennamen der minmum Spalte zu erhalten, fügen Sie colnames(Test) vor apply

Test$minimum_day <- colnames(Test)[apply(Test,1,which.min)] 

hoffte, das hilft!

+0

Danke, es funktioniert! Aber ich weiß jetzt nicht, wie ich eine 4. Spalte mit dem Namen des Minimums erstellen kann? (für Zeile 1 wäre es Day1; Zeile 2 wäre Day2, etc ...) Ich habe versucht test $ daymin <- apply (Test, 1, colnames (which.min)), aber es scheint nicht zu funktionieren – Jay

+0

Ich habe gerade meinen Kommentar oben bearbeitet. Sie waren in der Nähe, mussten aber 'Spaltennamen 'außerhalb der Anwendungsfunktion verschieben. –

Verwandte Themen