Suchen Sie die Spaltennummer, die die Bedingung erfüllt

9

Ich habe zwei Spalten, in denen die Summe jeder Zeile 1 ist (sie sind die Wahrscheinlichkeit einer von zwei Klassen). Ich muss die Spaltennummer finden, wo eine Bedingung erfüllt ist.

%Vor%

Wenn ich zum Beispiel die Spalte finden muss, in der die Zahl & gt; = 0,6 ist, In der obigen Tabelle sollte Folgendes angezeigt werden:

%Vor%     
user3639100 14.02.2018, 21:07
quelle

6 Antworten

5

Danke für diese interessante Frage. Hier ist eine Idee mit apply .

%Vor%

DATEN

%Vor%

Benchmarking

Ich habe den Benchmark für den ursprünglichen Datenrahmen dat und einen Datenrahmen mit 5000 Zeilen dat2 durchgeführt. Die Ergebnisse sind wie folgt. Ich schäme mich ein wenig, dass meine apply -Methode die langsamste ist.

Wenn jemand eine Idee hat, wie ich die Art und Weise, wie ich Benchmark durchgeführt habe, verbessern könnte, lass es mich wissen.

%Vor%     
www 14.02.2018, 22:01
quelle
5

Sie können die Tatsache nutzen, dass TRUE = 1 und FALSE = 0:

%Vor%     
C. Braun 14.02.2018 21:11
quelle
3

Dies ist mit Matrix multiple

%Vor%     
Wen 14.02.2018 21:11
quelle
3

Wenn ich den Fall betrachte, dass mehr als 1 Spalte die Bedingung erfüllen kann, dann wird which eine bessere Option sein.

Ich habe die Daten so geändert, dass sowohl die Spalte 1 als auch die 2 die Bedingung in der Zeile 3 erfüllen.

%Vor%     
MKR 14.02.2018 21:59
quelle
1

Verwenden Sie die Ternärfunktion

%Vor%     
catastrophic-failure 14.02.2018 21:16
quelle
1

Hier ist eine weitere Möglichkeit mit dem Modulo-Operator %% :

%Vor%

Beispieldaten

%Vor%     
Maurits Evers 14.02.2018 21:19
quelle

Tags und Links